さて、以前のエントリでPapervision3Dのアルファ版、GreatWhiteの変更の影響でFLARToolKitが動かなくなったと言う話を書いたが、結局さくーしゃさんがFLARToolKitを修正してくださった。よく見るとサンプルの方もさりげなくバージョンアップしていて、流石としか言いようが無いんだが、GreatWhiteが狭量な所為で、書き換えないといけない。
と言う事で、今回は変更方法を解説したいと思う。
最新版の入手と変更
まず、Papervision3DとFLARToolKitの最新版を入手し、FlashDevelopのプロジェクト上で、両方にパスを通して欲しい。
次にFLARToolKitのcom.libspark.flartoolkit.scene.FLARCamera3D
クラスを開くと、116行目以降に変更が必要な部分についての解説が掲載されている。
- // 巣の GreatWhite のままだと _projection が Camera3D の private プロパティなのでエラる。
- // ので protected とかにしてください。無理やり。害はない。つーかまーそれ以外に方法がない。
- this._projection = new Matrix3D(m_projection);
ここを開き、_projection
ら辺にカーソルを合わせて(こんな感じ→「_proje|ction
」)、F4キーを押すと、Papervision3DのCamera3D.asが開き、ちょうど
- private var _projection : Matrix3D;
- private var _prevFocus : Number;
- private var _prevZoom : Number;
- private var _prevWidth : Number;
- private var _prevHeight : Number;
- private var _prevOrtho : Boolean;
- private var _prevOrthoProjection : Boolean;
- private var _prevUseProjection : Boolean;
- private var _focusFix : Matrix3D;
の_projection
部分が選択されている事と思う。ここのprivate
を、protected
に変更すれば終了。
- protected var _projection : Matrix3D;
- private var _prevFocus : Number;
- private var _prevZoom : Number;
- private var _prevWidth : Number;
- private var _prevHeight : Number;
- private var _prevOrtho : Boolean;
- private var _prevOrthoProjection : Boolean;
- private var _prevUseProjection : Boolean;
- private var _focusFix : Matrix3D;
これでOK。
もしくは、Papervsion3Dのorg.papervision3d.cameras.Camera3D
を直接編集してもよい。探すのが面倒だけど。
しかし、出来る事ならPapervision3Dの方に折れてもらって、この部分はprotected
で通して欲しいな。
誰か英語が出来てPapervision3D界隈に顔の利く方、ここがprotected
になるように働きかけてもらえませんかね?
違った投影方法にしたい人も居るんだよ?とか言って。