0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Godot4+Phantom Cameraでカメラがプレイヤーをなめらかに追いかける

Last updated at Posted at 2023-11-12

 Godot4用のプラグイン「Phantom Camera」を使うと、カメラがプレイヤーをなめらかに追いかけるようにできます。
 githubはこちらです。ドキュメントもあります。

バージョン

Godot 4.1.3
Phantom Camera 0.5.0.5

AssetLibからPhantom Cameraをインストールして有効化する

 Godot4で新規プロジェクトを作成、AssetLibをクリックし、「Phantom」など入力するとPhantom Cameraが表示されます。クリックしてダウンロード、インストールします。
2023-11-12.png

 インストールが成功したら、プロジェクト設定の「プラグイン」タブで、Phantom Cameraを有効化します。
image.png

 インストール先はres://addons/phantom_camera/です。
 res://addons/phantom_camera/examples/example_scenes/にサンプルシーンがあり、メインシーンに設定して実行することができます。WASDキーで操作します。
image.png

サンプルシーンを作成する

 Phantom Cameraの確認用に、CharacterBody3DのPlayerとStaticBody3Dの地面があるシーンを作ります。Camera3DとDirectionalLight3Dも必要です。
 
image.png

ノード 設定
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」を選択します。
image.png

 実行するとこのように表示されます。カーソルキーで移動し、スペースキーでジャンプします。
image.png

Phantom Cameraを設定

 Camera3Dの子に「PhantomCameraHost」を追加することで、Phantom Cameraにカメラワークを任せたいCamera3Dを教えます。
 PhantomCamera3Dを追加し、追いかける対象と追いかける方法を指示します。
image.png

 間違って、CharacterBody3Dの子にPhantomCamera3Dノードを設定すると、うまく動きませんでした。CharacterBody3の位置は気を付けましょう

 PhantomCamera3Dのインスペクターを開き、Follow Modeを「Simple」に設定します。「Simple」に設定すると、「Follow Target」と「Follow Parameters」を設定できるようになります。
 Follow Targetはカメラが追いかける対象なので、CharacterBody3Dを選択します。
 追いかける対象がカメラに映るようにしたいので、Follow ParametersのTarget OffsetのZを5mに設定します。
image.png

 実行して、CharacterBody3Dをカーソルキーで移動、スペースキーでジャンプさせると、カメラが追いかけるようになりました。
image.png

なめらかにプレイヤー(CharacterBody3D) を追いかけるようにする

 CharacterBody3Dとカメラの動きが一致していますが、カメラの動きを遅らせて、プレイヤーの動きを後から追いかけるようにします。
 PhantomCamera3Dのインスペクターを開き、Follow ParametersのDampingをオンにします。Damping Valueの初期値が10ですが、この値を小さくするほど、カメラが追いかける動きが遅くなります。ここでは「2」に設定します。
image.png

 実行して、カーソルキーでプレイヤーを動かすと、カメラがいい感じに遅れて追いかけてきます。

github

githubから取得後に下記の操作をすると実行できるようになります。

Godotにインポート
AssetLibからPhantom Cameraをダウンロード
プロジェクト設定のプラグインタブでPhantom Cameraを有効化する

以上です

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?