地形は10x10分割のPlaneをperlinNoiseした画像の明るさに合わせて頂点移動してるだけです。
今回交差判定用のレイを2本飛ばしていて、
1つはキャラクタ上空から真下に飛ばして地形の高度をチェックして、
2つ目はカメラの注視点から視点にむかってレイを飛ばして
カメラがポリゴンに埋まっていないかをチェックしています。
(地形との交差点までの距離がカメラの距離より短かったら埋まっている)
エクスポータはここの「OpenCOLLADA for 3ds Max(ver1.2.3)」を使いました。
顔のディスプレイっぽいところ、黒い板の向こうに光る顔が見えてますが
透過させてるわけではなくて、法線フリップした黒ボックスを組み合わせてます。
↓こんな感じ

テクスチャ付きのColladaモデルをPapervisionで表示するまで
いくつかハマったポイントがあったのでメモしておきます。

Autodesk Colladaじゃなくて下のCOLLADA NextGenの方を選びます。
最初Autodeskの方を選んでて色々おかしな事になってました。。

細かいオプションはわからないけどとりあえずこんな感じでいけました。
Copy Imagesを選ぶとdaeファイルを書き出した所に画像データがコピーされるみたい。
書き出したファイルを見ると上の方に<contributor>タグがあるんですが
この中にユーザー名とかmaxファイルのフルパスとか入っちゃってるので
まずそうなのは消しておいたほうがいいかも。
クロスドメインの問題かなと思ったんだけど、結局よくわからなかった・・・
DAEクラスのインスタンス生成時にマテリアルリストを渡す方法ではうまくいったので
今回はその方法でやっています。
DAEのマテリアルリストの設定方法はこちらのサイトが詳しいです。
[Pv3D]Papervision3Dをやってみた その3[AS3.0] - 明日の今日
[Pv3D][Flex]Collada(.dae)のマテリアル張り替え - 明日の今日
複数アニメーションに関してはこちらの記事を参考にさせてもらいました。
[Papervision3D 2.1 alpha] Collada(.dae)で複数モーション - KYUCON*BLOG
Shockwave3Dの時は時間ベースの歩行アニメーションと
フレームベースの移動を同期させる為に
FPSを計算してアニメーションスピードを調節してたんだけど、
現状のDAEクラスにはアニメーションの再生倍率を弄る機能はついてないのかなあ。
今回交差判定用のレイを2本飛ばしていて、
1つはキャラクタ上空から真下に飛ばして地形の高度をチェックして、
2つ目はカメラの注視点から視点にむかってレイを飛ばして
カメラがポリゴンに埋まっていないかをチェックしています。
(地形との交差点までの距離がカメラの距離より短かったら埋まっている)
キャラクターモデル
ロボットは3dsMax2010で作ってColladaエクスポータで書き出したものです。エクスポータはここの「OpenCOLLADA for 3ds Max(ver1.2.3)」を使いました。
顔のディスプレイっぽいところ、黒い板の向こうに光る顔が見えてますが
透過させてるわけではなくて、法線フリップした黒ボックスを組み合わせてます。
↓こんな感じ

Colladaファイルの書き出し
モデルができたらエクスポータで書き出すだけなんだけど、テクスチャ付きのColladaモデルをPapervisionで表示するまで
いくつかハマったポイントがあったのでメモしておきます。
- 書き出し形式

Autodesk Colladaじゃなくて下のCOLLADA NextGenの方を選びます。
最初Autodeskの方を選んでて色々おかしな事になってました。。
- 書き出しオプション

細かいオプションはわからないけどとりあえずこんな感じでいけました。
Copy Imagesを選ぶとdaeファイルを書き出した所に画像データがコピーされるみたい。
- daeファイル内の個人情報
書き出したファイルを見ると上の方に<contributor>タグがあるんですが
この中にユーザー名とかmaxファイルのフルパスとか入っちゃってるので
まずそうなのは消しておいたほうがいいかも。
- サーバーにあげると画像マテリアルが表示できない
クロスドメインの問題かなと思ったんだけど、結局よくわからなかった・・・
DAEクラスのインスタンス生成時にマテリアルリストを渡す方法ではうまくいったので
今回はその方法でやっています。
DAEのマテリアルリストの設定方法はこちらのサイトが詳しいです。
[Pv3D]Papervision3Dをやってみた その3[AS3.0] - 明日の今日
[Pv3D][Flex]Collada(.dae)のマテリアル張り替え - 明日の今日
キャラクターアニメーション
あと、せっかくなのでアニメーションもさせてみました。複数アニメーションに関してはこちらの記事を参考にさせてもらいました。
[Papervision3D 2.1 alpha] Collada(.dae)で複数モーション - KYUCON*BLOG
Shockwave3Dの時は時間ベースの歩行アニメーションと
フレームベースの移動を同期させる為に
FPSを計算してアニメーションスピードを調節してたんだけど、
現状のDAEクラスにはアニメーションの再生倍率を弄る機能はついてないのかなあ。

コメントする