今日の進捗~アニメーションに合わせてカメラを追従させる~(追記あり。解決済み)

まず問題のシーン。

youtu.be

 

ダイナミックに空中に打ちあがった時、カメラが置いてけぼりになってしまってます。

なので、キャラがフレームアウトしてしまいます。

 

これをどう解決したか。説明します。

※当てずっぽうなやり方をしたのでこれでいいのかはわかりません。

何か指摘があればお気軽にどうぞ!

 

まず、カメラをキャラのアニメーションに追従させるために、カメラ追従用のソケットを追加します。

腰につけたいので、「Pelvis」にソケットを追加します。

f:id:Free_Gamer:20180628002626p:plain

「CameraSocket」という名で追加しました。

 

次に、「AnimNotifyState」クラスの関数を作ります。

f:id:Free_Gamer:20180628003823p:plain

ReceivedNotifyBegin

この通知が来た時に、プレイヤーの「SpringArm」を「Mesh」のソケット「CameraSocket」にアタッチします。

f:id:Free_Gamer:20180628004211p:plain

ReceivedNotifyEnd

この通知が終わる時、アタッチを解除する。と、思ったのですがこれだとなんだかアタッチが解除されてないようです・・・。何か指摘があれば(ry

f:id:Free_Gamer:20180628004635p:plain

 

作成したAnimNotifyState「CameraOffset」をモンタージュに入れます。

f:id:Free_Gamer:20180628004826p:plain

 

これでプレイ!

youtu.be

 

キャラが空中に打ちあがるアニメーションした時に、しっかりカメラが追従されてますね!

 

しかし、肝心のカメラのアタッチを解除する方法がまだ未確定です。何か情報あればお気軽に教えて下さい!

 

それではまた!^^ノシ

 

~追記~

 

アタッチ解除方法が分かりました。

まず、なぜアタッチが解除されないか。原因はこれです。

f:id:Free_Gamer:20180701011140p:plain

「CameraBoom(SpringArm)」を「Mesh」にアタッチしたままだからです。

では、どうすればいいか。

f:id:Free_Gamer:20180701011440p:plain

「Mesh」を「CapsuleComponent」に変えればいいのです。

これをすることで、「Mesh」の腰のボーン(Pelvis)に追加したソケット「CameraSocket」にアタッチしていたCameraBoomが、ReceivedNotifyEndが来た時点で、CapsuleComponentにアタッチされ「CameraSocket」からアタッチが解除されることになるわけです。

 

違いを見てみましょう。

このポーズをとった時のカメラの動きに注目してみましょう。

f:id:Free_Gamer:20180701012630p:plain

 

改善前

youtu.be

改善後

youtu.be

 

どうでしょう。カメラの動きをみると、

 

改善前は、腰の動きと一緒にカメラも動いていました

 

改善後は、カメラは全く動いてなかったので、しっかり「CameraSocket」からアタッチが解除されたのが分かりますね。

 

以上!解決策でした!

 

それではまた!^^ノシ