読者です 読者をやめる 読者になる 読者になる

PaperVision3Dを触ってみた


Etude_pv3d_1.swf
なんか触ってみる順番が違うような気もしますが…
throw Life - Papervision3Dでシンプルなオブジェクトを回転させるを見ながら作りました。

メモ


PaperVision3Dの主要クラスの関係をメモしたもの。

Away3Dと比べての感想

PV3Dのほうが扱いやすさでは上かな?
Away3Dはくせがある感じですが、慣れると楽そうです。
まだちょちょっと触っただけなので感想としてはこんなもんです。

ソースはこんな感じ

結構短くなりました。
紙飛行機クラスがあったのでそれを使用。

package{
    include "../import.as";

    [SWF(width="400", height="400", backgroundColor="#ffffff", frameRate="30")]
    public class Etude extends Sprite{
    
        public function Etude(){
            // 最初の画面大きさ
            var w:uint = stage.stageWidth;
            var h:uint = stage.stageHeight;
            
            stage.scaleMode = StageScaleMode.NO_SCALE;  // 拡大縮小の無効
            stage.align = StageAlign.TOP_LEFT;          // 配置を左上に
            stage.addChildAt( new BgShape( w, h), 0);   // 背景の追加
            stage.addChild( new FPSTextField( stage));  // fps表示欄の追加
            
            // 自分の位置の設定
            x = w/2;
            y = h/2;
            
            // シーン生成
            var scene:Scene3D = new Scene3D( this);
            
            // material生成
            var mat:ColorMaterial = new ColorMaterial( 0xcccccc, 0.5);
            mat.oneSide = false;
            
            // PaperPlane紙飛行機を生成してsceneに追加
            var pp:PaperPlane = new PaperPlane( mat, 3);
            scene.addChild( pp);
            
            // Camera生成
            var camera:Camera3D = new Camera3D();
            camera.z = -400;
            
            // イベント設定
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
            function onEnterFrame( e:Event):void{
                pp.rotationY += 3;
                pp.rotationX += 3;
            
                scene.renderCamera( camera);
            }
            
        }
    }
}