当前位置: 首页 > news >正文

Unity之Cinemachine教程

前言

Cinemachine是Unity引擎的一个高级相机系统,旨在简化和改善游戏中的相机管理。Cinemachine提供了一组强大而灵活的工具,可用于创建令人印象深刻的视觉效果,使开发人员能够更轻松地掌控游戏中的摄像机行为。

主要功能和特性包括:
1.虚拟摄像机系统: Cinemachine引入了虚拟摄像机的概念,允许开发人员使用相机组件的虚拟实例,而不必直接操作实际摄像机。
2.目标跟踪: Cinemachine能够自动跟踪和对焦游戏中的目标,使相机的运动更加平滑和自然。
3.多摄像机管理: Cinemachine能够管理多个摄像机,并根据优先级和条件自动切换它们,以实现更流畅的镜头过渡。
4.镜头切换: Cinemachine支持创建切换镜头的区域,以便在游戏中实现不同的视角和效果。
5.轨道系统: Cinemachine引入了轨道的概念,允许开发人员在3D空间中定义相机的运动路径,实现更复杂的镜头动画。
6.渐变效果: 提供了通过Impulse Listener实现相机渐变效果的功能,使相机对游戏中的事件有更生动的响应。
7.Timeline集成: Cinemachine与Unity的Timeline集成,使开发人员能够在时间轴上控制和调整相机动画。
8.高级功能: 提供了一系列高级功能,如自定义Rig Logic和State Driven Camera,使相机行为更加可定制。

使用Cinemachine,开发人员能够更容易地实现专业水准的相机工作,而不必亲自处理许多繁琐的细节。这使得游戏开发者能够专注于创造更引人入胜的游戏体验。

一.VirtualCamera

Cinemachine为我们提供了VirtualCamera组件,让我们方便的控制相机。
我们场景中一般只需要一个MainCamera主相机,但是可以存在多个Virutal Camera,便于我们随时切换不同模块的相机状态。
在这里插入图片描述

1.CinemachineBrain

当我们创建了一个Virtual Camera后,我们会发现原来的MainCamera上多了一个组件CinemachineBrain,
在这里插入图片描述

Cinemachine Brain是Camera上的一个组件,相当于"大脑",可以在每一帧来监控并计算场景中所有活动的Virtual Cameras的状态(位置,方向等),同步选择其他具有相同优先级的Virtual Cameras中或切换具有更高优先级的Virtual Camera甚至进行Virtual Cameras之间的混合(切换)
Brain的作用就是监听VirualCamera的梳理结果,然后实际控制Camera进行拍摄操作 。

2. Virtual Camera

在这里插入图片描述
Solo:一种控制方式,用于在同一时间只激活一个轨道,而不是同时激活多个
Game Window Guides:Game窗口会显示辅助线
Save During Play:如果选中,运行中的虚拟相机属性可以被保存下来,退出Play状态不会被重置。
Priority:优先级,调整该虚拟相机的优先级。CinemachineBrain会根据这一项来选择LiveCamera同步到UnityCamera中。在Timeline中不生效该选项。
Follow: 设置虚拟相机想要跟随的目标(Body Target)
Look At:设置虚拟相机想要关注的目标(Aim Target)
Standby Update:当虚拟相机处于Standby状态时的更新方式。Never方式为不更新,Always方式为每一帧都更新,Round Robin为循环更新,将所有待命的虚拟相机按照优先级大小来进行每一帧的循环更新
Lens:设置该虚拟相机的Lens属性
Transitions:相机混合时的设置。
Body:配合Follow使用的参数设置
Aim:配合LookAt使用的参数设置
Noise:可以实现模拟相机抖动效果

二.其他相机

