ソーサリーフォース「スクリーン上の位置からモデルを選択」昨年紹介した「
3次元座標からスクリーンへの座標変換」と逆の座標変換をテーマとしたTipsで、当たり判定も行っている。
◎アンケート結果やはり回答率低いですね…2〜3人?予想通りなんですけど、ちょっと寂しいです。そんな中でもわざわざご回答頂いた方、ありがとうございました!
さすがにこの人数なら集計するまでもないでしょう。結果が知りたい人はもう一度動画を見てください。
一番気にしてたのは「去年と同じく開発中心のままでいいのか?」という点ですが、賛否それぞれ1票って微妙ですね。誰かもう1票投じてくれると傾くんですけど(笑)
では、とりあえず去年の続きから再開します。
◎城のY座標昨年は城モデルの配置座標(XZ座標)がずれている所で終わりましたが、座標をすぐに修正しなかったのは、先に城を配置する高さ(Y座標)を特定したかったからです。
城の配置座標(XZ座標)は見た目で適当に修正するわけですが、XZ座標修正後にY座標を変更すると、またずれてしまいます。
地形モデルは元々標高データをベースに作成したので、標高データからY座標を算出するのが筋だと思います。
しかしメタセコイアでの地形モデル作成時に、ポリゴン数を減らす加工をしてしまったので、既に標高データと地形モデルは一致しません。別の方法を考えましょう。
◎当たり判定城名称を表示する際に「
スクリーン上の位置からモデルを選択」を併読し、「これで城の高さが特定できるんじゃないか?」と考えました。
このTipsは、スクリーン座標から3D空間座標に変換して3Dモデルの当たり判定を行う方法を紹介したもので、スクリーン手前から奥に線を延ばして、その線が3Dモデルと衝突するかチェックします。
衝突した場合は、開始点から衝突点までの距離が返るとのこと。
今回の地形は3Dモデルなので、空中から地面に対して線を延ばし、その線が地面と衝突する距離をチェックすれば、正確な地面の高さが特定できそうです。
◎当たり判定用のメッシュ…で、実際にプログラムを組み込んでから気付いたのですが、当たり判定を行うためには、当たり判定用のメッシュが別途必要なんですね。3Dモデルのメッシュがそのまま当たり判定に使えると思ってました。
…で、当たり判定用のメッシュを用意するには、当たり判定の形状を特定する必要があります。つまり、地形モデルの正確な形状(座標)が判らないと、この方法は使えないということです。
…この方法もダメっぽいですね。別の方法を探りましょう。
◎次回予告長くなりそうなので、今回はここまでとします。
続きはまた明日!
テーマ : ゲーム製作 関連 - ジャンル : ゲーム
コメントの投稿