3DモデルをAS3で表示する
作成
「C:\home\Flex\Test_PV3D_Mqo」というフォルダを作り、そこに以下のファイルを置く。
データ
Metasequoiaで「MyFighter.mqo」として保存したファイルをここにコピー。(あるいは直接ここに保存)
コード
以下のコードを「Test_PV3D_Mqo.as」として保存する。
//メタセコイアのファイルをPV3Dで表示するサンプル package { import flash.events.*; import flash.utils.Timer import flash.ui.Keyboard; import flash.text.TextField; import flash.text.TextFormat; import org.libspark.pv3d.Metasequoia; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.view.BasicView; public class Test_PV3D_Mqo extends BasicView { //コンストラクタ public function Test_PV3D_Mqo(){ super(400, 480); init(); addEventListener(Event.ENTER_FRAME, onUpdate); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); startRendering(); } private function init():void{ //Init Camera { camera.x = -10; camera.y = 0; camera.z = 0; camera.zoom = 300; camera.focus = 1; } //Init Model { var obj:Metasequoia = new Metasequoia(); obj.load("MyFighter.mqo", 0.01); scene.addChild(obj, "player"); } } private function onUpdate(evt:Event):void{ // var player:DisplayObject3D = scene.getChildByName("player"); } private function onKeyDown(evt:KeyboardEvent):void{ var player:DisplayObject3D = scene.getChildByName("player"); switch(evt.keyCode){ case Keyboard.UP: player.y += 0.1; break; case Keyboard.DOWN: player.y -= 0.1; break; case Keyboard.LEFT: player.z += 0.1; break; case Keyboard.RIGHT: player.z -= 0.1; break; } } } }
コンパイル
cygwinを起動し、「cd Flex/Test_PV3D_Mqo」で、上のデータがあるフォルダに移動。「mxmlc Test_PV3D_Mqo.as」でコンパイル。「Test_PV3D_Mqo.swf」ができたら成功。
実行
FlashPlayerがローカルで実行できれば(swfが対応付けられていれば)、直接swfを実行して確認。
そうでなければ、ブラウザにswfファイルを「ドラッグ&ドロップ」すれば確認できるはず。
サーバに上げる場合は、「Test_PV3D_Mqo.swf」と「MyFighter.mqo」を上げればOK。
サンプル
googleサイトにTest_PV3D_Mqo.swfを上げてみた。クリックして上下左右で移動可能。show_o_healerにコードも上げておいた(設定が共有になってなかったので、共有にして他からも見えるようにしておいた)。
参考サイト
- Papervision3Dでメタセコイアのmqoファイルを表示する: シン石丸の電脳芸事ニッキ
- DOGAで作成したデータをAS3で表示するまで
- http://850mb.net/pukiwiki/index.php?MqoLoader
- Metasequoiaクラスのサンプル