Token导航 LogoToken导航TokenDH.com
研究检索权限需确认github未标认证来源可访问许可证需确认审计通过

unity-cinemachineUnity cinemachine 搜索

Agent Skill

unity-cinemachine 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

309

周安装

13

GitHub Stars

14

下载量

108
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:unity-cinemachine(Unity cinemachine 搜索)
来源仓库:https://github.com/nice-wolf-studio/unity-claude-skills
仓库路径:skills/unity-cinemachine
安装命令:
npx skills add https://github.com/nice-wolf-studio/unity-claude-skills --skill unity-cinemachine
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/nice-wolf-studio/unity-claude-skills --skill unity-cinemachine

简介

用于查找、检索和筛选相关信息,适合快速定位候选结果。

  • 适用于关键词搜索、任务场景匹配和来源线索筛选。
  • 可结合仓库路径和原始 README 核验具体用法。
  • 安装方式:通过 GitHub 仓库安装,使用前确认权限与维护状态。
  • 注意是否会触发联网、命令执行或文件读写操作。unity-cinemachine 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Unity Cinemachine (Camera System)

Based on Unity 6.3 LTS -- Cinemachine 3.1 package IMPORTANT: Cinemachine 3.x renamed CinemachineVirtualCamera to CinemachineCamera

Core Concepts

Cinemachine procedurally controls the Unity camera at runtime. Compose camera behaviors from reusable components instead of writing custom camera scripts.

Architecture

  1. CinemachineBrain -- On Main Camera; drives the Unity Camera from the highest-priority active CinemachineCamera
  2. CinemachineCamera -- Lightweight virtual camera describing desired position, rotation, and lens (replaces CinemachineVirtualCamera from v2)
  3. Priority System -- Highest-priority enabled CinemachineCamera wins
  4. Pipeline Stages -- Body (position), Aim (rotation), Noise stages compute the final camera state

Namespace

using Unity.Cinemachine;  // Cinemachine 3.x (NOT "using Cinemachine;")

Minimal Setup

  1. Add CinemachineBrain to Main Camera
  2. Create GameObject with CinemachineCamera
  3. Set Follow target and optionally LookAt target
  4. Add Body/Aim components as needed
using UnityEngine;
using Unity.Cinemachine;

public class CameraSetup : MonoBehaviour
{
    [SerializeField] Transform playerTransform;

    void Start()
    {
        var vcam = gameObject.AddComponent<CinemachineCamera>();
        vcam.Follow = playerTransform;
        vcam.LookAt = playerTransform;
        vcam.Priority.Value = 10;
    }
}

Camera Setup Patterns

Basic Follow Camera

CinemachineCamera + CinemachineFollow. Set Follow target to player.

// CinemachineFollow provides a simple offset-based follow
var follow = gameObject.AddComponent<CinemachineFollow>();
follow.FollowOffset = new Vector3(0f, 5f, -10f);
follow.Damping = new Vector3(1f, 1f, 1f);

Third-Person Camera

CinemachineThirdPersonFollow for collision-aware third-person cameras.

PropertyDescription
ShoulderOffsetOffset from follow target in local space
CameraDistanceDistance from shoulder point
CameraSide0=left, 0.5=center, 1=right
CameraRadiusCollision detection radius
DampingIntoCollisionDamping when moving closer due to collision
DampingFromCollisionDamping when returning after collision

Orbital / FreeLook Camera

CinemachineOrbitalFollow for orbit-around-target cameras controlled by player input. In Cinemachine 3.x, FreeLook is no longer a separate component -- use CinemachineCamera + CinemachineOrbitalFollow + CinemachineInputAxisController.

var orbital = gameObject.AddComponent<CinemachineOrbitalFollow>();
orbital.OrbitStyle = CinemachineOrbitalFollow.OrbitStyles.ThreeRing;
orbital.Radius = 5f;
// Add CinemachineInputAxisController to wire Input System actions
gameObject.AddComponent<CinemachineInputAxisController>();

2D Camera

CinemachinePositionComposer with dead zones and damping for smooth 2D tracking.

var composer = gameObject.AddComponent<CinemachinePositionComposer>();
composer.Damping = new Vector3(1f, 0.5f, 0f);
composer.DeadZoneWidth = 0.1f;
composer.DeadZoneHeight = 0.1f;
composer.ScreenPosition = new Vector2(0.5f, 0.5f);
composer.CameraDistance = 10f;  // orthographic distance

Body Components (Position Tracking)

Body components control how the camera position follows the target. Add one Body component per CinemachineCamera.

ComponentUse Case
CinemachineFollowSimple offset follow with damping
CinemachineThirdPersonFollowCollision-aware third-person
CinemachineOrbitalFollowOrbit around target (FreeLook style)
CinemachinePositionComposerScreen-space framing with dead zones
CinemachineHardLockToTargetSnap position exactly to target (no damping)
CinemachineTrackedDollyFollow a SplineContainer path

CinemachineTrackedDolly

Moves the camera along a SplineContainer path. Useful for cutscene rails, racing games, or side-scrollers.

