Cinemachine初体验

Cinemachine初体验一、安装可以直接从packagemanager里面安装(踩过的坑:导入samples时可能会出现sample和当前使用的unity版本不兼容的情况,更换版本即可)二、cinemachine使用说明场景中需要已存在一个unitycamera,然后在该相机上挂载CinemachineBrain组件(ps:如果不是在timeline中使用虚拟相机的话,这两个属性会决定多个虚拟相机之间切换的方式)或者直接使用cinemachine新建相机,这样会自动在原有的unitycamera上挂载Cinema

大家好,又见面了,我是你们的朋友全栈君。

一、安装

可以直接从package manager里面安装(踩过的坑:导入samples时可能会出现sample和当前使用的unity版本不兼容的情况,更换版本即可)

二、cinemachine使用说明
场景中需要已存在一个unity camera,然后在该相机上挂载CinemachineBrain组件
(ps:如果不是在timeline中使用虚拟相机的话,这两个属性会决定多个虚拟相机之间切换的方式)
在这里插入图片描述

或者直接使用cinemachine新建相机,这样会自动在原有的unity camera上挂载CinemachineBrain组件。步骤:
在这里插入图片描述

在timeline中能够用到的是红框中的两种相机。

1、Visual Camera:

在这里插入图片描述

(ps:如果不使用timeline,priority属性高的虚拟相机会被优先启用,所以在调整相机视角时需要点击solo按钮激活当前要调整的虚拟相机)

Follow属性和body属性(follow是指相机要跟随的物体,body里选择虚拟相机跟随物体的跟随算法):
在这里插入图片描述

LookAt属性和Aim属性(类似follow和body):
在这里插入图片描述

Lens Vertical FOV:和普通unity相机一样

Noise:相机抖动的算法

总结:可以创建多个Visual Camera,调好参数以后在timeline中对相机进行融合即可

2、Dolly Camera with Track:新建一个这种相机,会生成一个虚拟相机和一条路径,运行时相机会在这条路径上移动。

在这里插入图片描述

在这里插入图片描述
勾选enabled,这样就会在相机要跟随的物体移动的时候,相机自动在路径上移动。(如果相机跟随的物体不动的话,相机是不会动的)
在这里插入图片描述

路径的设置方法:可以在场景中选中路径点调整,也可以在inspector里直接调整参数

三、cinemachine和timeline
先打开一个timeline窗口(一定要从当前场景的物体上创建或者打开timeline窗口,不然无法将虚拟相机拖到track上。因为timeline有asset和实例的概念,从场景中打开那么打开的就是一个timeline的实例,而要是选中timeline asset打开,那么打开的就只是一个asset,不会建立起和当前场景的关联),然后将带有CinemachineBrain的相机拖到timeline窗口的左侧区域中,并添加cinemachine track:
在这里插入图片描述

在这里插入图片描述

然后将设置好参数的虚拟相机拖到timeline轨道上:

以第一种方式切换相机时,相机是以过渡的方式切换的;以第二种方式切换相机时,相机是直接切换的(踩过的坑:以第二种方式切换相机时,可能会因为HDRP管线的bug导致场景闪白)。

可以将前后两个clip重叠1帧来解决这个问题;目前测试了两个修改volumeprofile的方法也可行:
一、对于有Fog的,关闭Fog在这里插入图片描述
二、把Exposure调成auto
在这里插入图片描述
以上,大概就是在timeline创建cinemachine的过程。
但是这样的问题就是这个timeline绑定到了场景中的某个物体上。如果项目里有一个timelinemanager这样的东西,就希望timeline是动态加载的。那么先可以先按照上面制作完一个timeline asset,然后在代码中进行绑定操作。

绑定操作可以参考:
timeline的动态绑定
cinemachine的动态绑定

在第二篇文章中博主说有两种绑法
在这里插入图片描述
在第二种绑法中用到了 PlayableDirector.playableGraph.GetResolver() API。这里要注意playableGraph是只有在PlayableDirector处于播放状态时才会存在(参见unity 论坛
在这里插入图片描述
第二种方法的SetResolver没找到太多相关资料,赋值一直不起作用。
看到这个,还没试

推荐第一种方法,能少踩几个坑

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140461.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python快速入门教程【转】「建议收藏」

    Python快速入门教程【转】「建议收藏」第一章Python基础知识1.1介绍1.1.1特点Python是一种面向对象、解释型计算机程序设计语言。语法简洁清晰,强制用空白符作为语句缩进。Python具有丰富和强大的库,又被称为胶

    2022年7月5日
    19
  • python支持向量机回归_支持向量机——核函数与支持向量回归(附Python代码)[通俗易懂]

    python支持向量机回归_支持向量机——核函数与支持向量回归(附Python代码)[通俗易懂]上期跟大家介绍了支持向量机的一般原理,今天继续跟大家聊聊支持向量机——核函数与支持项链回归。1核函数数据通过某种变换,使原本二维的问题通过某种函数转换到高维的特征空间,而这个函数就称为核函数。核函数有很多种,有线性核函数,多项式核函数,高斯核函数等,其中高斯核函数最为著名。核函数可以说是支持向量机的灵魂,因为现实生活中,我们不大可能通过一个线性的等式就可以完美的解决一个分类问题,总是要经过核函数…

    2022年6月5日
    37
  • Access 通用数据访问类(asp.net 2.0 c#)

    Access 通用数据访问类(asp.net 2.0 c#)

    2021年7月25日
    59
  • nginx一键部署脚本

    nginx一键部署脚本

    2021年6月2日
    95
  • MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换

    MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换一、概述在使用JavaJDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案。二、映射类型java.sql.Types定义了常用数据库(MySQL、Oracle、DB2等)所用到的数据类型,官名也叫JDBC类型。每个数据库产品的数据类型定义各不相同,但都有JDBC类型与之对应,如MySQL的BIGINT–>JDBC的BIGINT…

    2022年7月20日
    16
  • vue如何引入js文件_vue中引入外部js好麻烦

    vue如何引入js文件_vue中引入外部js好麻烦js文件一定要放在static下面,不可放在assets下面,因为assets下面的内容最终是要被打包的,而static下面的内容是不用打包直接放过去的;摘自:https://www.jb51.net/article/150517.htm遇到问题:今天做一个VUE的项目,在引入第三方依赖的JS文件时,遇到了一个问题:控制台的提示:UncaughtSyntaxError:Unexpectedtoken<按照提示进入文件,再看如下图:仔细看了看..

    2022年10月8日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号