FPS衝突検出と移動


回答:


12

エンティティは、通常、ワールドエントコリジョンのワールドジオメトリ(または単純化されたコリジョンメッシュ)に対するカプセル(両端に球のある円柱)で表されます。

階段は通常、非表示のランプと衝突しないか、特定の高さより下では、衝突解決の副作用として通常リフトが発生します。(ステップサイズの一部として動きと相互浸透し、解像度は最も近い平面として上向きに飛び出します)

これがUnreal 3の動作方法だと思いますが、私は間違っている可能性があります。Sourceに境界ボックス階層が表示されたことを思い出しますが、それが戦闘のためだけのものだったかどうかは思い出せません。とにかく、カプセルはシンプルで高速です


1

Unity 3Dでは、最も簡単な方法は、一人称コントローラーを使用することです。通常、ステップの高さがステップオフセットよりも高い場合、キャラクターはジャンプアップする必要があります。しかし、これを行う別の方法は、ボックスコライダーを追加して回転させ、キャラクターが階段のように、ランプのように簡単にスキムできるようにすることです。


0

ブレイディーの答えは良いですが、ハックな方法でそれを行う場合は、レイを地面の衝突ジオメトリにキャストし、それがどの三角形に当たるかを調べ、三角形の頂点の高さの加重平均を使用できます。地面の高さを把握する。


大きくて傾斜した三角形の場合はどうなりますか?どういうわけか光線の交点を見つけられませんか?
Gustavo6046 2018年

あなたはすでに飛行機の位置を知っています、あなたはちょうど高さが必要です、それが私が加重平均を指定した理由です。どうしても先に進みたい場合は、衝突検出に関する本を入手することをお勧めします。これは数学を学ぶのに最適な形式ではありません。
BigSandwich 2018年

そうそう。加重平均。誤解していると思います。私の悪い。
Gustavo6046 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.