スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スキンメッシュアニメーションを進化させる・・・!

さて、プログラミングのお話です。

現在スキンメッシュアニメーションを実行させる段階まで出来ました。

しかし、ゲームを作るとなると アニメーションをしただけではダメです。
ひとつ決定的に欠けているものがあります。

それは・・・衝突判定。


格闘ゲームであれば「パンチが当たった」などを判定できなければ、
いくらキャラクターが動いても無意味なのです。

そう、衝突判定を実装せねばならない・・・!


さて、どうしよう。

とりあえず、境界球が一番やりやすそうなので、コレで行こうと思います。

※当たり判定には、境界球、AABB(軸並行境界ボックス)、OBB(有向境界ボックス)など、
いくつかの種類がある。

境界球は、モデルを回転させたりしても特に問題ないので、便利です。
(ただ、細長い3Dモデルだとデッドゾーンが多くなるのが欠点)


そして、当たり判定のやり方は こんな感じです。↓
------------------------------------------------------------------------------
【1】3Dモデルをすっぽりと包む球を定義する
【2】モデルAとBを用意する
【3】AB間の距離 <= (Aの境界球の半径 + Bの境界球の半径) なら接触

------------------------------------------------------------------------------
CheckHit.jpg

で、人型のモデルなどは大抵 綺麗に球に収まらないので
-----------------------------------------------
【1】大まかな球で接触する
【2】細かい球で更に衝突判定をする

-----------------------------------------------
という、2段階方式を取ろうと思います。
CheckHit2.jpg
(絵は適当ですので、若干のすき間などは無視してください)


とりあえず球を生成する処理を作らないとどうしようもないので、
まずは それからつくろうと思います。
(DirectXのヘルパー関数群にあったような気がしますが、自分で実装します)

--------------------------------------------------------------
頂点(球の中心)、半径球のポリゴン数(滑らかさ)
--------------------------------------------------------------
大体、この3つの情報を渡せば勝手に作ってくれる感じにしようかと。


あと、当たり判定のほかに、
もうひとつ追加させようと思ってる新機能があります。

今はなんとなく秘密です。
(上手く完成したときに発表しようと思ってる)
スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント
コメントの投稿
管理者にだけ表示を許可する



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。