シネマシーンは、プログラムを一切書かずに、自動カメラワークを作れるカメラシステムです。
- カメラは1つ、頭脳を切り替える:
メインカメラは動かさず、
設定(ルール)を持った「仮想カメラ(Cinemachine Camera)」を切り替える・混ぜることで画面を作ります。 - Unity 6で劇的進化:
古いバージョン(v2)から設計が一新され、より整理された構造(v3)になりました。 - URPとの連動が命:
画面の美しさ(エフェクト)やカメラのブレを、URPの機能とセットで簡単に制御できます。
実際には、
キャラクターの動きに合わせた「ブレ防止」、
壁にめり込まない「自動回避」、
状態に応じた「アングルの自動変更」までを自動化するゲームの演出エンジンです。
導入方法

「PackageMnager」から「Chinemachine」をインストールします。
手順はこれだけです。
インストールが成功すると、PackagesフォルダにChinemachineフォルダが追加されます。

メインカメラに自動で「ChinemachineBrain」コンポーネントが追加され、
右側にシネマシーンアイコンが表示されるようになります。
設置方法

ヒエラルキー部分でメニューを出し「Cinemachine」>「CinemachineCamera」を作成します。
任意のカメラ名に変更して完了です。

カメラ移動やアングル変更する際は「CinemachineCamera」を増やしてそのカメラの設定を変更します。
例えば、
x0のシネカメラ1とx50のシネカメラ2を設置すると、自動でx0 → x50まで移動するようになります。
「秒数」や「イージング」の管理

