6.

UE5のSpring Arm(CameraBoom)とは|三人称カメラの設定と当たり判定

編集

Unreal Engine 5(UE5)のSpring Arm(Spring Arm Component、通称CameraBoom)は、カメラをキャラクターから一定距離離して保持し、壁などの障害物に当たると自動でその距離を縮めてくれる「腕」のようなコンポーネントです。三人称視点のゲームで「キャラクターの背後に浮かぶカメラ」を実現するための、もっとも基本的な仕組みのひとつです。

この記事の要点
  • Spring Armは、カメラを対象から一定距離離して支え、障害物に当たると自動的に縮む「伸縮する腕」のコンポーネントである。
  • カメラそのものではなく、カメラを取り付ける「土台(アーム)」であり、先端にCamera Componentを付けて使うのが基本構成である。
  • 当たり判定は Do Collision Test が担い、これをオフにするとカメラが壁にめり込む。
  • Camera Lag を有効にすると、カメラがワンテンポ遅れて滑らかに追従し、機械的でない動きになる。
  • 主要プロパティは Target Arm Length / Socket Offset / Do Collision Test / Enable Camera Lag / Camera Lag Speed / Use Pawn Control Rotation。

Spring Armとは

Spring Armは、自身を取り付けた位置(通常はキャラクターの中心付近)を起点に、指定した長さだけ離れた場所に「先端」を作り出すコンポーネントです。この先端にカメラを取り付けることで、カメラは常にキャラクターから一定の距離を保ったまま追従します。

Spring Armの最大の特徴は、その先端までの間に壁や床、柱などの障害物があると、自動的に腕を縮めてカメラを手前へ引き寄せる点です。障害物が無くなれば、Spring Armは元の長さへ滑らかに戻ろうとします。この「ぶつかると縮み、離れると伸びる」という挙動が、ばね(スプリング)のように見えることから Spring Arm という名前が付けられています。

つまりSpring Armは、それ自体が映像を映すわけではありません。Spring Armはあくまでカメラを支える土台であり、実際に画面に映る絵を決めるのは、その先端に取り付けられたCamera Componentの役割です。Spring Armは「カメラをどこに、どのくらいの距離で、どんな滑らかさで置くか」を制御する係だと考えると理解しやすいでしょう。

なぜ「CameraBoom」と呼ばれるのか

UE5のテンプレート(三人称テンプレートなど)でキャラクターを作成すると、Spring Arm Componentには既定で CameraBoom という名前が付けられています。そのため、実体は Spring Arm Component でありながら、現場では「CameraBoom」という呼び名のほうが定着している場面も少なくありません。

「Boom(ブーム)」とは、映画やテレビの撮影現場で使われる、マイクやカメラを先端に取り付けて伸ばす長い棒(ブームポール/カメラブーム)のことを指します。カメラを先端に載せて被写体との距離を取るその様子が、まさにSpring Armの役割と重なるため、テンプレート上で CameraBoom という変数名が採用されています。要するに「Spring Arm Component」がクラス名・コンポーネントの種類、「CameraBoom」はそのコンポーネントに付けられた変数名(ニックネーム)であり、指しているものは同じです。

主なプロパティ

Spring Armの挙動は、Detailsパネルの各プロパティで細かく調整できます。代表的なものを下表にまとめます。

プロパティ役割補足
Target Arm Length障害物が無いときの腕の長さ(カメラと対象の基本距離)。数値を大きくすると引いた絵、小さくすると寄った絵になる。実行時に変更すればズームも表現できる。
Socket Offset腕の先端(カメラ位置)に与えるオフセット。X/Y/Zで先端の位置をずらす。たとえば肩越し視点を作る際に横方向へずらすのに使う。
Do Collision Test障害物との当たり判定を行うかどうか。オンで、壁などに当たるとカメラが自動的に手前へ縮む。オフだとめり込む。
Enable Camera Lagカメラ位置の追従に遅れ(ラグ)を持たせるか。オンにすると、キャラクターの移動にカメラがワンテンポ遅れて滑らかに追いつく。
Camera Lag SpeedCamera Lag有効時の、追従の速さ。値が小さいほど遅れが大きく(ゆったり)、大きいほど素早く追従する。
Use Pawn Control RotationPawn(コントローラー)の回転にアームの向きを合わせるか。オンにすると、マウスやスティックの視点入力でアームごとカメラが回る。三人称操作で多用。

このほか、回転にも遅れを持たせる Enable Camera Rotation Lag や、その速さを決める Camera Rotation Lag Speed、当たり判定のプローブ(探査球)の大きさ・チャンネルを決める Probe Size / Probe Channel などもあります。各プロパティの正確な既定値や挙動の詳細は、使用しているバージョンの公式ドキュメントで確認することを推奨します。

セットアップの基本手順

Spring Armは「Pawn(またはCharacter)にSpring Armを追加し、その先端にカメラを取り付ける」という親子関係で構成します。

  • 1. PawnにSpring Armを追加する
    キャラクターのBlueprintを開き、ComponentsパネルでAddボタンから「Spring Arm」を追加します。三人称テンプレートでは、この時点で CameraBoom という名前で既に用意されています。多くの場合、ルート(Capsule や Mesh)に取り付けます。
  • 2. 先端にCamera Componentを付ける
    追加したSpring Armを選択した状態で「Camera」コンポーネントを追加し、Spring Armの子になるように配置します。これでカメラがアームの先端に固定され、アームの伸縮や回転にカメラが追従するようになります。
  • 3. 距離と回転を調整する
    Spring Armを選択し、Target Arm Lengthで基本距離を、Use Pawn Control Rotationで視点入力への追従を設定します。寄り・引きの好みに応じてSocket Offsetも微調整します。

