ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
Unreal Engine 5(UE5)のSpring Arm(Spring Arm Component、通称CameraBoom)は、カメラをキャラクターから一定距離離して保持し、壁などの障害物に当たると自動でその距離を縮めてくれる「腕」のようなコンポーネントです。三人称視点のゲームで「キャラクターの背後に浮かぶカメラ」を実現するための、もっとも基本的な仕組みのひとつです。
| この記事の要点 |
|---|
|
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 Speed | Camera Lag有効時の、追従の速さ。 | 値が小さいほど遅れが大きく(ゆったり)、大きいほど素早く追従する。 |
| Use Pawn Control Rotation | Pawn(コントローラー)の回転にアームの向きを合わせるか。 | オンにすると、マウスやスティックの視点入力でアームごとカメラが回る。三人称操作で多用。 |
このほか、回転にも遅れを持たせる 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 Lag と Camera 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つの軸を押さえれば、めり込みのない快適な追従カメラを作り込めます。細かな既定値や挙動はバージョンによって異なる場合があるため、最終的な数値は公式ドキュメントとプロジェクト上の実機確認で詰めることを推奨します。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- Event BeginPlay
- Event ActorBeginOverlap
- Event Tick
- on component begin overlap
- On Component Hit
- CameraBoom(Spring Arm)
- Get Player Character
- Nav Mesh Bounds Volume
- AI MoveTo
- Pawn
- Create Render Target 2D
- Take High Res Screenshotノード
- Sphere Reflection Capture
- Event Tickノード
- ウィジェットのキャンバスパネル
- DefaultSceneRoot
- FloatingPawnMovement
- Set World Rotation
- Event Any Damage
- Set World Rotation
- VInterp To
- Get Socket Transform
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?