【Godot】3Dオブジェクトの落下地点に何かしらの表記をしてみる
はじめに
本記事で紹介および検証を行なっているツール、ライブラリのバージョンは次の通りです。
- Godot Engine v4.1.2.stable.mono.official
バージョンによっては挙動に差異がある場合もありますので、ご了承ください。
Sprite3DをRaycast3Dで判定した落下地点に配置
3Dゲームでオブジェクトが落下してきて、その落下地点を装飾する表現がよくあります。 それをGodotで手軽にやろうとしたメモです。
やることはシンプルで、Sprite3Dを落下地点に対して配置するだけです。 落下物のオブジェクトのシーンにSprite3Dをくっつけて、Raycast3Dによって落下地点を計算して配置しました。
スクリプトはこちらです。
func update_fall_marker(): var fall_image = $FallImage var fall_ray_cast = $FallRayCast fall_ray_cast.force_raycast_update() if fall_ray_cast.is_colliding(): var forecast_position = fall_ray_cast.get_collision_point() fall_image.visible = true fall_image.global_transform.origin = Vector3(forecast_position.x, forecast_position.y, forecast_position.z) else : fall_image.visible = false
パフォーマンスや見え方を考えればもっと最適な投影方法の仕組みが検討できるかと思いますが、手っ取り早く落ちモノの表現を作るならこれでも十分かなと思います。