前回の記事で省略した、
Unity Cinemachine VirtualカメラのTransposer、ComposerのOffsetの値をスクリプトで変更する方法を記載します。
前回の記事はこちら。
Unity CinemachineのBlendを使ってアートをクリックしたらそこにフォーカスして拡大するようにする – Craneのブログ (crane-art.com)
やりたいこと
たとえば以下のVirtualCameraにおいて、BodyのFollow OffsetとかAimのTracked Object Offsetの値をスクリプトで変更したい。
サンプルscript
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Cinemachine;
- public class xxxxx : MonoBehaviour
- {
- [SerializeField] CinemachineVirtualCamera artViewCamera;
- CinemachineTransposer artViewCameraTransposer;
- CinemachineComposer artViewCameraComposer;
- private void Start()
- {
- artViewCameraTransposer = artViewCamera.GetCinemachineComponent<CinemachineTransposer>();
- artViewCameraComposer = artViewCamera.GetCinemachineComponent<CinemachineComposer>();
- }
- // 中略///
- }
結局、やっていることは単純です。
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;
今回は以上です。