ポイントは「カメラを直接キャラクターに付けない」ことです。カメラをSpring Armの子にすることで、後述する当たり判定や滑らかな追従といったSpring Armの恩恵をそのまま受けられます。

当たり判定でカメラがめり込まない仕組み

三人称視点で厄介なのが、キャラクターが壁際に立ったときにカメラが壁の向こうへ突き抜けてしまう問題です。Spring Armはこれを Do Collision Test によって自動的に防ぎます。

Do Collision Testがオンのとき、Spring Armは自身の取り付け位置から先端(本来のカメラ位置)に向かって、毎フレーム見えない探査(トレース)を行います。その経路上に障害物があれば、ぶつかった手前の位置までカメラを引き寄せ、障害物にめり込まないようにします。障害物が視界から外れれば、カメラは元の Target Arm Length の位置へ戻っていきます。

この探査の「球の大きさ」を決めるのが Probe Size、「どの当たり判定チャンネルで判定するか」を決めるのが Probe Channel です。Probe Sizeを大きくすると、壁との間に余裕をもってカメラが止まるため、カメラの端から壁が透けて見えるような不自然さを抑えられます。

Camera Lagで滑らかにする

既定の状態では、カメラは取り付け位置に対してぴったり固定されているため、キャラクターが急に動くとカメラも全く同じタイミングで動き、やや機械的な印象になります。これを和らげるのが Enable Camera Lag です。

Camera Lagを有効にすると、カメラは目標位置へ「少し遅れて」追いつくようになり、移動・停止時にわずかな余韻が生まれます。この追いつく速さを決めるのが Camera Lag Speed で、値が小さいほどゆったりと、大きいほど素早く目標に追従します。さらに、位置だけでなく視点の回転にも余韻を持たせたい場合は Enable Camera Rotation LagCamera Rotation Lag Speed を使います。

適度なLagは「重さ」や「滑らかさ」を演出してくれますが、かけすぎるとカメラがふわふわと付いてこなくなり、かえって操作感を損ねます。少しずつ値を変えながら、ゲームのテンポに合うバランスを探るのがコツです。

落とし穴と注意点

落とし穴何が起きるか / 対処
Do Collision Test をオフにしている壁際でカメラが壁を突き抜け、キャラクターが見えなくなる・室内が透けて見える。三人称で当たり判定が必要なら必ずオンにする。
Camera Lag をかけすぎるカメラの追従が遅れすぎてふわふわし、酔いや「狙いにくさ」の原因になる。Camera Lag Speed を上げる、Lag量を控えめにするなどで調整する。
回転設定(Use Pawn Control Rotation)の取り違えSpring Arm側とCamera側、さらにCharacter側の回転設定を混同すると、視点が回らない/キャラクターと一緒に回ってしまう等の不具合になる。「アームを回したいのか、カメラ単体か、キャラクター本体か」を切り分けて設定する。
カメラをSpring Armの子にしていないカメラをキャラクターに直接付けると、当たり判定やLagの恩恵を受けられず、めり込みや硬い動きが残る。カメラは必ずSpring Armの先端(子)に配置する。

よくある質問(FAQ)

Q. Spring Arm と CameraBoom は違うものですか?
A. いいえ、同じものを指します。「Spring Arm Component」がコンポーネントの種類(クラス)名で、「CameraBoom」はUE5のテンプレートでそのコンポーネントに付けられている変数名(ニックネーム)です。実体は同一です。

Q. Spring Arm を入れればカメラは自動で映りますか?
A. いいえ。Spring Armはカメラを支える「腕」であり、それ自体は映像を出しません。先端にCamera Componentを取り付けて初めて、その位置からの絵が画面に表示されます。

Q. ゲーム中にズームイン・ズームアウトしたいのですが?
A. 実行時に Target Arm Length の値を変更すれば、カメラと対象の距離が変わりズームのように見せられます。急に切り替えると硬い印象になるため、目標値へ徐々に補間するか、Camera Lagと組み合わせると滑らかになります。

Q. カメラが壁を突き抜けてしまいます。
A. まず Do Collision Test がオンか確認してください。オンでも端から透ける場合は Probe Size を少し大きくすると、壁との間に余裕ができて改善することがあります。

Spring Arm(CameraBoom)は、三人称視点の「気持ちよさ」を左右する中核コンポーネントです。距離(Target Arm Length)、当たり判定(Do Collision Test)、滑らかさ(Camera Lag)、回転の扱い(Use Pawn Control Rotation)という4つの軸を押さえれば、めり込みのない快適な追従カメラを作り込めます。細かな既定値や挙動はバージョンによって異なる場合があるため、最終的な数値は公式ドキュメントとプロジェクト上の実機確認で詰めることを推奨します。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Event BeginPlay
  2. Event ActorBeginOverlap
  3. Event Tick
  4. on component begin overlap
  5. On Component Hit
  6. CameraBoom(Spring Arm)
  7. Get Player Character
  8. Nav Mesh Bounds Volume
  9. AI MoveTo
  10. Pawn
  11. Create Render Target 2D
  12. Take High Res Screenshotノード
  13. Sphere Reflection Capture
  14. Event Tickノード
  15. ウィジェットのキャンバスパネル
  16. DefaultSceneRoot
  17. FloatingPawnMovement
  18. Set World Rotation
  19. Event Any Damage
  20. Set World Rotation
  21. VInterp To
  22. Get Socket Transform

最近更新/作成されたページ