Mayaでモデリングした3DデーターをPaperVision3Dで表示。

Mayaでモデリングした3DデーターをPaperVision3Dで表示してみました。
こんな感じ。
http://moeten.info/flex/20081208_pv3dColladaMaya/bin-release/main.html

飛行機でっす。

簡単な説明


オブジェクト上で右クリックしてオブジェクト選択モードでオブジェクトを選択。

選択したオブジェクトを書きだす。

dae形式を選択。
もし出力形式にdaeがない場合はうまくプラグインが読み込まれていないので、ウィンドウ⇒設定⇒プラグインマネージャーで読み込みをさせる。

さらにもし、このプラグインが見当たらない場合はこちらからダウンロード
FBX Plug-ins
プラグインは読み込まれたり読み込まれなかったりよくあります(@_@;)
次はテクスチャを貼りたいなぁ。影付きの。
そして、かわいいの作りたいなぁ。
参考リンク

すべてのソースはこちら

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute" creationComplete="init3D()" width="640" height="480"
    backgroundGradientColors="[0xffffff,0x999999]"
 viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
/* **********************************
            PV3D
********************************** */
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.objects.special.SimpleLevelOfDetail;
import org.papervision3d.materials.BitmapFileMaterial;
private var scene    : Scene3D;
private var viewport : Viewport3D;
private var renderer : BasicRenderEngine;
private var camera   : Camera3D;
private var cameraTarget : DisplayObject3D;
//初期化
private function init3D():void{
    setupScene();
    setupCamera();
    setupCollada();
    setupListeners();
}
//シーンの作成
private function setupScene():void{
    viewport = new Viewport3D( myUI.width , myUI.height , true , false , true , true );
    myUI.addChildAt(viewport , 0);
    renderer = new BasicRenderEngine();
    scene    = new Scene3D();
}
//カメラ設定
private function setupCamera():void{
    cameraTarget = new DisplayObject3D();
    camera = new Camera3D();
    camera.z = - 300;
    camera.y = 10;
}
//イベントリスナー設定
private function setupListeners():void{
    this.addEventListener(Event.ENTER_FRAME , onRenderTick );
}
//レンダリング+マウス操作
private var theta:Number = 3;
protected function onRenderTick(e:Event):void {
    var reach:Number = 0.01;
    var ease:Number = 0.1;
    var cameraDistance:Number = 100;
    camera.x += (Math.sin(mouseX * reach) *   cameraDistance - camera.x) * ease;
    camera.y += (Math.sin(mouseY * reach) *   cameraDistance - camera.y) * ease;
    theta += 0.03;
    myDae.rotationY -=1;
    renderer.renderScene(scene , camera , viewport );
}
//リサイズイベント
private function onResize(e : Event) : void {
}
/* *****************
    myMain
 ***************** */
//Daeの作成
private var myDae:DAE;
private function setupCollada():void{
    myDae = new DAE();
    var mat:ColorMaterial = new ColorMaterial(0x333333,0.95 );
    myDae.load("hikouki.dae",new MaterialsList({all:mat}));
    myDae.scaleX = 10;
    myDae.scaleY = 10;
    myDae.scaleZ = 10;
    scene.addChild(myDae);
}
]]>
</mx:Script>
<mx:UIComponent id="myUI" width="100%" height="100%" />
</mx:Application>