Unity Cinemachine のTransposer、ComposerのOffsetをスクリプトで制御する

前回の記事で省略した、
Unity Cinemachine  VirtualカメラのTransposer、ComposerのOffsetの値をスクリプトで変更する方法を記載します。

前回の記事はこちら。
Unity CinemachineのBlendを使ってアートをクリックしたらそこにフォーカスして拡大するようにする – Craneのブログ (crane-art.com)

やりたいこと

たとえば以下のVirtualCameraにおいて、BodyのFollow OffsetとかAimのTracked Object Offsetの値をスクリプトで変更したい。

サンプルscript

  1. using System.Collections;
  2. using System.Collections.Generic;
  3.  
  4. using UnityEngine;
  5. using Cinemachine;
  6.  
  7. public class xxxxx : MonoBehaviour
  8. {
  9.      [SerializeField] CinemachineVirtualCamera artViewCamera;
  10.     CinemachineTransposer artViewCameraTransposer;
  11.     CinemachineComposer artViewCameraComposer;
  12.  
  13.     private void Start()
  14.     {
  15.         artViewCameraTransposer = artViewCamera.GetCinemachineComponent<CinemachineTransposer>();
  16.         artViewCameraComposer = artViewCamera.GetCinemachineComponent<CinemachineComposer>();
  17.     }
  18. // 中略///
  19. }
  20.  

 

結局、やっていることは単純です。

BodyにTransposerをセットしているので、CinemachineTransposerクラスの変数を宣言し、そこにGetCinemachineComponentでVirtualカメラのTransposer情報を取り込む。

AimにComposerをセットしているので、CinemachineComposerクラスの変数を宣言し、そこにGetCinemachineComponentでVirtualカメラのComposer情報を取り込む。

Offsetの値は以下のようにして設定できます。
(xxxはfloat型で)

artViewCameraTransposer.m_FollowOffset.x = xxx ; 
artViewCameraTransposer.m_FollowOffset.y = xxx;
artViewCameraTransposer.m_FollowOffset.z = xxx;
artViewCameraComposer.m_TrackedObjectOffset.x =xxx;
artViewCameraComposer.m_TrackedObjectOffset.y = xxx;
artViewCameraComposer.m_TrackedObjectOffset.z = xxx;

今回は以上です。

コメントを残す

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