📹

[Unity] Cinemachineを使ってTPS視点のカメラを実装する

2023/08/29に公開

Cinemachine(FreeLook Camera)を使ってTPS視点のカメラを実装します。
公式ドキュメント
参考:
https://nekojara.city/unity-3rd-person-camera
https://tsubakit1.hateblo.jp/entry/2017/10/23/213606

指針

  • 原神の操作カメラの再現を目指す。
  • 基本的に操作モデルの後方に位置。
  • キャラクターが振り向いてもカメラには影響無し。
  • Dampingはあまり好きではないので抑えめに。

やっていき

上部タブのWindowからPackage Managerを開き、"Packages: In Project"をクリックして"Packages: Unity Registry"を選択する。
下のリストにCinemachineが見つかるのでInstall(執筆時ver.2.9.7)。

Hierarchyで右クリック→Cinemachine→FreeLook CameraとクリックしてFreeLook Cameraの作成。
項目が多数あるのでデフォルトから弄った部分のみ紹介する。

  • Follow 追従するモデル。
  • Look At カメラが見つめる部位。無難に頭部が良いのか?
  • Lens Vertical FOV 垂直方向の視野角。60にした
  • Y Axis/X Axis カメラの操作方法
    • Speed カメラの移動速度。
    • Invert カメラの入力操作を反転するか。Yにチェック、Xにはチェック無し
  • Orbits (Recenter To Target Heading)
    • Binding Mode: カメラの追従の仕方。デフォルトの"Simple Follow With World..."はこのページで紹介されている追従カメラ(ブラボとかダクソ系統)に近い挙動をするが、原神は非追従カメラに近い挙動を行うため"World Space"に変更する。
    • TopRig,MiddleRig,BottomRig: FreeLookはFollowモデルの上部、中部、下部に位置する真円のどこにカメラがあるかによってその距離を自在に変化させることが出来るのが特徴である。しかし原神のカメラワーク的には上部、中部によるカメラの距離はあまり変わらないためそのように意識して設定する。
  • Top Rig/Middle Rig/Bottom Rig
  • Body(Damping): カメラ"自身"がどれだけ遅れて追従するか。X=左右,Y=上下,Z=奥/前後

マウスホイールでのズーム機能

マウスホイールを用いてモデルに近寄ったり離れたりする機能があるので、実装していく。
といっても以下のサイトを参考にそのまま実装するだけで完成するのだからすごい。
https://nekojara.city/unity-cinemachine-mouse-zoom

完成

上記の設定を行って完成したカメラ。
目的の動作が実装されているのが分かる。(容量削減のためにフレーム,色をかなり削っています。)

Discussion