5分钟入门Cinemachine智能相机系统

摘要:相机是Unity世界的眼睛,一个智能相机更是能帮咱们节省大把的时间和精力。Cinemachine现在已经大量应用到各种项目中,如果你还没有用过Cinemachine,墙裂建议你来体验一下。

你好,我是跟着大智学Unity的萌新,我叫小新,这是我本周的学习总结报告哦。

Cinemachine入门

Cinemachine入门还是很容易的,5分钟足矣,但是深入去研究里面也有很多门道。

安装

Cinemachine是Unity官方开发的一个免费的插件。目前Cinemachine最新版为2.5,支持Unity 2017.1及以上版本。

从Unity 2018.1开始,Cinemachine可以从Package Manager安装。之前的Unity版本可以从Asset Store中下载安装。

安装好Cinemachine之后,菜单栏会有一个新的菜单项叫:Cinemachine。

Cinemachine没有外部依赖包,安装后就可以使用。Cinemachine还可以和Post Processing Stack(场景后处理工具)一起使用

从旧版Cinemachine升级

如果你从Asset Store安装过Cinemachine,现在想从Package manager中升级到最新版本。那需要注意以下步骤:
1、用Unity2018.1或之后的版本打开工程。
2、新建一个空场景(防止升级时场景中脚本引用丢失)。
3、在Project窗口中删除Cinemachine文件夹以及相关资产(如CinemachinePostProcessing相关资产)。
4、在Package Manager中安装Cinemachine包。

Cinemachine基本使用流程

使用Cinemachine时需要用一种新的方式来思考相机:你可能之前研究的都是如何通过脚本来更好的控制相机,但是在Cinemachine中,你需做的是各种相机的不同用途,快速创建出想要的相机然后调他们的参数就可以了。

虚拟相机

从菜单栏Cinemachine > Create Virutal Camera创建虚拟相机。

Cinemachine能控制大量相机,但是它并不创建新的相机,它通过控制Unity相机来实现多机位的效果。如何实现的呢?在Cinemachine中有一个虚拟相机的概念。虚拟相机是相机的一些设置,用于控制Unity相机的移动、旋转以及相关设置。

每个虚拟相机是一个单独的物体,独立运行,也和场景中的相机没有直接关系。例如,你的场景可能长这样:

虚拟相机有什么功能呢?

  • 决定Unity相机在场景中的位置
  • 决定Unity相机的朝向,并跟踪某物体
  • 为相机添加程序化的晃动,比如手持相机效果或者车辆的震动

Cinemachine系统鼓励你创建多个虚拟相机。虚拟相机有很好的性能,不用过多担心会出现性能问题。如果你的场景对性能很敏感,可以禁用当前使用的虚拟相机以外的所有的虚拟相机,这样能达到极致性能。

虚拟相机的一个最佳实践是:一个镜头使用一个虚拟相机。例如:

  • 对于两个角色对话的过场动画,使用三个虚拟相机:一个相机用于两个角色中间的镜头,单独的虚拟相机用于每个角色的特写镜头。然后使用Timeline同步音频与虚拟相机。
  • 复制一个现有的虚拟相机,这样两个虚拟相机在场景中的位置相同。对于第二个虚拟相机,稍微改变一下FOV或构图。当玩家进入触发区域时,Cinemachine会从第一个虚拟相机过渡到第二个虚拟相机,用于强调变化。

同一时间仅有一个虚拟相机控制Unity相机,这个虚拟相机被称为活动虚拟相机(live virtual camera)。例外情况是从一个虚拟相机混合到另外一个虚拟相机的时候,混合阶段两个虚拟相机都是活动状态。

2、添加Cinemachine Brain

通常这一步不需要你手动添加,因为在第一步创建Virtual Camera时会自动给Unity相机添加Cinemachine Brain组件。

CinemachineBrain是挂在Unity相机上的一个组件。这个组件会跟踪场景中所有的活动虚拟相机。你可以通过激活/禁用虚拟相机物体来指定下一个活动虚拟相机。

Cinemachine Brain在运行时可以响应各种事件,这样可以通过逻辑动态控制相机。因为在游戏中,很多动作是不可预测的。

3、配置VirtualCamera的移动和旋转策略

使用VirtualCamera组件中的Body属性来设置相机如何移动。使用Aim属性来设置相机如何旋转。

虚拟相机有两个跟踪目标:

  • Follow指定了相机跟随移动的目标。
  • Look At指定了相机瞄准的目标。

Cinemachine中包含了各种用于相机控制和瞄准的算法。每个算法提供了一种特定的方式,你可以通过设置算法的属性来满足你的特殊需求。你也可以通过继承CinemachineComponent来实现自定义的移动和瞄准的行为。