1.FreeLook Camer:适用于第三人称摄像机体验。允许玩家在三个不同的轴上自由旋转视角,提供了一种灵活的方式来调整和控制相机的行为。
2.BlendListCamera: 允许你在多个不同的虚拟摄像机之间进行平滑的混合。可以根据权重在不同的摄像机之间过渡,创造出无缝的过渡效果。
3.State-Driven Camera:允许你定义多个不同的相机状态,并根据游戏的状态来切换这些状态。每个状态都可以有自己的相机设置和参数。
4.Clear-DrivenCamra:可以根据相机的清除标志(Clear Flags)来驱动相机。这使得相机的行为可以与场景的渲染设置和效果相关联。
5.Dolly Camera with Track:在相机上制作路径动画(轨道相机)
6.Dolly Track with Cart:是给GameObject制作路径动画
7.Target Group Camera:跟随一个目标组,根据目标的位置和权重进行相机的跟随。适用于多个目标的场景,确保相机能够同时聚焦在多个目标上。
8.Mixing Camera:允许你混合多个不同的相机。每个相机都有一个权重,根据这些权重来混合不同相机的输出,创造出特定效果。
9.2D Camera:专为 2D 游戏设计的相机。提供了特定于 2D 游戏的功能,如像素完美摄像机设置、跟随目标等,简化了 2D 游戏开发中相机的管理。

三.Cinemachine and Timeline

Cinemachine很容易和Timeline结合使用,比直接使用相机动画制作镜头更容易。使用Timeline可以激活、停用、混合虚拟相机。Timeline可以将Cinemachine、场景中的GameObject和其他资产组合在一起,以可视化方式创建、调整出丰富的过场动画,甚至是交互式的过场动画。
在这里插入图片描述
Cinemachine Track:Cinemachine的专用轨道
在这里插入图片描述

相关文章:

Unity之Cinemachine教程

前言 Cinemachine是Unity引擎的一个高级相机系统,旨在简化和改善游戏中的相机管理。Cinemachine提供了一组强大而灵活的工具,可用于创建令人印象深刻的视觉效果,使开发人员能够更轻松地掌控游戏中的摄像机行为。 主要功能和特性包括&#x…...

java面面试面经(面试过程)

一、校招一面面经 1.1 自我介绍(2min) 1.2 要求介绍项目一项目亮点以及做的具体工作 根据介绍项目进行细挖,其中包括方案设计、场景设计等等等 由于项目一种涉及数据库源的转换问题和限流方案,所以面试官拷打的是这两块,其中包括场景题&…...

大语言模型-大模型基础文献

大模型基础 1、Attention Is All You Need https://arxiv.org/abs/1706.03762 attention is all you need 2、Sequence to Sequence Learning with Neural Networks https://arxiv.org/abs/1409.3215 基于深度神经网络(DNN)的序列到序列学习方法 3、…...

【RH850U2A芯片】Reset Vector和Interrupt Vector介绍

目录 前言 正文 1. 什么是Reset Vector 1.1 S32K144芯片的Reset Vector 1.2 RH850芯片的Reset Vector 2. 什么是Interrupt Vector 2.1 S32K144芯片的Interrupt Vector 2.2 RH850芯片的Interrupt Vector 3. Reset Vector等价于Interrupt Vector吗 4. 总结 前言 最近在…...

Zabbix交换分区使用率过高排查

Zabbix High swap space usage 问题现象 Zabbix 出现Highswap space usage(less than 50% free)告警,提示交换分区空间使用率超过50% 处理过程 1. 确定swap分区是否已占满 free -h登录Zabbix服务器检查内存情况,检查发现Linux服务器空闲的内存还有不少…...

‘HEAD‘ 是 HTTP 请求的一种方法

一、名词解释 ‘HEAD’ 是 HTTP 请求的一种方法,它与 ‘GET’ 方法类似,但有一些关键区别。 当你使用 ‘GET’ 请求时,服务器会返回请求的资源(例如 HTML 页面或文件内容)。而当你使用 ‘HEAD’ 请求时,服务…...

go语言(十七)----json

