レイ判定がすりぬけてしまうときがある

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
AliceCoder
記事: 51
登録日時: 7年前

レイ判定がすりぬけてしまうときがある

#1

投稿記事 by AliceCoder » 6年前

環境Windows7 64bit, vs2010, C++
DirectX9c

3Dのゲームを作成しています。
メタセコイアで作った3Dモデルの球状の上をキャラが歩く処理を作りました
キャラの足元に向けてレイ判定を飛ばして、地面の高さに合わせてキャラの高さも合わせるようにしています
レイ判定がすりぬけるときがたまにあります
3Dモデルを改善するか、プログラム上で対処するかだと思うんですけど
どうすればいいのか教えてください
なんて検索すればいいのかわからないので、できれば解説サイトのURLなど教えてもらうとうれしいです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: レイ判定がすりぬけてしまうときがある

#2

投稿記事 by softya(ソフト屋) » 6年前

そのすり抜ける条件が分からないと対策も出来ないですね。
レイが短いとか何かあるはずです。

【補足】人間は視覚化すると問題を把握しやすいので、モデルとかを半透明にしてレイをポリゴンの棒として表示してみたら問題が把握できるかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

AliceCoder
記事: 51
登録日時: 7年前

Re: レイ判定がすりぬけてしまうときがある

#3

投稿記事 by AliceCoder » 6年前

softya(ソフト屋) さんが書きました:そのすり抜ける条件が分からないと対策も出来ないですね。
レイが短いとか何かあるはずです。

【補足】人間は視覚化すると問題を把握しやすいので、モデルとかを半透明にしてレイをポリゴンの棒として表示してみたら問題が把握できるかも知れません。
回答ありがとうございます
自分が勝手に想像しているだけですけど、ポリゴンの境目のところを歩くとレイがすり抜けますね。
決まった地点に立つとすり抜けます。(前に進んだ後、後ろに進んでも、同じ地点ですり抜ける)
3Dゲーム初心者なのでレイがすり抜ける原因が3Dモデルのせいか、レイの発射地点がすでに3Dモデルにめりこんでいるかぐらいしかわかりません

一応、レイが当たった時の距離は数値で画面上にだしております

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: レイ判定がすりぬけてしまうときがある

#4

投稿記事 by softya(ソフト屋) » 6年前

そういう意味でも視覚化してみてください。私が調べるなら、そうします。
当たっているポリゴン面も光らせるとかしてみてください。 予定外の面に当たり判定しているかもしれませんよ。

>一応、レイが当たった時の距離は数値で画面上にだしております
これって直感的ではないので誤認しやすいとおもいます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

AliceCoder
記事: 51
登録日時: 7年前

Re: レイ判定がすりぬけてしまうときがある

#5

投稿記事 by AliceCoder » 6年前

softya(ソフト屋) さんが書きました:そういう意味でも視覚化してみてください。私が調べるなら、そうします。
当たっているポリゴン面も光らせるとかしてみてください。 予定外の面に当たり判定しているかもしれませんよ。

>一応、レイが当たった時の距離は数値で画面上にだしております
これって直感的ではないので誤認しやすいとおもいます。
そうですね数値だけじゃまだわからないですね。
分かりました
とりあえず、あたっているポリゴン面を光らせることをやってみます

AliceCoder
記事: 51
登録日時: 7年前

Re: レイ判定がすりぬけてしまうときがある

#6

投稿記事 by AliceCoder » 6年前

報告おくれてすいませんでした
解決しました
原因は詳しいところは分からないですけど
3Dモデルのポリゴンの境目でレイ判定がすり抜けるのが原因でした
レイ判定がすり抜けたら、少しずらして再度判定をして
レイを太くすることで解決しました

閉鎖

“C言語何でも質問掲示板” へ戻る