カメラを瞬時に真後ろに向ける処理

 今回はカメラを瞬時に真後ろに向ける方法を紹介します。

 

 

~変数~

TargetRotator・・・カメラの真後ろ方向を格納する変数

RotateCamera_TimeHandle・・・タイマー変数。

CameraTurn・・・カメラ回転中はTrue。

f:id:Free_Gamer:20210323004753p:plain

 

~カメラ操作処理~

CameraTurnがFalse、つまり

カメラ回転中じゃない場合は、自由にカメラ操作が行えます。

カメラ回転中は、カメラ操作を不能にします。

f:id:Free_Gamer:20210323004840p:plain

 

~カメラ回転処理~

f:id:Free_Gamer:20210323004908p:plain

 

マウスを右クリックした時、CameraTurnをTrueにします。

カメラの回転を連続で出来ないようにしています。

f:id:Free_Gamer:20210323004927p:plain

 

カメラの真後ろ方向を格納します。

f:id:Free_Gamer:20210323000740p:plain

 

タイマーイベントを呼び出します。

f:id:Free_Gamer:20210322233402p:plain

 

RotateCameraという名のタイマーイベントです。

f:id:Free_Gamer:20210322235652p:plain

 

現在のカメラの向きを、プレイヤーの真後ろ方向「TargetRotator」に向けます。

InterpSpeedでカメラの回転速度を調整できます。

値が小さい程、回転が遅いです。

値が大きい程、回転が速いです。

ただし、値が「0」の場合は回転しないので注意してください。

f:id:Free_Gamer:20210322233705p:plain

 

RInterpToで返された値が「TargetRotator」と同等か判定します。

f:id:Free_Gamer:20210322235716p:plain

 

Falseだった場合、つまり「TargetRotator」とカメラの向きの値が同等ではない場合

「SetControlRotation」ノードで、カメラを回転し続けます。

「SetControlRotation」のNewRotationには、RInterpToの返り値を渡してあります。

f:id:Free_Gamer:20210322234229p:plain

 

Trueだった場合、つまり「TargetRotator」とカメラの向きの値が同等だった場合

「CameraTurn」変数をFalseにし、タイマーを止めます。

これで、カメラの回転が止まります。

f:id:Free_Gamer:20210323005011p:plain

 

これで完了です。

それではプレイしてみましょう。

 

youtu.be

 

右クリックした時に、カメラが真後ろに回転していると思います。

 

終わりー

 

それではまた~^^ノシ