ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/
このサイトとも分かれの時がやってきました。
ロリポおじさんには結構長い間お世話になってしまってます。かれこれ、無駄に5年くらいはお世話になっているかなー。
結果からいうと、はてなに引っ越します。
http://d.hatena.ne.jp/bao_bao/
このレンタルサーバー自体は、まだ活用しなければならない理由の為、残っていきますが(このブログの過去記事も)。
だらだら書いてるmixiの日記は除外して、それ以外の、まだためになる事は全てはてなに持っていきます。
[理由]
カテゴライズして記事を書いていこうとしましたが、あまり広げすぎると、モチベーションが下がってあまり更新しなくなるという事が分かりました。
当分は、はてなに活動の記録を残していこうと思います。
今まで、verBetaをありがとうございました。
続きははてなで。
ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/
Spark progect http://www.libspark.org/ を運営されているyossyさんが公開されているThreadライブラリ(コードネーム:そうめん)のワークショップに参加させていただきました。 詳しくは、僕の公式のブログ記事 下の写真は、懇親会でのそうめん料理(この日限定)。
ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/
Papervision3D 2.0(GreatWhite)導入時のメモ。 Papervision3D 2.0(GreatWhite)を使ってようと思って、ここからダウンロードして、パスを通して、コンパイルしたところ、以下のようなエラー。
「TriangleMesh3D.as override としてマークされたメソッドは、別のメソッドをオーバーライドする必要があります。」
とエラー。 試行錯誤の結果。Papervision3D 1.5のパスを切ったらコンパイル成功した。
ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/