1. グローバル設定(Default Blend):
Main Camera に付いている Cinemachine Brain コンポーネント内の Default Blend セクションで設定します。
これが DOTween でいう duration と easeType の全体デフォルトになります。
2. イージングの対応:
DOTween の Ease.InOutQuad などは、Cinemachine の Ease In Out スタイルが相当します。
より細かく制御したい場合は、Style を Custom にすることで、
Unity 標準の Animation Curve(グラフ編集)で自由なカーブを作成できます。
3. 秒数の対応:
Default Blendの右側に「s」があります。
数値を変更することにより一括で秒数が設定されます。
3. 個別設定(Custom Blends):
「このカメラからあのカメラへの移動だけ特殊にしたい」という場合は、
Cinemachine Brain の Custom Blends プロパティにある
Create Asset ボタンから Blender Settings アセット を作成します。
- このアセットを開くと「From (どのカメラから)」「To (どのカメラへ)」「Style (イージング)」「Time (秒数)」のリストを作成できます。
- 今回のような「後ろ ➔ 右 ➔ 左正面」といった経由が必要な特殊ルートの秒数調整も、ここで行うのが最もクリーンな設計です。
■ Cinemachine のブレンドスタイル解説表
| Cinemachineの設定名 | 挙動の特徴 | 類似項目 |
|---|---|---|
| Cut | 0秒で瞬時に切り替わります(補間なし)。 | アニメーション自体がない状態 |
| Ease In Out | 最もスタンダード。 動き始めが滑らかに加速し、 目的地の直前で滑らかに減速します。 | イン・アウト(加速して減速) (Quad、Cubic、QuintなどのInOut系) |
| Ease In | ゆっくり動き始め、 最高速のまま目的地にドスンと到達します。 単体では不自然になりがちです。 | イン(加速) (Quad、Cubic、QuintなどのIn系) |
| Ease Out | 最高速からスタートし、 目的地に向けて徐々にブレーキがかかります。 | アウト(減速) (Quad、Cubic、QuintなどのOut系) |
| Hard In | Ease In よりもさらに急激に加速する、 鋭いカーブです。 | イン(加速)の中で最も変化の急激なもの (Quint In や Expo In に近い) |
| Hard Out | Ease Out よりも さらに急激にブレーキがかかります。 | アウト(減速)の中で最も変化の急激なもの (Quint Out や Expo Out に近い) |
| Linear | 加減速が一切ありません。 常に同じ速度(等速直線運動)で動きます。 | リニア(等速) |
| Custom | 自分でカーブの形を編集できます。 | 設定次第ですべての波形を再現可能 |
パフォーマンス的な負荷
「CinemachineCamera」を増やしていくことへのパフォーマンス影響は、
DOTweenで1つのカメラを動かす場合とほぼ同等か、むしろCinemachineの方が軽くなる瞬間もある、
というのが、Unity 6における技術的な結論です。
■ なぜCinemachineカメラを量産しても重くならないのか?
理由:Cinemachineの Cinemachine Camera(旧Virtual Camera)が「本物のカメラではないから」です。
1. 実際にレンダリングしているのは「メインカメラ1つ」だけ
Unityにおいて最も負荷が高いのは「カメラが捉えた3D空間を画面に描き出す処理(レンダリング、ポストプロセス、カリングなど)」です。
- DOTween方式: メインカメラ(本物)が1つ。
- Cinemachine方式: メインカメラ(本物)が1つ + Cinemachineカメラ(偽物)が4つ。
Cinemachineのカメラは、
Unityにとってはただの「座標と画角のデータを持ったただの軽いスクリプト(GameObject)」に過ぎません。
レンズもなければ、描画する機能も持っていません。
メインカメラに付いている Cinemachine Brain という管理者が、
「今は1番優先度(Priority)が高い、この偽物カメラの座標と画角をコピーしよう」と処理しているだけです。
そのため、シーンに100個配置しようが、メモリや計算の負荷はごくわずかです。
2. DOTweenよりも「軽快」になり得る理由
DOTweenで毎フレーム transform.position を書き換える場合、
C#(スクリプト層)からUnityのネイティブコア(C++層)へ毎フレーム座標を送り続けることになります。
(これをコンポーネントの書き換えオーバーヘッドと言います)
一方、
CinemachineはUnityのネイティブエンジン側と深く統合されているため、
カメラの座標更新やブレンド計算の処理が最適化されています。
特にUnity 6(6000.3)のCinemachine v3では内部アーキテクチャが刷新され、さらに動作が軽量化されています。
個別設定
■ Custom Blends(アセットによるカメラペア管理)
「AというカメラからBというカメラへ行く時だけ、特別な秒数やイージングにしたい」という場合の王道です。
Cinemachine Brain の Custom Blends プロパティから
Cinemachine Blender Settings というアセット(ファイル)を作成します。
1. 作成したアセットのインスペクターで + ボタンを押します。
2. 以下のように「特定のカメラ間のルール」を指定します。
・From:CM_Cam_Front
・To:CM_Cam_Left
・Style:Linear(ここだけ等速にする、など)
・Time:0.5s(ここだけ素早く動かす、など)
- ワイルドカード指定が可能:From を ANY CAMERA にして、To を CM_Cam_Back にすれば、「どこから来ようとも、後ろ(Back)を向く時だけは1.5秒かけてゆっくり回る」といった、キャラクターの感情表現や演出に合わせた個別上書きが簡単に設定できます。
- スクリプト側は、ただ Priority を変えるだけで、シネマシーンが自動的にこのアセットから最適なブレンドルールを探して適用してくれます。
DOTweenでの微調整

ターゲットをアサインする際、メインカメラではなくシネマシーンカメラのほうを指定します。
従来のDOTweenは、
メインカメラ(Main Camera)のTransform(座標・角度)を直接書き換えて移動させていました。
しかし、Cinemachineを導入したことで、メインカメラの制御権はすべて Cinemachine Brain に乗っ取られています。
Cinemachine Brain は、
「現在アクティブなシネマカメラ(偽物)の座標を、毎フレーム強制的にメインカメラ(本物)に上書きコピーする」
という処理を行っています。
そのため、DOTween がメインカメラの座標をいくら動かそうとしても、
直後のフレームでCinemachineによって元の位置に強制的に引き戻されて(上書きされて)しまうため、
画面上では1ミリも動かないように見えます。

コメント