IN2AR でマーカーデータを動的にロード


IN2AR Demo

ちょっと仕事がらみでユージン先生作の超素敵な AR エンジン「IN2AR」を試していたなかで、AR マーカーファイルをアプリにエンベットせずにサーバー上から動的に読み込んでも無事動作したのでちょっとだけメモ。

マーカー読み込み部分のコードはこんな感じ。(エラー処理は省略)

private var _loader:URLLoader;
private var _markerData:ByteArray;
		
private function dataLoader():void
{
	var req:URLRequest = new URLRequest( "マーカーデータのURL" );
	req.contentType = "application/octet-stream";
	
	// URLLoaderDataFormat.BINARY でロード
	_loader = new URLLoader();
	_loader.dataFormat = URLLoaderDataFormat.BINARY;
	_loader.addEventListener( Event.COMPLETE, onDataLoaded );
	_loader.load( req );		
}

private function onDataLoaded( e:Event ):void
{
	_loader.removeEventListener( Event.COMPLETE, onDataLoaded );

	// マーカーデータ(ByteArray)に読み込んだデータをセット
	_markerData = _loader.data;

	// ここから AR部分の処理を開始	
}

マーカーデータといえども、バイト配列で使用するのでこの方法で簡単に読み込めました。

これでアプリ内にマーカーファイルを全部埋め込んでおかなくても、必要なマーカーを動的にサーバから取得できるようになるのでなにかと便利ですよね。