RayCast

作成日
更新日

RayCast(レイキャスト)は2Dまたは3D空間において、1本の線(レイ)を飛ばし、何かにぶつかるかどうかを検出する技術である。ゲーム開発でよく使われる。

Godotでは、物理演算やコリジョン判定、視線チェックなどに使える。

GodotにおけるRayCastの使い方(2D)

  • PhysicsRayQueryParameters2D.create(from, to, collision_mask) を使ってパラメータを生成する。
  • get_tree().root.world_2d.direct_space_state.intersect_ray(query) を使ってレイを飛ばす。
  • 衝突があれば情報(辞書)が返り、なければ空の辞書が返る。
var query = PhysicsRayQueryParameters2D.create(from, to, 1) # 1はlayer(ビット0)
var result = get_tree().root.world_2d.direct_space_state.intersect_ray(query)

if result.is_empty():
    # 衝突なし
else:
    # 衝突あり。result["position"], result["collider"]などが取得可能

collision_maskのビット指定が必要:

  • レイヤー1を指定 → 1
  • レイヤー20なら 1 << 19(ビット19をシフト)
サイトアイコン
公開日
更新日