FLARToolkitのスターターキットは、基本的にマーカとカメラの
パラメータファイルを外部からロードすることになっている。
しかし、俺は埋め込みたいので、いつも違う方法を使っている。
実際埋め込みをやると結構長いコードになるのだが、
今日はFLARParamとFLARCodeをswfに埋め込んでおく時の
読み込み方だけを解説しよう。
基本はEmbed。
Flashで埋め込みと言えばEmbedだ。
メンバ変数の所に、こんな感じで書いておく。
勿論、ソースの位置からカメラファイルとパターンファイルを
参照できるようにしておくこと。
以下の例の場合、「このソースと同じフォルダに「assets」フォルダがあり、
その下にcamera_para.datとpatt.hiroがある。
- [Embed(source = "assets/camera_para.dat", mimeType = "application/octet-stream")]
- private var CParam:Class;
- [Embed(source = "assets/patt.hiro", mimeType = "application/octet-stream")]
- private var CodeData:Class;
- protected var _param:FLARParam;
- protected var _code:FLARCode;
で、コンストラクタにでもこうやって初期化コードを書く。
- var codeFile:ByteArray = new CodeData() as ByteArray;
- _param = new FLARParam();
- _param.loadARParam(new CParam() as ByteArray);
- _param.changeScreenSize(320, 240);
- _code = new FLARCode(16,16);
- _code.loadARPatt(codeFile.readMultiByte(codeFile.length, "shift-jis"));
これでよし。
以降、必要なものを順次初期化するんだが、結構多い。
このやり方だとスターターキットのPV3DAppだのを使えないので、
自分で初期化しないといけない。
このデモを作ったコード(これ)なんかは、初期化が全部書いてあって
サンプルとしてはいいと思う。
内容的にはスターターキットのSimpleCubeをPlaneに
変えたくらいのものだから。
なお、FLARToolkitのりビジョン3236辺りから、FLARParamは
自動的に標準のカメラパラメータが入るようにmakcなる人が改造していた。
なので、読み込むのはマーカのファイルだけでいいかも。
ただ、当該スレッドには「new FLARParam(true)」とあるが、
多分「FLARParam()」で動く。