主にオブジェクト間の距離を調整するために使われる Spring Arm というコンポーネントがあります。
ThirdPerson テンプレートでも BP_ThirdPersonCharacter 内でカメラとキャラクターの距離を調整するために使われています。
よくカメラとキャラの間に使われがちですが、距離を調整する以外でも使いこなすと様々な動きが作れます。
Spring Arm のパラメータを紹介していきたいと思います。
・Camera
距離やオフセット値を調整できます。
パラメータ名 | 概要 |
---|---|
Target Arm Length | 親コンポーネントと子コンポーネントとの距離。 |
Socket Offset | 子コンポーネントの座標オフセット。 |
Target Offset | 親コンポーネントの座標オフセット。 |
・Camera Collision
衝突判定を設定し、オブジェクト間が障害物に遮断された場合、自動で距離を調整します。
パラメータ名 | 概要 |
---|---|
Probe Size | 衝突判定で使われる半径。 始点と終点の両端で判定されます。 |
Probe Channel | 衝突判定で使われるトレースチャンネル。 |
Do Collision Test | 衝突判定を行って距離を調整するかどうか。 無効の場合、距離は調整されず全てのオブジェクトを貫通します。 |
・Camera Settings
パラメータ名 | 概要 |
---|---|
Use Pawn Control Rotation | Spring Arm Component が Pawn クラスにぶらさがっている場合、Player Controller の AddControllerYawInput などに連動して回転するようになります。 |
Inherit Pitch | Pitch を連動させるかどうか。 |
Inherit Yaw | Yaw を連動させるかどうか。 |
Inherit Roll | Roll を連動させるかどうか。 |
・Lag
カメラ(子コンポーネント)を遅延させて追従させることができます。
パラメータ名 | 概要 |
---|---|
Enable Camera Lag | 移動を遅延させるかどうか。 こんな動きが作れます。ただの遅延ではなく補間された動きになり、ヌルっと動くようになります。 (わかりやすいように追従速度を遅くしています。) |
Enable Camera Rotation Lag | 回転の移動を遅延させるかどうか。 |
Draw Debug Lag Markers | 移動の遅延のデバッグ表示をするかどうか。 |
Camera Lag Speed | 移動の遅延の追従速度。 |
Camera Rotation Lag Speed | 回転の遅延の追従速度。 |
Camera Lag Max Distance | ターゲットとの最大距離。この値以上遅延して離れることはなくなります。 |
Clamp To Max Physics Delta Time | ターゲットが物理有効の場合、物理システムの最大ステップと同じフレーム速度で追従します。 カメラのちらつきを防ぎます。 |
Use Camera Lag Substepping | フレームレートが変動しても問題なく動作するようにステップ数を調整します。 有効にすると処理負荷がかかります。 |
Camera Lag Max Time Step | 追従時の最大ステップ数。(1フレームの速度) |
まとめ
パラメータ数は多くはないですが、使いこなせば Spring Arm だけで様々な表現ができるかと思います。
特にラグ機能はそれっぽい動きを作るのに非常に便利です。(自前で動きを作ってた方も少なくないんじゃないでしょうか)
標準機能で楽できるのであればそれ以上の事はないと思うので活用していきたいところです。
UE Version : 5.0.1-19764885