今Dxライブラリで3dゲームを作っているのですが、弾と地形との当たり判定が
うまくいきません。たとえば、たまの速度を上げると壁を通り抜けてしまいます。
原因はわかってるのですが、対処法がわかりません。どうすればよいでしょうか?
Dxライブラリ3d 弾丸について
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxライブラリ3d 弾丸について
モデルの弾の大きさで当たり判定するのではなく、移動距離も含めた大きさの弾が存在するものとして当たり判定カプセルで当たり判定したらどうでしょうか。
「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... .html#R9N8
「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... .html#R9N8
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxライブラリ3d 弾丸について
[弾] ←弾一個分の当たり判定サイズ(従来)
弾が位置AからBまで移動したときの判定領域サイズ(提案)
[A__________________________B]
ということでは?
弾が位置AからBまで移動したときの判定領域サイズ(提案)
[A__________________________B]
ということでは?
オフトピック
回答側がナチュラルに予想して答えてはいるけれども
>原因はわかってるのですが、
ということであれば,その「わかっている原因」を書かれた方がいいんじゃないかな
>原因はわかってるのですが、
ということであれば,その「わかっている原因」を書かれた方がいいんじゃないかな
Re: Dxライブラリ3d 弾丸について
ゆっくり弾が進む場合だとusao さんが書きました:>原因はわかってるのですが、
ということであれば,その「わかっている原因」を書かれた方がいいんじゃないかな
●←弾
┃←壁
┃
●●●●●●●┃
┃
という具合に当たるのですが、
早い場合だと
┃
● ● ┃ ●
┃
といった感じで当たらないということです
ということはusao さんが書きました:弾が位置AからBまで移動したときの判定領域サイズ(提案)
[A__________________________B]
●←弾
┃←壁
-←弾の移動距離&弾の当たり判定
┃
●------●---┃----●
┃
ということでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxライブラリ3d 弾丸について
太さが弾と同じで移動距離長のカプセルで当たり判定するなら、弾自体の当たり判定は不要ですよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxライブラリ3d 弾丸について
()←当たり判定カプセル
●←弾のモデル
(←弾の移動距離→●)
ということであってますでしょうか?
●←弾のモデル
(←弾の移動距離→●)
ということであってますでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxライブラリ3d 弾丸について
弾自体は当たり判定しなくて良いんですけどね。
弾の長さ+移動距離をカプセルの長さにするという意味なら合ってます。
【補足】
ゲームプログラミングではと言うか今のCPUの仕組みでは時間は飛び飛びになるしかないので、1フレームの間で一定距離移動した物体は通った場所全部に存在していると考えるんです。
扱っているはリアル(現実)ではなく、リアルを擬似的にシミュレートしているものなのです。
【補足の補足】
この様に時間が飛び飛びになる事を離散的であると言いますが、現実の時間は連続的です。
つまり、ゲームプログラミングでは現実的ではない事しないとそれっぽく見えないのです。
弾の長さ+移動距離をカプセルの長さにするという意味なら合ってます。
【補足】
ゲームプログラミングではと言うか今のCPUの仕組みでは時間は飛び飛びになるしかないので、1フレームの間で一定距離移動した物体は通った場所全部に存在していると考えるんです。
扱っているはリアル(現実)ではなく、リアルを擬似的にシミュレートしているものなのです。
【補足の補足】
この様に時間が飛び飛びになる事を離散的であると言いますが、現実の時間は連続的です。
つまり、ゲームプログラミングでは現実的ではない事しないとそれっぽく見えないのです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。