Godot4用のプラグイン「Phantom Camera」を使うと、カメラがプレイヤーをなめらかに追いかけるようにできます。
githubはこちらです。ドキュメントもあります。
バージョン
Godot 4.1.3
Phantom Camera 0.5.0.5
AssetLibからPhantom Cameraをインストールして有効化する
Godot4で新規プロジェクトを作成、AssetLibをクリックし、「Phantom」など入力するとPhantom Cameraが表示されます。クリックしてダウンロード、インストールします。
インストールが成功したら、プロジェクト設定の「プラグイン」タブで、Phantom Cameraを有効化します。
インストール先はres://addons/phantom_camera/です。
res://addons/phantom_camera/examples/example_scenes/にサンプルシーンがあり、メインシーンに設定して実行することができます。WASDキーで操作します。
サンプルシーンを作成する
Phantom Cameraの確認用に、CharacterBody3DのPlayerとStaticBody3Dの地面があるシーンを作ります。Camera3DとDirectionalLight3Dも必要です。
ノード | 設定 |
---|---|
CharacterBody3D/MeshInstance3D | 新規CapsuleMeshを設定 |
CharacterBody3D/CollisionShape3D | 新規CapsuleShape3Dを設定 |
StaticBody3D | PositionのYを-1にします |
StaticBody3D/MeshInstance3D | 新規BoxMeshを設定してSizeのXとZを10mに変更。Materialに新規StandardMaterial3Dを設定して、AlbedoのColorを緑に変更 |
StaticBody3D/CollisionShape3D | 新規BoxShape3Dを設定して、SizeのXとZを10mに変更 |
Camera3D | Position (x,y,z)=(0m,5m,5m)に変更、RotationのXを-45°に設定 |
DirectionalLight3D | Light3D/Shadow/Enabledをオンに変更、RotationのXとYを-45°に変更 |
CharacterBody3Dを操作したいので、CharacterBody3Dにスクリプトをアタッチして、テンプレートはCharacterBody3D:Basic Movement」を選択します。
実行するとこのように表示されます。カーソルキーで移動し、スペースキーでジャンプします。
Phantom Cameraを設定
Camera3Dの子に「PhantomCameraHost」を追加することで、Phantom Cameraにカメラワークを任せたいCamera3Dを教えます。
PhantomCamera3Dを追加し、追いかける対象と追いかける方法を指示します。
間違って、CharacterBody3Dの子にPhantomCamera3Dノードを設定すると、うまく動きませんでした。CharacterBody3の位置は気を付けましょう
PhantomCamera3Dのインスペクターを開き、Follow Modeを「Simple」に設定します。「Simple」に設定すると、「Follow Target」と「Follow Parameters」を設定できるようになります。
Follow Targetはカメラが追いかける対象なので、CharacterBody3Dを選択します。
追いかける対象がカメラに映るようにしたいので、Follow ParametersのTarget OffsetのZを5mに設定します。
実行して、CharacterBody3Dをカーソルキーで移動、スペースキーでジャンプさせると、カメラが追いかけるようになりました。
なめらかにプレイヤー(CharacterBody3D) を追いかけるようにする
CharacterBody3Dとカメラの動きが一致していますが、カメラの動きを遅らせて、プレイヤーの動きを後から追いかけるようにします。
PhantomCamera3Dのインスペクターを開き、Follow ParametersのDampingをオンにします。Damping Valueの初期値が10ですが、この値を小さくするほど、カメラが追いかける動きが遅くなります。ここでは「2」に設定します。
実行して、カーソルキーでプレイヤーを動かすと、カメラがいい感じに遅れて追いかけてきます。
github
githubから取得後に下記の操作をすると実行できるようになります。
Godotにインポート
AssetLibからPhantom Cameraをダウンロード
プロジェクト設定のプラグインタブでPhantom Cameraを有効化する
以上です