Body属性提供了下列算法来移动虚拟相机:

  • Do Nothing:不移动虚拟相机
  • Framing Transposer:在屏幕空间,保持相机和跟随目标的相对位置,可以设置缓动。
  • Hard Lock to Target:虚拟相机和跟随目标使用相同位置。
  • Orbital Transposer:相机和跟随目标的相对位置是可变的,还能接收用户的输入。常见于玩家控制的相机。
  • Tracked Dolly:相机沿着预先设置的轨道移动。
  • Transposer:相机和跟随目标的相对位置固定,可以设置缓动。

Aim属性提供了下列算法来旋转相机对准Look At的目标:

  • Composer:将目标保持在相机镜头内,可以设置多种约束
  • Group Composer:将多个目标保持在相机镜头内
  • Do Nothing:不旋转相机
  • POV:根据用户的输入旋转相机
  • Same As Follow Target:将相机的旋转和跟随目标的旋转同步
  • Hard Look At:将Look At目标固定在镜头中心的位置。

4、配置镜头构图

上面第3步提到的Framing Transposer、Composer和Group Composer算法定义了镜头的几个特殊区域,可以用于镜头构图。

  • Dead zone:Cinemachine会将目标保持在这个区域,目标在这个区域时,镜头保持不动。
  • Soft zone:如果目标进入这个区域,会触发相机的移动和旋转,将目标重新移回dead zone。这个过程可能很快,也可能很慢,取决于Damping属性设置。
  • Screen:Dead zone区域的中心在屏幕上的位置,可以不在整个游戏屏幕的正中间。
  • Damping:模式现实世界中操控相机时的延迟。Damping设置了目标进入soft zone后相机的反应速度。数值越小,相机反应越快,会更快地操作相机把目标保持在dead zone。数值越大,相机反应越慢,跟随目标回到dead zone所需的时间也就更长,可以用来模拟一个很笨重的摄像机。

组件中的Game Window Guides勾选后,可以在Game窗口可视化的查看/编辑构图区域。最外圈是no pass zone,也就是目标从来不会到的位置。中间的黄色小方块代表了target的位置。

通过拖拽每个区域的边缘或者调整Inspector上的数值来调整这些区域。调整这些区域可以得到多种多样的相机行为。比如使用更大的damping值模拟笨重的相机;增加dead zone和soft zone来创建一个对目标运动不敏感的相机。

5、配置模拟相机的晃动

现实世界的摄像机通常比较笨重,由摄影师手持或者绑在车辆上。使用Noise属性可以模拟这些效果。例如,你可以给相机添加晃动来跟随一个向前跑的角色以获得更好的沉浸感。

每帧更新后,Cinemachine给相机单独添加晃动。这些晃动不会影响相机后续的位置和镜头。这样可以保证虚拟相机运行结果的一致性。

总结

小新:“上面就是配置一个Cinemachine虚拟相机的基本流程,经过这些步骤之后,就有了一个初步能用的虚拟相机了。动动手试试调节一下这些属性,看看有什么不同的结果。后面咱们继续一起来探索这些属性的详细信息。”

【扩展学习】洪流学堂公众号回复timeline可以下载Timeline&Cinemachine系列教程全文带目录PDF


好了,今天就就让小新絮絮叨叨到这里了。没讲清楚的地方欢迎评论,不点赞收藏我可能不会回复你的哦(¬、¬) (¬_¬)

我是大智,你的技术探路者,下次见!

别走!点赞收藏哦!

好,你可以走了。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

立体视觉入门指南(1):坐标系与相机参数

亲爱的同学们,我们的世界是3D世界,我们的双眼能够观测三维信息,帮助我们感知距离,导航避障,从而翱翔于天地之间。而当今世界是智能化的世界,我们的科学家们探索各种机器智能技术,让机器能够拥有…

camera学习入门指南

等待补充。 1.背景介绍 近年来,随着消费电子领域市场的快速增长,如安防、图像等领域,camera市场得到了快速发展。智能手机这几年以拍照作为主打卖点,带动了camera(CCM)出货。 具体可以看电子行业分析或者券…

机器视觉——入门基础(三)——相机镜头选型

目录 相机选型 分辨率、快门、帧率、色彩、靶面、接口 镜头选型 分辨率、靶面、焦距、接口、光圈畸变工作距离 常用计算示例 相机选型 分辨率、快门、帧率、色彩、靶面、接口 镜头选型 分辨率、靶面、焦距、接口、光圈畸变工作距离 常用计算示例 1. 面阵相机和镜头选型 已…

划重点!| 必须了解的工业相机入门级知识

工业相机是机器视觉系统的核心部件,其相关基础知识是行业内人员必须熟知的。那么分辨率、像素深度、行频、信噪比具体是指什么?CCD和CMOS又该如何去进行选择?今天我们就对这些内容进行一个简单的梳理,希望能够帮助大家了解更多。 …

机器视觉——入门基础(一)—— 相机篇

目录 一,相机就是CCD么? 二,像素。 三,像素直径。 四,CCD的大小。 五,快门速度。 六,增益。 七,1D相机(线扫描相机) 八,3D相机。 九&…

IP 协议的相关特性和数据链路层相关知识总结

