界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

unity-cinemachine

unity-cinemachine

【开发与工程】Unity Cinemachine skill for virtual cameras, procedural camera control, and cinematic sequences.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: unity-cinemachine description: Unity Cinemachine skill for virtual cameras, procedural camera control, and cinematic sequences. allowed-tools: Read, Grep, Write, Bash, Edit, Glob, WebFetch graph: domains: [domain:gaming] specializations: [specialization:game-development] skillAreas: [skill-area:gameplay-programming, skill-area:game-engines] roles: [role:game-developer]

Unity Cinemachine Skill

Procedural camera system using Unity Cinemachine.

Overview

This skill provides capabilities for implementing dynamic camera systems using Cinemachine, including virtual cameras, camera blending, and cinematic sequences.

Capabilities

Virtual Cameras

  • Create virtual cameras for different views
  • Configure follow and look-at targets
  • Set up framing transposers
  • Implement orbital cameras

Camera Behaviors

  • Configure noise profiles for shake
  • Implement dead zones and soft zones
  • Set up camera collision
  • Handle screen composition

Blending and Transitions

  • Configure blend curves
  • Set up camera priorities
  • Implement cutscenes with Timeline
  • Handle state-driven cameras

Advanced Features

  • Create dolly tracks
  • Implement target groups
  • Set up clear shots
  • Configure confiner extensions

Prerequisites

  • Unity 2021.3+
  • Cinemachine package installed

Usage Patterns

Player Follow Camera

// Configure in editor or via script
var vcam = GetComponent<CinemachineVirtualCamera>();
vcam.Follow = playerTransform;
vcam.LookAt = playerTransform;

// Framing Transposer settings
var transposer = vcam.GetCinemachineComponent<CinemachineFramingTransposer>();
transposer.m_ScreenX = 0.5f;
transposer.m_ScreenY = 0.4f;

Camera Shake

public void TriggerShake(float intensity, float duration)
{
    var noise = vcam.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
    noise.m_AmplitudeGain = intensity;
    StartCoroutine(ResetShake(duration));
}

Best Practices

  1. Use virtual cameras for game states
  2. Configure proper priorities
  3. Test camera transitions
  4. Use Timeline for cutscenes
  5. Profile camera updates

References

我的收藏