Unity Cinemachine Free Look Cameraを使ってオブジェクトの360℃ビューを作成する(1)

2カ月も間が空いてしまいました。

今回は、Cinemachine Free Look Cameraを使って、フォトグラメトリで作った3Dアートを360℃鑑賞できるようなビューを作ってみます。

上の画面ですと、アートの方が回転しているように見えますが、
実際は下のように、Free Look Cameraがアートの周りを回転しています。

今回の記事の前提
・Unity 2019/2020
・すでにMainCamera用のVirtual Cameraは別途存在している
・ビルトインレンダーパイプラインが対象

アート鑑賞用の物理カメラの作成

通常のカメラとは別に、アートオブジェクトだけを投影するカメラを作りたいため、MainCameraのほかに専用の物理カメラを新たに作成します。
カメラを作成したら、「コンポーネントを追加」からCinemachine Brainを割り当ててください。
なお、Audio ListenerはMainCameraだけに付いていればよく、2つあるとエラーになるため新しいカメラからは削除しましょう。

FreeLookCameraの作成

次にCinemachine FreeLookCameraを作成します。Cinemachineがインストールされていない場合はパッケージマネージャーからインストールしてください。
以下からシーンに追加できます。

(Unity2019の場合) メニューのゲームオブジェクト→Cinemachine→Free Look Camera 
(Unity2020の場合) メニューのCinemachine→Create Freelook Camera

Freelook CameraのFollow とLook atに、映したいオブジェクトを設定します。

 

 

 

 

 

 

 

 

各種設定

次に、FreeLookCameraでは対象のアートオブジェクトだけを投影するようにしたいため、以下の設定を行います。

(1)アートオブジェクトに特定のレイヤーを設定
 私の場合は「Dolls」というレイヤーを作って設定しました。

(2)アート鑑賞用の物理カメラのカリングマスクにアートオブジェクトのレイヤーのみを設定

(3)FreeLookCameraのをアートオブジェクトと同じレイヤーに設定

これで、アート鑑賞用の物理カメラのCinemachine BrainとFreeLookCameraが対応づけられるとともに、アート鑑賞用の物理カメラに投影されるのは対象レイヤーのものだけになります。

カスタムスカイボックスの追加

ここは趣味ですが、アート鑑賞用の物理カメラに「コンポーネントを追加」からカスタムスカイボックスを設定します。

以下の無料アセットから、CosmicCoolCloudという宇宙のSkyboxをセットしました。
Skybox Series Free | 2D Sky | Unity Asset Store

また、深度をメインカメラより大きくしておき、メインカメラよりも手前に描画されるようにします。これで再生すると、以下のGifのようになると思います。

FreeLookCameraの細かな設定

あとは、FreeLookCameraのレンズのクリップ面の距離や、Orbitsの
TopRig,MiddleRig,BottomRigの各値を調整してやります。

隣のアートを同じレイヤーに設定していると、カメラをグルグル回したときに隣のアートが映ってしまいます。そのため、レンズのファークリップ面の距離を短くして、調整しています。あとはTopRig,MiddleRig,BottomRigのHeightとRadiusを調整して、カメラがグルグル回る高さ・中心からの距離を調整します。ここらへんは適宜、環境にあった設定を行いましょう。

マウス右ボタンを押しているときだけFreeLookCameraが回転するようにしたい

以下のUnityForumサイトの「InputOnMouseDown」をFreeLookCameraにアタッチすると、右ボタンを押しているときだけFreeLookCameraが回転するようにできます。神だ・・・

Help Wanted – Cinemachine Freelook third-person – disable/enable following mouse movement – Unity Forum

 

・・・長い・・・力尽きたので続きは明日に。

参考記事
ゲームデザインで Cinemachine を使用するクリエイティブな方法 | バーチャルカメラシステム | Unity

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です