[papervision3d]*Step0*入門編-HelloWorld- [Edit]


お久しぶりです。むらけんです。
さて、世間を騒がせているpapervision3dですが、僕もAS3の壁を乗り越えてやっと弄り始めました。
大分理解出来ましたので、自分を含めAS1.5大好きな人にも抵抗の少ないフレームアクションベースでご紹介していきたいと思います。


今回は入門編として、HelloWorld的なものです。一応これでもActionScript3です。w
01| import org.papervision3d.core.proto.*;
02| import org.papervision3d.scenes.*;
03| import org.papervision3d.cameras.*;
04| import org.papervision3d.objects.*;
05| import org.papervision3d.materials.*;
06| // _______________________________________________________________________
07| //                                                                    vars
08| var container : Sprite;
09| var scene     : MovieScene3D;
10| var camera    : FreeCamera3D;
11| var planeObj:Plane;
12| var material:MovieMaterial;
13| // _______________________________________________________________________
14| //                                                             Constructor
15| ptest();
16| function ptest():void{
17|     stage.frameRate = 60;
18|     stage.quality   = "MEDIUM";
19|     stage.scaleMode = "noScale";
20|     stage.align = StageAlign.TOP_LEFT;
21|     this.addEventListener(Event.ENTER_FRAME, _enterframe);
22|     this.stage.addEventListener(Event.RESIZE, onStageResize);
23|     init();
24| }
25| // _______________________________________________________________________
26| //                                                                    Init
27| function init():void{
28|     var _myclass:test;
29|     var objcontainer:Sprite;
30|     
31|     //コンテナ生成
32|     container = new Sprite();
33|     addChild(container);
34|     container.x = this.stage.stageWidth  / 2;
35|     container.y = this.stage.stageHeight / 2;
36|     //シーン生成
37|     scene = new MovieScene3D( container );
38|     //カメラ設定
39|     camera=new FreeCamera3D(2,1000);
40|     //オブジェクト生成
41|     _myclass = new test();
42|     _myclass.dTxt.text="Hello\nWorld";
43|     material = new MovieMaterial( _myclass, true, {
44|                     doubleSided    :true,
45|                     smooth        :true
46|                     } );
47|     planeObj = new Plane(material,180,180,2,2);
48|     scene.addChild(planeObj);
49| }
50| // _______________________________________________________________________
51| //                                                                   Event
52| function _enterframe(e:Event):void{
53|     planeObj.rotationY=container.mouseX;
54|     planeObj.rotationX=container.mouseY;
55|     material.updateBitmap();
56|     this.scene.renderCamera( camera );
57| }
58| // _______________________________________________________________________
59| //                                                           onStageResize
60| function onStageResize(e:Event):void{
61|     this.container.x = this.stage.stageWidth  / 2;
62|     this.container.y = this.stage.stageHeight / 2;
63| }
papervision3dを弄ってみた感想としては、このくらいのサンプルだとあまり分からないですが、 もっと複雑なことをしたときに、AS3を使うだけあって、今まででは考えられないくらいのスピード感が得られます。
他に代表的な3Dフレームワークといえば、sandy等ありますが、両方触りましたが、僕的にはpapervision3dの方がより良かったです。(分かりやすい)
papervision3dについてこれからもう少し書いていこうと思います。よろしくです。

コンパイルにはFlash9 Public Alpha及び papervision3dクラスライブラリが必要です。
ソースはこちら

▽免責事項▽
 このサンプルを使用した場合、または使用できなかった等のいかなる損害も、
 制作者 むらけん 及び F-site は、その責を負いません。
 ご自身の責任においてご使用ください。

コメント

この記事へのコメント

  1. 1.gankon(2008年01月31日 05:03)

    コメント
    doubleSidedはget,set型に変更になったらしく、initObjectでは使えない。
    material.doubleSided=true;
    とするらしい。

この記事にコメントを書く

記事に対するテクニカルな質問はご遠慮ください(利用規約)。

その他の記事