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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 常量池和运行时常量池_常量池在jvm的哪个部分

    java 常量池和运行时常量池_常量池在jvm的哪个部分前言一直在《深入理解JVM》对常量池只有一个浅薄的了解,之前也遇到过这种题目,今天还是要挑出来进行一次全方位的了解。常量池分类常量池大体可以分为:静态常量池,运行时常量池。静态常量池存在于class文件中,比如经常使用的javap-verbose中,常量池总是在最前面把?运行时常量池呢,就是在class文件被加载进了内存之后,常量池保存在了方法区中,通常说的常量池值的…

    2022年9月10日
    4
  • 组合模式解决什么问题_组合模式实例

    组合模式解决什么问题_组合模式实例组合模式 Composite动机模式定义实例结构要点总结笔记动机在软件某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象内部实现结构(而非抽象接口)地变化将引起客户代码地频繁变化.带来代码地维护性,扩展性等弊端如何将”客户代码与复杂地对象容器结构”解耦?让对象容器自己来实现自身地复杂结构,从而使得客户代码就像处理简单对象一样来处理复杂地对象容器模式定义将对象组合成树形结构以表示”整体-部分”地层次结构.Composite使得用户对单个对象和组合对象地使用具有一致性(稳定)实例树形

    2022年8月9日
    5
  • PyCharm + Anaconda + QT

    PyCharm + Anaconda + QT前言:我已经安装了Anaconda和Pycharm(教程网上有很多)配置过程:1、cmd中运行:pipinstallPyQt5-ihttps://pypi.douban.com/simple安装常用工具:pipinstallPyQt5-tools-ihttps://pypi.douban.com/simple然后,在D:\Anaconda3\Lib\site-packages路径下可以看到新安装的工具包和qt5:…

    2022年8月27日
    2
  • sublime激活码【中文破解版】

    (sublime激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月22日
    39
  • 批处理教程pdf_批处理怎么用

    批处理教程pdf_批处理怎么用批处理是Windows自带的一个脚本引擎,语法简洁、内置一些功能强大的命令,并且可以与Windows上的其他软件进行良好的通信。批处理能够提供一系统自动化处理功能,大幅提高日常工作中的一些琐碎重复事情的效率。1.概念批处理(Batch),顾名思义即是指批量处理。批处理是基于dos命令行,Windows默认内置解释器cmd.exe的脚本语言。批处理文件默认保存为.bat或.cmd。批处理是基于Dos命令行,所以批处理是没有GUI的,是运行在命令提示符终端(CommandPromptTermina

    2022年8月22日
    6
  • 如何完成域名和ip地址的绑定

    如何完成域名和ip地址的绑定

    2021年9月20日
    58

发表回复

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

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