- 2009-05-27 (水) 22:38
- ActionScript3.0 | PaperVision3D
今まで何とな~くでやっていたPaperVision3D。
前々から「それでは駄目だなぁ~」とは思っていたんですが、ズルズルとここまで来てしまいました。
ちゃんと勉強しよう! ということで、基本から勉強し直します。
で、何からやろうかなぁ…と思っていたら、ClockmakerのYasuさんが、『フレームアクションで覚えるPV3D』という連載をされているのを思い出し、そこから始めてみることに…
今回は、Vol.3のMaterialを理解するの記事を元に作ってみました。
BitmapAssetMaterialはYasuさんが記事にされていますので、僕はBitmapMaterialとBitmapFileMaterialで作ってみました。(ただテクスチャ貼って、グルグル回しただけですが…)
ソースはこんな感じです。(flaファイルの1フレーム目に書いてます)
// フレームアクションでPapervision3D
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*
import org.papervision3d.view.BasicView;
import org.papervision3d.materials.utils.MaterialsList;
// 3D表示用のインスタンスを作成
var world:BasicView = new BasicView();
addChild(world);
world.startRendering();
// 外部ファイルを読み込んで、オブジェクトに貼る
var material:BitmapFileMaterial = new BitmapFileMaterial('●●●●.jpg',true);
//Plane用
material.doubleSided = true;
//一応smoothを
material.smooth = true;
//Cube用(書き方はイロイロある)
var materials:MaterialsList = new MaterialsList();
materials.addMaterial(material,"all");
//Cubeの場合
//var obj:Cube = new Cube(materials,300,300,300);
//Planeの場合
//var obj:Plane= new Plane(material, 300, 300, 1, 1);
//Sphereの場合
//var obj:Sphere = new Sphere(material, 300,15,15)
//Coneの場合
//var obj:Cone= new Cone(material, 200, 300, 1, 1);
//Arrowの場合
//var obj:Arrow= new Arrow(material);
//Cylinderの場合
//var obj:Cylinder= new Cylinder(material, 300, 300,5,5);
//PaperPlaneの場合
var obj:PaperPlane= new PaperPlane(material, 3);
world.scene.addChild(obj);
// EnterFrameの際に呼び出す関数の設定
addEventListener(Event.ENTER_FRAME, loop);
// EnterFrameでのアニメーションを設定します
function loop(e:Event) {
obj.rotationY += 1;
obj.rotationX += 1;
}
BitmapMaterialの方は、上記のソースに画像を読み込んでBitmapDataに変換する処理を加えればOK。
- Newer: FlashDevelopをRC2からRC4へ
- Older: ProgressionでAIRプロジェクトを書き出してみる
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://flabaka.com/blog/wp-trackback.php?p=1020
- Listed below are links to weblogs that reference
- 何とな~くでやってたPaperVision3D from flabaka