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的专用轨道
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Python画出漂亮的地图

用Python画出漂亮的地图 地图可视化是数据分析和地理信息系统中的重要环节。Python提供了多个强大的库,如Folium、Matplotlib、Geopandas等,使得创建漂亮而具有信息量的地图变得简单而灵活。本文将详细介绍如何使用这些库绘制漂亮的地图,并提…

C++ STL库详解:list的详细模拟实现

一、前言 在详细学习并学习c后,我们对stl库的例如vector、list、string都有了详细的了解,对模板的使用以及类和对象都有了熟练的掌握,而实践才是检验真理的唯一标准,在此片博客中,将利用先前学过的各模块知识来对list…

Springboot+vue的医院后台管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的医院后台管理系统(有报告),Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的医院后台管理系统,采用M&#xff08…

Java实现 OPC Ua Server服务器创建

前言 我们除了使用KEPServerEX6 创建OPC Ua Server 服务器以外,还可以使用 开源项目org.eclipse.milo 创建一个java项目OPC Ua Server的服务。相对于KEPServerEX6 属于收费的商用版本来说,后者更为简单轻便。下面附加代码和文字说明,教你如何创建一个OPC Ua Server的java服…

vue多层组件监听 v-bind=“$attrs“,v-on=“$listeners“

高层级向低层级传值 v-bind“$attrs” v-bind"$attrs"主要用于高层组件向低层组件隔代传值。 假如有 父组件A,子组件B,孙组件C 三个组件。 A组件中的值需要直接传给C组件,那么就需要在B组件中设置v-bind“$attrs”,然…

LeetCode、875. 爱吃香蕉的珂珂【中等,最小速度二分】

文章目录 前言LeetCode、875. 爱吃香蕉的珂珂【中等,最小速度二分】题目及分类思路分析及代码实现代码优化 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Ja…

如何修改flutter的minSdkVersion版本?

在使用第三方插件的时候,插件对最低的 minSdkVersion版本是有要求的,你比如flutter 插件 webview_flutter 就会报一下错: minSdkVersion 16 cannot be smaller than version 19 declared in library 解决方法①: 这个时候我们需…

Flutter 屏幕适配之相对尺寸适配

在Android中我们可以通过脚本来动态生成适配于各个厂商的屏幕的相对尺寸。 那么在Flutter中我们如何通过相同的思路来实现同样的效果呢?我们知道,Android的每个厂商的屏幕大小存在非常大区别。有些长,有的短,有的粗,有…

Python爬虫框架选择与使用:推荐几个常用的高效爬虫框架

目录 前言 一、Scrapy框架 1. 安装Scrapy 2. Scrapy示例代码 3. 运行Scrapy爬虫 二、Beautiful Soup库 1. 安装Beautiful Soup 2. Beautiful Soup示例代码 3. 运行Beautiful Soup代码 三、Requests库 1. 安装Requests库 2. Requests示例代码 3. 运行Requests代码 …

【蓝桥杯--图论】最小生成树prim、kruskal

今日语录&#xff1a;成功不是终点&#xff0c;失败不是致命&#xff0c;勇气才是取胜的关键。 文章目录 prim算法kruskal算法(稀疏图) prim算法 #include <cstring> #include <algorithm> #include <iostream>#define _CRT_SECURE_NO_WARNINGS using names…

8 种网络协议

什么是网络协议&#xff1f; 网络协议就是计算机之间沟通的语言&#xff0c;为了有效地交流&#xff0c;计算机之间需要一种共同的规则或协议&#xff0c;就像我们和老外沟通之前&#xff0c;要先商量好用哪种语言&#xff0c;要么大家都说中文&#xff0c;要么大家都说英语&a…

微信小程序实现长按 识别图片二维码

第一种方案&#xff08;只需要在image里面加一个属性就可以了&#xff09; show-menu-by-longpress“{{true}}” <image show-menu-by-longpress"{{true}}" src"{{sysset.dyqewm}}" />第二种方案 放大预览图片&#xff0c;长按识别二维码 wxml <…

数灵通实现抖音跳转企业微信啦

抖音是一款流行的短视频应用&#xff0c;用户可以通过简洁、有趣的短视频形式创作和分享内容。 对于企业而言&#xff0c;抖音拥有庞大的用户基础和广泛的影响力&#xff0c;因此企业希望能够利用抖音的平台来推广自己的企业微信账号&#xff0c;与用户建立更紧密的沟通和联系…

css中px和em的区别

px 和 em 是用来表示元素大小的单位&#xff0c;在 CSS 中经常被使用。 px (pixel) 是像素单位&#xff0c;表示屏幕上的一个点。它是一个绝对单位&#xff0c;表示一个固定的大小。例如&#xff0c;一个宽度为 200px 的元素将始终显示为 200 个像素宽。 em 是相对单位&#x…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第一天-ARM常见问题1-100问(物联技术666)

链接&#xff1a;https://pan.baidu.com/s/1-u7GvgM0TLuiy9z7LYQ80Q?pwd1688 提取码&#xff1a;1688 第1问: Q:请问在初始化CPU堆栈的时候一开始在执行mov r0, LR这句指令时处理器是什么模式 A:复位后的模式,即管理模式. …

Xftp连接不上Linux虚拟机的原因解决方法

前言&#xff1a; 在当今数字化时代&#xff0c;远程连接到Linux虚拟机是许多开发者和系统管理员日常工作的一部分。然而&#xff0c;有时候&#xff0c;面对Xftp连接不上Linux虚拟机的问题&#xff0c;我们可能感到困惑和无措。这个看似小问题可能导致工作中断&#xff0c;因…

基于taro搭建小程序多项目框架

前言 为什么需要这样一个框架&#xff0c;以及这个框架带来的好处是什么&#xff1f; 从字面意思上理解&#xff1a;该框架可以用来同时管理多个小程序&#xff0c;并且可以抽离公用组件或业务逻辑供各个小程序使用。当你工作中面临这种同时维护多个小程序的业务场景时&#xf…

【MySQL】表列数和行大小限制详解

目录 限制维度 列数量限制 表的最大行大小 单个列的存储要求 存储引擎的附加限制 功能键部分 行容量限制 MySQL表的内部实现 InnoDB表的最大行大小 超出InnoDB最大行大小的处理 不同存储格式的影响 限制示例 行大小限制示例 InnoDB下 MyISAM下 InnoDB变长情况示…

Unity 桥接模式(实例详解)

文章目录 示例1&#xff1a;角色与装备系统示例2&#xff1a;UI控件库示例3&#xff1a;渲染引擎模块示例4&#xff1a;AI决策树算法示例5&#xff1a;物理模拟引擎 在Unity游戏开发中&#xff0c;桥接模式&#xff08;Bridge Pattern&#xff09;是一种设计模式&#xff0c;它…

扩散模型公式推导

这篇文章将尝试推导扩散模型 DDPM 中涉及公式&#xff0c;主要参考两个 B 站视频&#xff1a; 大白话AI狗中赤兔 本文所用 PPT 元素均来自 UP 主&#xff0c;狗中赤兔和大白兔AI&#xff0c;特此感谢。 在证明开始&#xff0c;我们需要先对扩散模型有一个整体的认知。扩散模型…