1、结构体转json package mainimport ("encoding/json""fmt" )type Movie struct{Title string json:"title"Year int json:"year"Price int json:"rmb"Actors []string json:"actors" }func main() {movie : Mo…...

Java笔记 --- 四、异常

四、异常 Java.lang.Throwable Error Exception(异常) 异常的作用 异常的处理方式 JVM默认的处理方式 捕获异常(自己处理) try里面没有出现异常,就不会运行catch里面的代码 如果出现多个异常,需要多个c…...

Ubuntu20.04配置grub ,不必每次都输入 nomodeset

一、查看原来的grub配置: grep menuentry /boot/grub/grub.cfg 重点注意以下类似的核心版本号 gnulinux-5.15.0-92-generic-advanced-86a86651-8070-4338-92ee-8a1a13a98a05 gnulinux-5.15.0-67-generic-advanced-86a86651-8070-4338-92ee-8a1a13a98a05 …...

PBM模型学习(七)核化模型

Nucleation Rate 返回的是成核速率:单位时间内,多少个小颗粒生成,单位,个,/对于fluent而言,这个是对于网格而言,所以单位是:个/m3*s 成核:从无到有,形成一个…...

蓝桥小白赛4 乘飞机 抽屉原理 枚举

👨‍🏫 乘飞机 🐷 抽屉原理 import java.util.Scanner;public class Main {static int N 100010;static int[] a new int[N];public static void main(String[] args){Scanner sc new Scanner(System.in);int n sc.nextInt();int q s…...

HTML新手教程

HTML入门 教程:【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一.初识HTML HyperTextMarkupLanguage(超文本标记语言) 超文本包括:文字、图片、音频、视频、动画。 HTML5的优势 世界知名浏览器厂商对HTML5的支持市场的…...

P1226 【模板】快速幂题解

题目 给你三个整数a,b,p,求 mod p。 输入输出格式 输入格式 输入只有一行三个整数,分别代表a,b,p。 输出格式 输出一行一个字符串a^b mod ps,其中a,b,p分别为题目给定的值,s为运算结果。 输入输出样例 输入样例 2 10 9 …...

文旅游戏的多元应用场景

文旅游戏在各个领域中找到了广泛的应用,为用户提供了独特的文化体验和娱乐享受。下面将探讨文旅游戏在多个应用场景中的丰富表现。 1. 旅游推广与目的地引导 文旅游戏成为旅游局的一项有力工具,能够将目的地的历史、文化和特色景点巧妙地融入游戏中。通…...

小波变化最通俗的解释,小波变换是用来干什么的,类似小波变换功能的算法有哪些?

问题描述:小波变化最通俗的解释,小波变换是用来干什么的,类似小波变换功能的算法有哪些? 问题解答: 小波变换是一种数学工具,用于分析信号的频域特性。它可以将信号分解成不同频率的子信号,…...

Servlet 与 MVC

主要内容 Servlet 重点 MVC 重点 Filter 重点 章节目标 掌握 Servlet 的作用 掌握 Servlet 的生命周期 掌握 JSP 的本质 掌握 MVC 的设计思想 掌握 Filter 的作用及使用场景 第一节 Servlet 1. Servlet 概念 Servlet 是在服务器上运行的能够对客户端请求进行处理&a…...

基于单片机的感应自动门控制器的设计

摘要 现如今自动化、信息化程度越来越高, 单片机的应用领域也越来越广, 成为人们生活不可或缺的一部分。随省社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便千生活的自动控制系统开始进入了人们的生活,以单片机为核…...

兄弟HL-1208黑白激光打印机清零方法

兄弟HL-1208黑白激光打印机基本参数: 产品类型:黑白激光打印机(定位类型家用) 最大打印幅面:A4 最高分辨率:600600dpi 黑白打印速度:20ppm 内存标配:1MB,最大&#…...

第二百八十八回

文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用…...

【日常学习笔记】gtest

https://zhuanlan.zhihu.com/p/369466622 int Factorial(int n) {int result 1;for (int i 1; i < n; i) {result * i;}return result; }TEST(TestSuiteName, TestName) 第一个参数可以表示为一个对某一个函数进行测试&#xff0c;第二个参数表示对这个函数测试时的分的几…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

规则与人性的天平——由高考迟到事件引发的思考

当那位身着校服的考生在考场关闭1分钟后狂奔而至&#xff0c;他涨红的脸上写满绝望。铁门内秒针划过的弧度&#xff0c;成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定"&#xff0c;构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…...