LoginSignup
13
16

More than 3 years have passed since last update.

UE4でカメラをキャラクターから独立させる手順

Last updated at Posted at 2017-05-13

UE4でカメラをキャラクターから独立させる手順

目的

プレイヤーキャラクターからのカメラの分離

理由

ThirdPersonのサンプルを見る限り、キャラクターにカメラが紐づけられていますが、キャラクターに紐づけられることで下記のデメリットが存在します。
・キャラクターのブループリントをほかのキャラクターにも適用しづらい。
・キャラクター側でカメラをすべて制御するのは煩雑。
・注視点が必ずアクターの位置からのオフセットとなり、注視点や位置が細かく制御しずらい。
・実際のゲームコードでもカメラクラスを別で用意してカメラ自身が動きを制御するのが一般的
以上の理由から、カメラやキャラクターをもっと自由に制御するためにカメラ自体をキャラクターから分離してしまいましょう。

テスト環境

UnrealEngine 4.15.2

手順

1.ThirdPersonのサンプルを用意
SnapCrab_NoName_2017-5-14_0-1-2_No-00.jpg

2.ThirdParsonCharactorのブループリントからCameraBoomとFollowCameraを削除しましょう。
SnapCrab_NoName_2017-5-13_22-7-39_No-00.jpg

SnapCrab_NoName_2017-5-13_22-11-54_No-00.jpg

3.コンテンツの新規作成から新しくActorのBluePrintを作成しましょう。
SnapCrab_親クラスを選択_2017-5-14_0-24-10_No-00.png

4.作成したActorにArrowコンポーネントを追加した後、SpringArmコンポーネントとCameraコンポーネントが階層になるように追加しましょう。
SnapCrab_BP_ActorCamera_2017-5-14_0-26-48_No-00.png

5.イベントBeginPlayからSetViewTarget with Blend関数を設定します。
このとき、ターゲットにGetPlayerControllerから習得したValueを、NewViewTargetにselfを入れておきましょう。

また、同時にイベントTickで位置が更新されるようにSetActorLocationとSetActorRoatationをそれぞれ、GetPlayerPawnから取得したGetActorLocationとGetControllRotationセットします。

SnapCrab_イベントグラフ_2017-5-14_0-28-25_No-00.png

※ここでCameraActorのLocationに任意の位置を設定すると、その位置が注視点になります。例えば、GetSocketLocationで頭の位置を取得して設定すると注視点を頭にすることができます。

6.さてそうして作成したCameraアクターをドラッグ&ドロップで適当なところに配置して、一度Playしてみたところ、カメラがキャラクターに埋まってしまいました。

ScreenShot00004.png

7.これはSpringArmがCameraの当たりをチェックして引き寄せているため埋まっている状態になっています。
解決するためにはキャラクターがカメラとぶつからないようにしてあげる必要がありますので、再度、ThirdPersonCaracotrのブループリントを開いて、CapselComponentとMeshのCollisionをCustomに変更して、Cameraに対するあたりをブロックからOverrideか無視するように設定を変更しましょう。

(カプセルコンポーネントの変更)
SnapCrab_NoName_2017-5-13_23-49-55_No-00.png

(メッシュ側の変更)※両方しないと埋まります。
SnapCrab_NoName_2017-5-13_23-50-28_No-00.png

8.無事、キャラクターにくっつく別アクターのカメラが完成しました。
ScreenShot00005.png

パッケージ

(HPバーの記事のパッケージも上記内容は内包されていますので、それと同じものです)
https://drive.google.com/file/d/11y-q7ZpAjGJn81LXv8Q-7Qbydto4ASUB/view?usp=sharing

13
16
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
13
16