環境Windows7 64bit, vs2010, C++
DirectX9c
3Dのゲームを作成しています。
メタセコイアで作った3Dモデルの球状の上をキャラが歩く処理を作りました
キャラの足元に向けてレイ判定を飛ばして、地面の高さに合わせてキャラの高さも合わせるようにしています
レイ判定がすりぬけるときがたまにあります
3Dモデルを改善するか、プログラム上で対処するかだと思うんですけど
どうすればいいのか教えてください
なんて検索すればいいのかわからないので、できれば解説サイトのURLなど教えてもらうとうれしいです
レイ判定がすりぬけてしまうときがある
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: レイ判定がすりぬけてしまうときがある
そのすり抜ける条件が分からないと対策も出来ないですね。
レイが短いとか何かあるはずです。
【補足】人間は視覚化すると問題を把握しやすいので、モデルとかを半透明にしてレイをポリゴンの棒として表示してみたら問題が把握できるかも知れません。
レイが短いとか何かあるはずです。
【補足】人間は視覚化すると問題を把握しやすいので、モデルとかを半透明にしてレイをポリゴンの棒として表示してみたら問題が把握できるかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
- 記事: 51
- 登録日時: 11年前
Re: レイ判定がすりぬけてしまうときがある
回答ありがとうございますsoftya(ソフト屋) さんが書きました:そのすり抜ける条件が分からないと対策も出来ないですね。
レイが短いとか何かあるはずです。
【補足】人間は視覚化すると問題を把握しやすいので、モデルとかを半透明にしてレイをポリゴンの棒として表示してみたら問題が把握できるかも知れません。
自分が勝手に想像しているだけですけど、ポリゴンの境目のところを歩くとレイがすり抜けますね。
決まった地点に立つとすり抜けます。(前に進んだ後、後ろに進んでも、同じ地点ですり抜ける)
3Dゲーム初心者なのでレイがすり抜ける原因が3Dモデルのせいか、レイの発射地点がすでに3Dモデルにめりこんでいるかぐらいしかわかりません
一応、レイが当たった時の距離は数値で画面上にだしております
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: レイ判定がすりぬけてしまうときがある
そういう意味でも視覚化してみてください。私が調べるなら、そうします。
当たっているポリゴン面も光らせるとかしてみてください。 予定外の面に当たり判定しているかもしれませんよ。
>一応、レイが当たった時の距離は数値で画面上にだしております
これって直感的ではないので誤認しやすいとおもいます。
当たっているポリゴン面も光らせるとかしてみてください。 予定外の面に当たり判定しているかもしれませんよ。
>一応、レイが当たった時の距離は数値で画面上にだしております
これって直感的ではないので誤認しやすいとおもいます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
- 記事: 51
- 登録日時: 11年前
Re: レイ判定がすりぬけてしまうときがある
そうですね数値だけじゃまだわからないですね。softya(ソフト屋) さんが書きました:そういう意味でも視覚化してみてください。私が調べるなら、そうします。
当たっているポリゴン面も光らせるとかしてみてください。 予定外の面に当たり判定しているかもしれませんよ。
>一応、レイが当たった時の距離は数値で画面上にだしております
これって直感的ではないので誤認しやすいとおもいます。
分かりました
とりあえず、あたっているポリゴン面を光らせることをやってみます
-
- 記事: 51
- 登録日時: 11年前
Re: レイ判定がすりぬけてしまうときがある
報告おくれてすいませんでした
解決しました
原因は詳しいところは分からないですけど
3Dモデルのポリゴンの境目でレイ判定がすり抜けるのが原因でした
レイ判定がすり抜けたら、少しずらして再度判定をして
レイを太くすることで解決しました
解決しました
原因は詳しいところは分からないですけど
3Dモデルのポリゴンの境目でレイ判定がすり抜けるのが原因でした
レイ判定がすり抜けたら、少しずらして再度判定をして
レイを太くすることで解決しました