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にコードも上げておいた(設定が共有になってなかったので、共有にして他からも見えるようにしておいた)。