UnityのCinemachineの仮想カメラが優秀過ぎる

今回はCinemachineのVirtualCamera(仮想カメラ)を使ってキャラクターを追従させたいと思います。

Cinemachineの機能は追加でアセットをインポートする必要があるので、AssetStoreでCinemachineで検索しインポートしてください。

Cinemachineについては

UnityのCineMachineを使うと通常のゲームシーンのカメラとしてだけでなく、イベントシーンのカメラワークの作成も簡単に作成出来ます。そんなCineMachineを使っていくつかのカメラワークを作成してみます。

も参照してください。

CinemachineのVirtualCameraは通常のゲーム時にキャラクターを追従する為だけに使う事も出来、非常に優秀です。

スポンサーリンク

従来のキャラクター追従スクリプトとCinemachineのVirtualCameraの比較

従来の簡易的なキャラクター追従スクリプトとCinemachineのVirtualCameraの比較をしてみます。

Follow TargetやSmooth Followを使った追従

従来のキャラクターを追従するカメラはFollowTargetやSmoothFollowといったスタンダードアセットのUtilityスクリプトがありました。

実際にMain CameraにSmooth Followスクリプトを取り付けて確認してみます。

MainCameraに既存のSmoothFollowスクリプトを取り付け

確認すると、

↑のようにキャラクターをカメラが追従してますが、壁に遮られるとキャラクターが見えなくなったりTerrainで作ったフィールドの中身が見えてしまいます。

それに対応するスクリプトを組み、常にカメラがキャラクターを写すようにする事も出来ますが、CinemachineのVirtualCameraの設定を変更するだけで簡単に出来てしまいます。

CinemachineのVirtualCameraを使った追従

次はCinemachineのVirtualCameraを使ってキャラクターを追従させてみましょう(Smooth Followスクリプトは削除しておきます)。

UnityメニューのCinemachine→Create Virtual Cameraを選択します。

CM vcam1というゲームオブジェクトが作成され、Main CameraにはCinemachine Brainコンポーネントが取り付けられます。

Cinemachine Virtual CameraコンポーネントのExtensionsのAdd Extensionsをクリックし、CinemachineColliderを選択します。

仮想カメラにCinemachineColliderを取り付ける

CinemachineColliderを追加すると、ゲームオブジェクトとカメラの間に指定したゲームオブジェクトが入って見えなくなったら、キャラクターを写すように出来ます。

CinemachineColliderの設定

壁やTerrainのゲームオブジェクトにはFieldというレイヤーを設定し、CinemachineColliderのCollide AgainstにはFieldレイヤーを設定します。

Avoid Obstaclesにチェックを入れると障害物を回避します。

Strategyはカメラの回避方法で今回はPull Camera Forwardを設定します。

これで設定が出来ました。

Unityを実行して確認してみると、

↑のような感じでキャラクターとカメラの間にFieldレイヤーを設定したゲームオブジェクトがあるとそれを回避してキャラクターを写すようになります。

非常に優秀なカメラですね。(^^)/

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます