7 月 21 2008

Papervision3Dでレースゲーム制作 04 - 3Dモデルとの合成

Posted by tanjo at 12:30 AM

DAEの3Dオブジェクトを読み込んで、前回作った疑似3Dのフィールドの上に合成します。
はたして上手くフィットするか。

3Dモデル作成~Papervision3Dで表示までのやり方はこちらのエントリ

3DモデルのスケールがPapervision3Dだとどのくらいの大きさになるのかは、結局よく分かりませんでした。というわけで、とりあえず合成した後、Colladaオブジェクトの scale プロパティを少しずつ調整しながら合わせていきました。
それとPapervision3Dは、Zソートというんでしょうか、「どちらの面が手前に表示されるか」の判定がかなりアバウトですので、床と3Dモデルの関係がおかしくならないよう Scene3D を2つ用意して、必ず3Dモデルの方が手前にくるようにしています。
最後に、3Dモデル用に使っている FreeCamera3D の z, x, rotationY プロパティを動かすようにしてあげれば完成。

疑似3Dの床テクスチャと、移動する3Dオブジェクトの接地部分が問題ないかちょっと不安だったけど、どうやらゲーム的に大丈夫なくらいの見え方はしていますね。地平線のパースをごまかすのは、FrustumCamera3Dで何とかする、と。

レースゲーム・サンプル画面

*ソースファイル Main.as の全文はこちらから参照できます。
(試行錯誤中のソースなんで怪しい行がいっぱいです。)

Leave a Reply