困った。Papervision3Dの変更の影響でFLARToolKitが動かなくなっている・・・。

  • このエントリーをはてなブックマークに追加
  • 80

FLARToolKitでは、Papervision3Dの「FrustumCamera3D」を継承した「FLARCamera3D」と言うクラスを使ってPapervision3Dのカメラ(3Dモデルを表示するためのカメラ)とWebカメラ用のパラメータを調整していたんだが、Papervision3Dの変更によりFrustumCamera3DがCamera3Dに統合され、無くなってしまったようだ。
なので、Camera3Dを使って何とかしなくてはいけないのだが、難しすぎて俺にはきつそうだ。

取り敢えず、現状の問題点としては、「コンパイルが出来ない」と言う事に尽きる。
そして、「親クラスをCamera3Dにしても、上手く表示されない」という問題点もある。それについては画像を用意してみた。

元の表示
取り敢えず親クラスをCamera3Dにしてみた結果・・・逆だ。

これは、コンボボックス型の拡張現実型メタセコビューワをコンパイルしなおして表示してみたものだが、違いは一目瞭然だと思う。見た感じだと、座標軸が逆になっているようだ。少なくともZ方向は逆だ(理由不明)。あと、前後方向(Yかな?)も逆っぽい。また、赤四角を見ると、マーカと大きさが一致していない。つまり、拡大率が違うと言う事だろう。と言う事で、現在最も簡単な解決策は「FrustumCamera3DがあるPapvervision3Dを使用する」だ。その方法を書いておこう。

古いバージョンのPapervision3Dを使う

古いバージョンと言っても、アルファ版のGreateWhiteの使用をやめる訳ではない。「SubversionからFrustumCamera3Dが削除される直前のリビジョンのPapervision3Dを使う」と言うのが正確だ。リビジョンとは、Subversion中のソース管理の番号だ。ソースを変更し、コミットを行うたびに変わる。まぁ詳細は適当に調べて欲しい。今回行う具体的な作業内容は、
「FrustumCamera3Dが無くなった時のリビジョン番号を調べ、その1つ前のリビジョンをチェックアウトする」
となる。
Subversionでは、ファイルが更新されたとか追加されたとか削除されたとかは、ログとして全部残る。なので、ログを見ていけばどこでFrustumCamera3Dが無くなったか一目瞭然だ。ログは、チェックアウトしたフォルダで右クリックするか、リポジトリブラウザでログを見たい部分のフォルダを右クリックすると表示できる。

で、ログを見る限りだと、FrustumCamera3Dがなくなったのは、この部分。

ActionScript

  1. リビジョン: 639
  2. 作者: tim.knip
  3. 日時: 1:33:04, 2008711
  4. メッセージ:
  5. Camera unification - initial commit - bombs away!
  6. ----
  7. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/cameras/Camera3D.as
  8. 追加 : /trunk/branches/GreatWhite/src/org/papervision3d/cameras/CameraType.as
  9. 追加 : /trunk/branches/GreatWhite/src/org/papervision3d/cameras/DebugCamera3D.as
  10. 削除 : /trunk/branches/GreatWhite/src/org/papervision3d/cameras/DebugFrustumCamera3D.as
  11. 削除 : /trunk/branches/GreatWhite/src/org/papervision3d/cameras/FreeCamera3D.as
  12. 削除 : /trunk/branches/GreatWhite/src/org/papervision3d/cameras/FrustumCamera3D.as
  13. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/core/components/as3/core/PV3DUIComponent.as
  14. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/core/components/as3/flash9/PV3DScene3D.as
  15. 追加 : /trunk/branches/GreatWhite/src/org/papervision3d/core/culling/FrustumCuller.as
  16. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/core/culling/FrustumTestMethod.as
  17. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/core/geom/TriangleMesh3D.as
  18. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/core/proto/CameraObject3D.as
  19. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/objects/DisplayObject3D.as
  20. 削除 : /trunk/branches/GreatWhite/src/org/papervision3d/objects/special/Frustum3D.as
  21. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/objects/special/Sound3D.as
  22. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/render/BasicRenderEngine.as
  23. 変更 : /trunk/branches/GreatWhite/src/org/papervision3d/view/BasicView.as

リビジョン639だ。
よし!ではリビジョン638をチェックアウトだ。チェックアウトの方法はこちらを参考にして欲しい。
今回は、「http://papervision3d.googlecode.com/svn/trunk/branches/GreatWhite」からチェックアウトを行う。
で、特定のリビジョンをチェックアウトする方法だが、

特定リビジョンをチェックアウトする

こんな感じ。リビジョン選択画面で、「リビジョン」を選択し、欲しいリビジョン番号を記入する。これで、後はFlashDevelopでクラスパスにこっちを指定してやればOK。

感想

取り敢えず、俺のほうでもコードを追ってみている。何とかして元に戻してやりたいが、いかんせん知識不足なので結構時間がかかるかもしれない。なので、その間にSaqooshaさんが何とかしてくれるかもしれない。

全く、勉強会とか電脳フィギュアとか忙しい時に限ってこれだからな。参ったよ。

そう言えば、ウチの「あわせて読みたい」に電脳フィギュアの社長のブログが入ってた&電脳フィギュアの社長のブログの「あわせて読みたい」にウチが入ってたことにビックリしたよ。

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク