CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】カメラを追従させたいときによく起こる問題への解決法まとめ
こんにちは!コチラの記事では、カメラを主人公に追従させたいときによくあるFAQを解決していきます。
またその前提として、Unityでカメラを主人公に追従させたいときに便利なCinemachine についても簡単に解説していきます。
カメラを主人公の後ろに追従させたいときは Cinemachine が便利!
カメラを主人公に追従させたいときによくあるFAQを記事の後半で解決していきますが、 Cinemachine を使うとスクリプトやタイムラインを使うより簡単に、それらの問題を解決することが可能です。
そのため記事の前半では、よくあるFAQを解決する前提として、Cinemachine について簡単に解説をしたいと思います。
Cinemachine とは
Cinemachine は、スクリプトやタイムラインの設定なしでUnityのカメラ操作・制御ができるUnity公式のアセットです。
Cinemachine は無料で誰でも使うことができます。
Virtual Camera というカメラを Main Camera とは別に配置することで、主人公の追従はもちろんのこと様々なカメラワークを実現することが可能なアセットです。
Cinemachine でカメラを主人公の後ろに追従させる方法
Cinemachine でカメラを主人公の後ろに追従させるには、「 Cinemachine 」を使い「 CM vcam 」の「 Follow 」、「 Look At 」に追従したいゲームオブジェクトを設定することで可能になります。
Cinemachineのインストール方法と、Cinemachineを使ったカメラを主人公に追従させる方法は、
以下の記事の「カメラを主人公に追従させる方法は?」という項目で詳しく解説していますので、ご確認ください。
カメラを主人公に追従させたいときのよくあるFAQ
カメラを回転させないで、主人公に追従させるには?
カメラと主人公を親子付けして、カメラを主人公に追従させるカメラワークを作っている場合には、主人公の回転に合わせてカメラは回転してしまいます。
またCinemachineで追従の設定をしている場合でも Inspector → Body → 「 Binding Mode 」が初期設定のままである場合、主人公の回転の影響を受け、主人公が回転するとカメラも回転してしまいます。
カメラを回転させないで、主人公に追従させるには「 CM vcam1 」を選択し、 Inspector → Body → 「 Binding Mode 」を「World Space 」または「 Simple Follow With World Up 」に変更しましょう。
そうすることで、カメラを回転させないで主人公に追従するカメラワークを実現することができます。
2Dゲームの主人公にカメラを追従させるには?
Hierarchy で右クリック →「 Game Object 」→「 Cinemachine 」→「Virtual Camera 」を選択し、バーチャルカメラを設置します。
「 CM vcam1 」を選択し、Inspector →「 Follow 」に、追従したいオブジェクトをドラッグアンドドロップします。
そして Inspector →「 Body 」を「 Framing Transposer 」に変更します。
そうすると、2Dゲームの主人公にカメラを追従させることができます。
上記のように遅れることなく追従させたい場合は、Inspector →Body の「 X Damping 」と「 X Damping 」の値が0になっていることを確認しましょう。
2Dゲームの主人公に遅れてカメラを追従させるには?
2Dゲームの主人公に遅れてカメラを追従させるには、前項の設定に加えて以下の設定をする必要があります。
Inspector →Body の「 X Damping 」と「 X Damping 」に適当な数値を与えます。
ゲーム再生画面で確認すると、2Dゲームの主人公に対し、遅れてカメラを追従させることができます。
主人公に追従しているカメラの視点をマウスで動かせるようにするには?
主人公に追従しているカメラの視点をマウスで動かせるようにするには、まずHierarchy で右クリック →「 Game Object 」→「 Cinemachine 」→「Virtual Camera 」を選択し、バーチャルカメラを設置します。
「 CM vcam1 」を選択、Inspector →「 Follow 」と「 Look At 」に、追従したいオブジェクトをドラッグアンドドロップし、主人公にカメラを追従させます。
そして Inspector →「 Body 」を「 Orbital Transposer 」に変更します。
そうすると以下のようにマウス操作によって、主人公に追従しているカメラの視点を動かせるようになります。
転がるボールにカメラを追従させるには?
カメラを転がるボールに親子付けさせることによって追従させると、ボールの回転にあわせてカメラが回ってしまいます。
その際は「カメラを回転させないで、主人公に追従させるには?」で説明したように、カメラを回転させない手順を踏むことで解決することができます。
バーチャルカメラを設置し、「 CM vcam1 」を選択、Inspector →「 Follow 」と「 Look At 」に、追従したいオブジェクトをドラッグアンドドロップします。
Inspector → Body → 「 Binding Mode 」を「World Space 」または「 Simple Follow With World Up 」に変更しましょう。
そうすると転がるボールにカメラを追従させても、ボールの回転にあわせてカメラが回るということがなくなります。
まとめ
- Cinemachine を使うとスクリプトやタイムラインを使うより簡単に、カメラを主人公に追従させるときに起こる問題を解決することが可能。
- Cinemachine とは Virtual Camera というカメラを配置することで、主人公の追従はもちろんのこと様々なカメラワークを実現することが可能なUnity公式の無料アセットである。
- カメラを主人公に追従させるには、「 Cinemachine 」を使い、「 CM vcam 」の「 Follow 」、「 Look At 」に追従させたいオブジェクトを設定をする。
- カメラを回転させないで、主人公に追従させるには Body → 「 Binding Mode 」を「World Space 」または「 Simple Follow With World Up 」に変更する。
- 2D ゲームの主人公にカメラを追従させるには、「 Body 」を「 Framing Transposer 」に変更する。
- 2D ゲームの主人公に遅れてカメラを追従させるには、Body の「 X Damping 」と「 X Damping 」に適当な数値を与える。
- 主人公に追従しているカメラの視点をマウスで動かせるようにするには、「 Body 」を「 Orbital Transposer 」に変更する。
- 転がるボールにカメラを追従させるには、 Body → 「 Binding Mode 」を「World Space 」または「 Simple Follow With World Up 」に変更する。
Unity用アセット販売中!
当メディアで運営しているアセットショップ「NickNackHolic」にてUnity用のアセットを販売しております。
ゲーム制作やVRchat、Clusterなどで使用できる便利なアセットを販売しております。
一部無料のアセットもあるので、ぜひ覗いてみてください!
Nick Nack Holic
VRchatやゲームアセット、映像作品で使える「雑貨」を販売中