目录 IP 协议的相关特性 一、IP协议的特性 二、 IP协议数据报格式 三、 IP协议的主要功能 1. 地址管理 动态分配 IP地址 NAT机制 NAT背景下的通信 IPV6 2. 路由控制​​​​​​​ 3.IP报文的分片与重组 数据链路层相关知识 1、以太网协议(Ethernet) 2.M…

掌握Python的X篇_28_python包管理工具pip命令

本篇将会介绍在实际使用python中最能节省效率的内容,利用第三方库拿来就用。 文章目录 1. pip命令是什么2. pip相关操作2.1 list2.2 install2.3 uninstall2.4 导出和导入2.4.1 freeze命令2.4.2 “-r” 3. 国内镜像4. Python Packges Index网站 1. pip命令是什么 p…

DiskGenius分区移动硬盘

打开DiskGenius 右键点击1T(实际显示是900多G)的移动硬盘,选择快速分区 分区个数按自己需要来选,卷标也按自己需要来修改,取消主分区的勾选框,因为是移动硬盘,不需要转操作系统,所以…

AUtoCAD Civil 3D-曲面-原始数据处理

Civil3D中,曲面是最重要的一个对象之一。曲面涉及到的知识点比较多,作为一个刚接触Civil3D的学习者,可能对于各种概念和各种概念之间的关系比较迷惑。这篇文章及梳理下曲面的一些重要的概念框架。 1、 曲面的分类 曲面可以分为四种类型&…

如何将卫星影像或者航拍影像叠加到CAD设计图上(Auto CAD版)

同步视频教程:卫星图像应用到AutoCAD工程设计(套合、叠加、配准)-Bigemap GIS Office 视频教程:如何选择中央子午线或者分度带 第一步 工具准备 BIGEMAP地图下载器:Bigemap系列产品-GIS行业基础软件kml\shp 相关教…

AutoCAD套合(叠加)卫星影像和矢量路网数据-CAD配准

BIGEMAP无偏移影像叠加配准(Auto CAD版) ​ 同步视频教程:http://www.iqiyi.com/w_19rubyfogh.html 专题地图制作视频教程:http://www.iqiyi.com/w_19rvlbep4l.html#vfrm16-1-1-1 下载:全国路网数据、全国水系矢量 …

cad图转成shp文件并把其平面坐标投影配准成大地坐标(配准针对没有底图的情况)

所需工具:arcmap,supermap(这里安装过程就不写了,网上一堆,自行搜搜吧。) 一、先将cad图转成shp文件 打开arcmap中,在图层中加入数据。 在arcmap中导入cad图后,选择需要的要素导出。比如,这里需要面要素,右击面要素,选择数据,点击导出数据。 选择将要导出shp文件…

history记录日期时间和日志记录操作

history命令能查看到操作日期和时间的配置方法: 1)在/etc/profile文件中添加一行: export HISTTIMEFORMAT"%F %T whoami " 2)保存后,执行加载命令: source /etc/profile 3)然后检…

ASP.NET Core - 缓存之分布式缓存

分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比&am…

【SWAT水文模型】SWATCUP率定参数实例-以洮河流域为例

SWATCUP率定参数实例 以SWATCUP首次模拟结果为例,具体模拟结果如下: 模拟参数结果如下: Parameter_Name Fitted_Value Min_value Max_value 1:R__CN2.mgt -0.180000 -0.200000 0.200000 2:V__SUR…

深入浅出流批一体理论篇——数据架构的演进

一、前大数据时代 人人都知道罗马不是一天建成的,但没人告诉过你罗马是怎样一天天建成的。你看见罗马时,它就已经是罗马了。当我进阿里时,正是这样的感觉。我没有经历过阿里数据架构(包括平台工具)从0到1的过程。我相…

linux镜像下载与安装

https://www.kernel.org/ 中国科技大学网站:http://centos.ustc.edu.cn/centos/ 清华大学网站:https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/ http://mirror.centos.org/centos/7/isos/ Centos7.6 安装 1、引导进入安装界面后,选择安…

linux系统镜像官方下载地址

Centos镜像 http://mirror.nsc.liu.se/centos-store/7.2.1511/isos/x86_64/ #所有镜像下载地址 https://www.centos.org/download/ 这里选择的是centos7,64位系统 选择国内的镜像即可 选择第一个镜像文件下载 Ubuntu镜像 ubuntu 后面跟LTS(Long Term Support )&#xff0…

Linux系统各发行版镜像下载

标题Linux系统各发行版镜像下载,包括CentOS、RedHat Enterprise Linux、Ubuntu、Fedora、SUSE等。 建议选择地域离您比较近的服务器。 1、搜狐 http://mirrors.sohu.com/ 例如: CentOS7.7的下载目录是http://mirrors.sohu.com/centos/7.7.1908/isos…

下载虚拟机安装linux镜像(图形化)

1、下载虚拟机的网址 https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html 这里选择第一个windows的版本,直接下载安装就好了,里面需要的序列号百度找一下就好了 我的虚拟机版本是15.5的,这里就没用详细…