Flexでメタセコイアを3D表示(もやしもん)

Flexメタセコイアを3D表示してみました。
以前のはちゅねミクと同じですが、マウスカーソルにゆっくり追従します。
自分でメタセコイアでせこせこオリゼーを作成しました。
メタセコイア
材質、色を塗るときに参考になるページ
追加クラスはPapervision3D (1.5?)とメタセコイア読み込みクラスです。
Papervision3D
メタセコイア形式の読み込みクラス
あと趣味で鏡面反射を入れています。
Live Reflection

実際の動作はこちら
ソースはこんな感じになります。
もやしもんメタセコイアデーターも一緒に入ってますので、よろしければどうぞ。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    horizontalScrollPolicy="off" verticalScrollPolicy="off"
    backgroundAlpha="0.0"
    width="435" height="378" borderStyle="none"
    mouseFocusEnabled="true"
    mouseEnabled="true"
    creationComplete="initapp()" viewSourceURL="srcview/index.html"
    xmlns:flashFilter="flash.filters.*"
    xmlns:reflector="com.rictus.reflector.*"
    xmlns:dragpanel="com.rictus.dragpanel.*"
    >
    <mx:Script>
<![CDATA[
import mx.core.Container;
import flash.display.*;
import flash.events.*;
import flash.utils.Timer
import org.libspark.pv3d.Metasequoia;
import org.papervision3d.core.*;
import org.papervision3d.cameras.*;
import org.papervision3d.materials.*;
import org.papervision3d.objects.*;
import org.papervision3d.scenes.*;
// Papervision3D 系
private var container:Container;
private var scene:Scene3D;
private var rootNode:DisplayObject3D;
private var camera:Camera3D;
private var obj:Metasequoia = new Metasequoia();
public function initapp():void{
    // 新しいスプライトを作って表示リストに入れておく。
    container        = new Container();
    container.x      = this.width/2;
    container.y      = this.height/2;
    container.width  = 80;
    container.height = 80;
    myCanvas.addChild(container);
    // シーンを作る。
    scene = new Scene3D(container);
    // カメラを作る。
    camera = new Camera3D();
    camera.y = 0;
    camera.x = 270;
    camera.z = 0;
    camera.zoom = 300;
    camera.focus = 1;
    // 3D シーンにルートオブジェクトを作る0。
    rootNode = scene.addChild(new DisplayObject3D("rootNode"));
    obj.load("orize4.mqo", 0.1 );
    obj.rotationY = 90;
    rootNode.addChild(obj, "player");
    container.filters = [fil];
    // タイマーイベント作成
    var timer:Timer = new Timer(80,0);
    timer.addEventListener(TimerEvent.TIMER , myTimer );
    timer.start();
}
private function myTimer( event:TimerEvent ) :void{
    obj.rotationX += (-this.mouseY -  90 - obj.rotationX )*0.1;
    obj.rotationY += ( -this.mouseX * 2 - 200 - obj.rotationY)*0.1;
    container.x += (this.mouseX - container.x   ) * 0.1;
    container.y += (this.mouseY - container.y   ) * 0.1;
    scene.renderCamera(camera);
}
]]>
</mx:Script>
<mx:Image x="0" y="0" width="442" height="378" source="bg.jpg"/>
<reflector:Reflector target="{myCanvas}" alpha="0.5"  falloff="0.8"/>
    <mx:Canvas x="0" y="0" width="435" height="378" id="myCanvas"
        horizontalScrollPolicy="off" verticalScrollPolicy="off"
    >
    </mx:Canvas>
<mx:filters>
   <flashFilter:DropShadowFilter id="fil" inner="false" distance="4" angle="90" color="0x000000" alpha="0.4" />
</mx:filters>
</mx:Application>