遅ればせながら、papervision3Dを使ってみました。
使った感想は、
面白い!!
思ったより簡単。
まだ、基本中の基本しかやってませんが、blogを読んでるといろいろなことが出来そうです。
とりあえず今回は、ポイントをメモして今後の作業に生かします。
以下がソース
{
import flash.display.StageAlign;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.objects.Cube;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.objects.Plane;
import org.papervision3d.scenes.Scene3D;
public class Main3D extends Sprite
{
var container:Sprite;
var scene:Scene3D;
var camera:Camera3D;
var obj:Cube;
var objSize:int = 300;
var segment:int = 1; //分割数
private var valX:Number = 0;
private var valY:Number = 0;
// コンストラクタ
public function Main3D():void {
//ステージ設定
stage.frameRate = 60;
stage.quality = "BEST";
stage.scaleMode = "noScale";
stage.align = StageAlign.TOP_LEFT;
initialize3D();
}
function initialize3D()
{
trace("initialize3D実行");
container = new Sprite();
addChild(this.container);
//containerの位置
container.x = stage.stageWidth / 2;
container.y = stage.stageHeight / 2;
//3Dシーン生成
scene = new Scene3D(container);
//カメラの作成+設定
camera = new Camera3D();
camera.z = objSize;
camera.focus = 500;
camera.zoom = 1;
//マテリアルの設定
var material:BitmapFileMaterial =
new BitmapFileMaterial("map.jpg");
material.doubleSided = true;
material.smooth = true;
//cubeオブジェクトの生成
obj = new Cube
(material, objSize, objSize,objSize, segment, segment);
scene.addChild(obj);
addEvent();
}
private function addEvent():void
{
this.addEventListener
(Event.ENTER_FRAME, update3D);
this.addEventListener
(Event.RESIZE, onResizeStage);
}
private function update3D(evt:Event):void
{
valX += this.container.mouseX/50;
valY += this.container.mouseY/50;
obj.rotationX=valX;
obj.rotationY=valY;
//レンダリング
scene.renderCamera(camera);
}
//リサイズ処理
private function onResizeStage(evt:Event):void
{
container.x = this.stage.stageWidth/2;
container.y = this.stage.stageHeight/2;
}
}
}
作業の順番は、
1.シーンを作成
↓
2.カメラの作成+設定
↓
3.マテリアル設定
↓
4.オブジェクトの作成
↓
5.レンダリング
という流れ。
インポートするクラスは、以下
import org.papervision3d.scenes.Scene3D;
//オブジェクトをキューブにするCubeクラス
import org.papervision3d.objects.Cube;
//カメラのCamera3Dクラス
import org.papervision3d.cameras.Camera3D;
//マッピングするためのBitmapFileMaterialクラス
import org.papervision3d.materials.BitmapFileMaterial;
1.シーンを作成
//Scene3Dクラスの引数に表示オブジェクトを入れる
2.カメラ作成+設定
//カメラを作成
//オブジェクトとの距離(z軸)
//焦点(値を小さくすると、広角レンズになります。
//ズーム
3.マテリアル設定
//マップのファイルを引数にとる
new BitmapFileMaterial("map.jpg");
//ポリゴン表裏どちらもレンダする。(falseにすると、裏面が透明になる。キューブの場合、表面しか見えてないため、見た目の影響は無し)
//マップにスムースを適用するかどうかの設定
4.オブジェクトの作成
//オブジェクトを作成する。引数は以下
/*
第1引数:マテリアル
第2引数:幅
第3引数:奥行き
第4引数:高さ
第5引数:ポリゴンの分割数
第6引数:ポリゴンの分割数
第7引数:ポリゴンの分割数
*/
(material, objSize, objSize,objSize, segment, segment,segment);
//シーンインスタンスにオブジェクトをaddChildする
5.レンダリング
//レンダリングする。ここでは、エンターフレームイベントで毎フレームレンダリングする。
プリミティブなオブジェクトの種類は、
Plane:板
Cone:円錐
Sphere:球
paperPlane:紙飛行機(サイズしか変更できない)
Cylinder:円柱
Stars:星(パーティクル)
ブログとか読んでると、モデルデータを読み込んだり、シェーディング(陰影)がつけれたり出来るらしい。ちょっとこれは、僕は突っ込んでやってみたいと思います。
ちなみに以下のサイトを参考にさせていただきました。
http://www.thinkit.co.jp/article/91/3/
ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/
ステージ上に描画したものをMCシンボルにして、そのMCにスプライトをaddChildAtしたときの自分用メモ。
mc.addChildAr(sprite,0);
index(第2引数)を0にすると、スプライトは、MCの背面にいっちゃう。
1にすると前面に来る。
ブログを引っ越しました!!
bao_bao_blog
http://d.hatena.ne.jp/bao_bao/
先日のsparkProject勉強会#1に参加させていただきました。
僕にとっては、かなり高度なお話で勉強になり、いい意味で焦りと不安を感じさせていただき、ありがとうございました。
で、その刺激から実行しようとしたことは、制作に入る前にprogressionとそうめんを理解しようということです。どちらも、サイト作りの効率化をあげてくれます。なので、現在進行中のサイト作りは、ちょい中断して、まず、progressionの勉強をしようと思います。
リファレンス、チュートリアル見ても、結構さっぱりな感じなのですが、試行錯誤して、ちょっと理解。メモとして、書き残していきます。
まず僕が引っかかっていたことは、シーンと表示オブジェクトをごっちゃに考えていたところ。
Scene01というクラスのミス記述。
{
import jp.progression.scenes.SceneObject;
public class Scene01 extends SceneObject
{
var sp:CastSprite;
function Scene01(name:String)
{
super(name);
sp=new CastSprite();
sp.graphic.beginFill(0x000000);
sp.drawCircle(100,100,100);
sp.endFill();
}
protected override function _onInit():void
{
this.addChild(sp);
}
}
}
thisは、シーンで表示オブジェクトじゃない・・・・。
progression.container.addChild(sp);
で表示されるようになりました。
今日もう一つわからなかったこと(他にもわからないことだらけですが)。
Flashのリンゲージ設定したシンボルの配置の仕方。
リンゲージプロパティのクラスの項目で、任意のクラス名を書き、別途クラスファイルを作成して、表示オブジェクトにaddChildすれば表示されて解決。
たぶん、すごく単純なことなんだろうけど、表示された!!って喜んでしまいました。
しかし、このようなフレームワークを作るnium先生はすごいなと思いました。