var dolly = gameObject.AddComponent<CinemachineTrackedDolly>();
dolly.SplinePath = splineContainer;
dolly.AutoDolly.Enabled = true;      // auto-position along spline
dolly.CameraPosition = 0.5f;        // 0..1 position on spline
dolly.Damping = new Vector3(1f, 1f, 1f);

Aim Components (Rotation)

Aim components control how the camera rotates toward its LookAt target. Add one Aim component per CinemachineCamera.

ComponentUse Case
CinemachineRotationComposerSoft-zone aim with dead zones and damping
CinemachineHardLookAtAlways face target exactly (no damping)
CinemachinePanTiltManual pan/tilt via input axes (first-person)
CinemachineGroupFramingAuto-frame a CinemachineTargetGroup

CinemachinePanTilt

For first-person or manual-aim cameras:

var panTilt = gameObject.AddComponent<CinemachinePanTilt>();
panTilt.TiltAxis.Range = new Vector2(-70f, 70f); // clamp vertical look

Camera Blending

CinemachineBrain handles smooth transitions automatically.

Blend Styles

StyleDescription
CutInstant switch
EaseInOutSmooth acceleration/deceleration (most common)
EaseIn / EaseOutOne-sided easing
HardIn / HardOutHard start or end
LinearConstant speed
CustomUser-defined AnimationCurve

Switching Cameras

// Priority-based: Brain blends to highest priority
closeUpCamera.Priority.Value = 20;
wideCamera.Priority.Value = 10;

// Or enable/disable GameObjects -- Brain blends automatically
closeUpCamera.gameObject.SetActive(true);
wideCamera.gameObject.SetActive(false);

Custom per-camera-pair blends use a CinemachineBlenderSettings asset assigned to CinemachineBrain.CustomBlends.

State-Driven Cameras

CinemachineStateDrivenCamera maps Animator states to child CinemachineCameras. When the Animator transitions, the corresponding camera activates automatically.

Setup

  1. Create a parent GameObject with CinemachineStateDrivenCamera
  2. Add child GameObjects, each with CinemachineCamera
  3. Assign the Animator that drives the state transitions
  4. Map each Animator state to a child camera in the Inspector

Use Cases

  • Combat -- Switch to over-shoulder cam when entering Combat Animator state
  • Vehicles -- Different cameras for driving vs. reversing
  • Stealth -- Wider FOV when in Crouch state
  • Dialogue -- Close-up camera for conversation states

Camera Shake (Impulse System)

ComponentRole
CinemachineImpulseSourceGenerates impulse signal at a position
CinemachineImpulseListenerReceives impulse on a CinemachineCamera

Generating Impulse

using UnityEngine;
using Unity.Cinemachine;

public class ExplosionShake : MonoBehaviour
{
    [SerializeField] CinemachineImpulseSource impulseSource;

    public void Explode()
    {
        impulseSource.GenerateImpulse();           // default velocity
        impulseSource.GenerateImpulse(3f);         // scaled intensity
        impulseSource.GenerateImpulse(Vector3.up); // directional
    }
}

Listener Properties

PropertyDescription
GainImpulse multiplier (0=ignore, 1=full)
Use2DDistanceUse 2D distance for falloff
ChannelMaskWhich impulse channels to receive

Noise (Procedural Shake)

CinemachineBasicMultiChannelPerlin adds continuous procedural noise (handheld feel, idle breathing).

ProfileUse Case
6D ShakeFull positional + rotational
Handheld_normal_mildSubtle handheld
Handheld_normal_strongPronounced handheld

CinemachineTargetGroup

Frame multiple targets with a single camera.

var group = gameObject.AddComponent<CinemachineTargetGroup>();
group.Targets = new CinemachineTargetGroup.Target[]
{
    new() { Object = player.transform, Weight = 1f, Radius = 1f },
    new() { Object = enemy.transform, Weight = 0.5f, Radius = 1f }
};
// Add CinemachineGroupFraming to the camera for auto-framing

Input Handling

Cinemachine 3.x uses InputAxis for camera control input. It integrates with Unity's Input System package.

CinemachineInputAxisController

Add this component alongside CinemachineOrbitalFollow or CinemachinePanTilt. It auto-discovers axes on sibling components and connects Input System actions.

Custom Input Provider

using UnityEngine;
using Unity.Cinemachine;
using System.Collections.Generic;

public class CustomCameraInput : MonoBehaviour, IInputAxisOwner
{
    [SerializeField] InputAxis horizontalAxis;
    [SerializeField] InputAxis verticalAxis;

    public void GetInputAxes(List<IInputAxisOwner.AxisDescriptor> axes)
    {
        axes.Add(new IInputAxisOwner.AxisDescriptor
        {
            DrivenAxis = () => ref horizontalAxis,
            Name = "Horizontal"
        });
        axes.Add(new IInputAxisOwner.AxisDescriptor
        {
            DrivenAxis = () => ref verticalAxis,
            Name = "Vertical"
        });
    }
}

Common Patterns

Third-Person with Collision Avoidance

var vcam = gameObject.AddComponent<CinemachineCamera>();
vcam.Follow = player; vcam.LookAt = player;

