RayCast3Dを使ったオブジェクト検出・近探機能
Godot Engine バージョン4.3
このチュートリアルでは、Godot 4.3のRayCast3Dの基礎を解説します。RayCast3Dは、シーン上のオブジェクトを識別したり、地面との距離を検出したりするのに便利な機能です。
この講義の結果、あなたは次のことができるようになります:
RayCast3Dをシーンに追加し、オブジェクトを検出する。
近探ロジックを構築し、プレイヤーやモバイルオブジェクトを検知する。
RayCast3Dの構築
必要なノード
- 新しいシーンを作成
- フォルダに「Player」ノード(CharacterBody3D)を追加
- 「Player」の下に次のノードを追加
Camera3D
RayCast3D
「RayCast3D」はオブジェクトを検出するコアのノードです。輸出元のカメラの光線や探索光を表現したい場合に使用します。
設定
- 「RayCast3D」ノードを選択
- インスペクターで「エクステンション」をONにする
- 「光線の長さ」を設定 (例: 5.0)
これにより、RayCast3Dがオブジェクトを検出できる準備ができました。
RayCast3Dの実装
「Player」ノードに次のスクリプトを追加します:
extends CharacterBody3D
@onready var raycast = $RayCast3D
func _ready(): # RayCast3Dの活性化 raycast.enabled = true
func _physics_process(delta): # RayCast3Dの対象を検出 if raycast.is_colliding(): var collider = raycast.get_collider() print("Hit: " + str(collider)) else: print("No collision detected")
説明
@onready var raycast = $RayCast3D
:
RayCast3Dノードを参照します。
raycast.enabled = true
:
RayCast3Dを有効化します。
raycast.is_colliding()
:
RayCast3Dが任意のオブジェクトと接触したかどうかを返します。
raycast.get_collider()
:
接触したオブジェクトを取得します。
チェックポイント
- RayCast3Dが正しく設置されているか確認する
- 対象とするオブジェクトに「Collision」が有効化されているか
- RayCast3Dの向き先を適切に設定する
これで、RayCast3Dを使った基礎的なオブジェクト検出が実装できるようになりました。この基礎を元にして、さらに詳しい機能や実現を加えてください。