棚を検出するにはどうすればよいですか?


18

私のゲームでは、キャラクターが棚をつかんで保持できるようにし、そうする余裕があれば自分自身を引き上げることができるようにします。

棚があるかどうか、キャラクターが登るのに十分なスペースがあるかどうかを検出するにはどうすればよいですか?


この質問は、2つの以前の質問の標準バージョンとして作成されました。ここでメタディスカッションを参照してください
doppelgreener


回答:


22

Overgrowth Alpha 132のビデオは、彼らがどのように棚登りを実装したかを示しています。

それらの方法は、シリンダーと球の代わりに長方形と円を使用する2Dエンジンさえ、どのエンジンで動作するはずです。

レッジ検出には2つの部分が含まれます。

壁検出(球体を使用)

ゲームは、プレーヤーが現在壁に衝突しているかどうかを確認します。壁がある場合、プレーヤーがつかむことができる棚があるかもしれません。2番目の部分は、棚の分析を引き継ぎます。

レッジ検出(シリンダーを使用)

プレーヤーが壁に接触している場合、シリンダーは、プレーヤーの位置の上の特定の距離から、それが棚に触れるまで下方向に掃引されます。これにより、次の3つのことが決まります。

  • プレーヤーの上に棚があるかどうか
  • 棚の高さ
  • シリンダーがプレーヤーと同じ水平スペースを占めることを考慮して、プレーヤーが棚に登る余地があるかどうか。

驚くべき方法、素晴らしい例+1
Bugster

「シリンダーはプレーヤーの位置から一定の距離から下に向かって掃引されます」どのくらいの距離ですか?これは、屋内環境を扱う場合に非常に重要です(偶然に天井と交差します)。
タラ

1
過去に@Dudesonレイキャストを使用して最初に棚の表面を見つけました。その後、ボリュームチェックを行って、登るのに十分な障害物がないことを確認しました。レイキャストは指向性であるため、天井を誤検知とは見なしません。ただし、起点が高すぎると、次の階に引っ掛かる可能性があります。正確なメトリックは、各ゲームの詳細に依存します。キャラクターサイズ、腕のリーチ、レベルデザインのクリアランス、落下速度など
DMGregory

@DMGregoryレイキャストをお勧めします!
タラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.