var tpFollow = gameObject.AddComponent<CinemachineThirdPersonFollow>();
tpFollow.ShoulderOffset = new Vector3(0.5f, 0f, 0f);
tpFollow.CameraDistance = 4f;
tpFollow.CameraSide = 1f;
tpFollow.CameraRadius = 0.2f;

var rotComposer = gameObject.AddComponent<CinemachineRotationComposer>();
rotComposer.Damping = new Vector2(0.5f, 0.5f);

Switching Cameras on Trigger Zones

using UnityEngine;
using Unity.Cinemachine;

public class CameraTriggerZone : MonoBehaviour
{
    [SerializeField] CinemachineCamera zoneCamera;
    [SerializeField] int activePriority = 20;
    [SerializeField] int inactivePriority = 0;

    void Start() => zoneCamera.Priority.Value = inactivePriority;

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
            zoneCamera.Priority.Value = activePriority;
    }

    void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
            zoneCamera.Priority.Value = inactivePriority;
    }
}

Cutscene Camera Sequence

using UnityEngine;
using Unity.Cinemachine;
using System.Collections;

public class CutsceneSequence : MonoBehaviour
{
    [SerializeField] CinemachineCamera[] cameras;
    [SerializeField] float[] durations;

    public IEnumerator PlayCutscene()
    {
        for (int i = 0; i < cameras.Length; i++)
        {
            foreach (var cam in cameras) cam.Priority.Value = 0;
            cameras[i].Priority.Value = 100;
            yield return new WaitForSeconds(durations[i]);
        }
    }
}

Split-Screen Setup

// Each player: separate Camera + CinemachineBrain + CinemachineCamera
// Camera 1: Viewport Rect (0, 0, 0.5, 1) -- left half
// Camera 2: Viewport Rect (0.5, 0, 0.5, 1) -- right half
brain1.ChannelMask = OutputChannels.Channel01;
brain2.ChannelMask = OutputChannels.Channel02;
player1Cam.OutputChannel = OutputChannels.Channel01;
player2Cam.OutputChannel = OutputChannels.Channel02;

Camera Shake on Explosion

[SerializeField] CinemachineImpulseSource impulseSource;
[SerializeField] float shakeForce = 5f;

public void Detonate()
{
    impulseSource.GenerateImpulse(shakeForce);
}

Anti-Patterns

Anti-PatternDo This Instead
Using CinemachineVirtualCamera (v2)CinemachineCamera
using Cinemachine; namespaceusing Unity.Cinemachine;
Modifying Camera.main.transform directlyModify the CinemachineCamera; Brain drives the Camera
All cameras at same priorityGive distinct priorities
No CinemachineBrain on Main CameraAlways add CinemachineBrain
Manual Lerp for camera transitionsUse priority switching; Brain handles blending
CinemachineTransposer (v2)CinemachineFollow
CinemachineComposer (v2)CinemachineRotationComposer
CinemachineFramingTransposer (v2)CinemachinePositionComposer

Key API Quick Reference

ClassPurpose
CinemachineCameraVirtual camera (was CinemachineVirtualCamera)
CinemachineBrainDrives Unity Camera from active virtual camera
CinemachineFollowOffset body (was CinemachineTransposer)
CinemachineThirdPersonFollowCollision-aware third-person body
CinemachineOrbitalFollowOrbit body for FreeLook
CinemachinePositionComposerScreen-space framing (was FramingTransposer)
CinemachineTrackedDollyFollow a Spline path
CinemachineRotationComposerSoft-zone aim (was CinemachineComposer)
CinemachineHardLookAtSnap aim to target
CinemachinePanTiltManual pan/tilt aim
CinemachineGroupFramingAuto-frame target group
CinemachineImpulseSourceGenerate camera shake
CinemachineImpulseListenerReceive shake on camera
CinemachineBasicMultiChannelPerlinContinuous procedural noise
CinemachineStateDrivenCameraMap Animator states to cameras
CinemachineTargetGroupGroup multiple targets
CinemachineBlenderSettingsCustom blend definitions
CinemachineInputAxisControllerConnect Input System to axes
ICinemachineCameraInterface for virtual cameras

v2 to v3 Migration Reference

Cinemachine 2.xCinemachine 3.x
CinemachineVirtualCameraCinemachineCamera
CinemachineFreeLookCinemachineCamera + CinemachineOrbitalFollow
CinemachineTransposerCinemachineFollow
CinemachineComposerCinemachineRotationComposer
CinemachineFramingTransposerCinemachinePositionComposer
CinemachinePOVCinemachinePanTilt
CinemachineGroupComposerCinemachineGroupFraming
using Cinemachineusing Unity.Cinemachine
m_Follow / m_LookAtFollow / LookAt
m_PriorityPriority.Value

Related Skills

  • For animation state machines, see unity-animation
  • For rendering/cameras, see unity-graphics
  • For Timeline, see unity-animation references/timeline.md
  • For input system integration, see unity-input

Additional Resources

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.29%
按下载量换算38

Claude

28.67%
按下载量换算31

Cursor

18.26%
按下载量换算20

Gemini CLI

10.52%
按下载量换算11

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills