Unity6 3Dアクションゲームのキャラクターカメラ

Unity6 3Dアクションゲームのキャラクターカメラです。

キャラクターの周りをぐるりと回転するカメラです。Unity6になって、コンポーネントが変更されていましたので、共有しておきます。

CinemachineCmameraの導入からキャラクターカメラのテストまでです。

1.Window→PackageManger→UnityResistry→Cinemachine→Install

2.GameObject→Cinemachine→CinemachineCamera

3.Hiararchy→CinemachineCamera→TrackingTargetにプレイヤーオブジェクトをアタッチ

4.CinemachineCamera→PositionContorolをPositionComposerに変更

5.CinemachineCamera→RotationControlをPanTlintに変更

6.CinemachinePositionComposer→CamereDistanceを3に変更→TargetTrackingのTargetOffsetのYを1.2ぐらいに変更

7.CinemachinePanTlint→ReferenceFrameをParentObjectに変更→RecenterTargetをLookAtTargetForwardに変更

8.CinemachinePanTlintのPanAxisのRangeを-180から180→Wrapのチェックにオン

9.TlitAxisのRangeを-30から30→→Wrapのチェックにオフ

10.コードを記入(PlayerClass)

using Unity.Cinemachine;
  using UnityEngine;
  using UnityEngine.InputSystem;
  
public class PlayerClass : MonoBehaviour
{

[SerializeField]
private CinemachineCamera cinemachineCameraPlayer;
private Vector2 vector2Camera;

  private void Update()
{
   //スティック入力
vector2Camera = Gamepad.current.rightStick.value;
}


private void LateUpdate()
{
//水平回転
cinemachineCameraPlayer.GetComponent<CinemachinePanTilt>().PanAxis.Value += vector2Camera.x * Time.deltaTime * 100f;

//垂直回転
cinemachineCameraPlayer.GetComponent<CinemachinePanTilt>().TiltAxis.Value += vector2Camera.y * Time.deltaTime * 100f;

//垂直回転の角度の制限(-5度から30度)
cinemachineCameraPlayer.GetComponent<CinemachinePanTilt>().TiltAxis.Value = Mathf.Clamp(cinemachineCameraPlayer.GetComponent<CinemachinePanTilt>().TiltAxis.Value, -5, 30);
}

}

11.キャラクターにPlayerClassをアタッチ→PlayerClassのcinemachineCameraPlayerにHiararchyのCinemachineCameraをアタッチ

12.エディタ再生して、右スティックを回して確認

☆補足

//水平回転の逆回転
cinemachineCameraPlayer.GetComponent<CinemachinePanTilt>().PanAxis.Value -= vector2Camera.x * Time.deltaTime * 100f;

//垂直回転の逆回転
cinemachineCameraPlayer.GetComponent<CinemachinePanTilt>().TiltAxis.Value -= vector2Camera.y * Time.deltaTime * 100f;

このコードは自由に使用できます。ただし動作の保証はしていません。

Unity6 3Dアクションゲームのキャラクターカメラでした。ありがとうございました。

Twitterでフォローしよう

おすすめの記事