文章目录
- 一.什么是Cinemachine
- 二. Cinemachine基本功能
- 三.所有相机功能
- 1.Create 2D Camera(创建2D虚拟相机)
- 2.Create Virtual Camera(创建常规/普通虚拟相机)
- 3.Create Dolly Camera With Track(推轨相机)
- 4.Create ClearShot Camera(切镜相机)
- 5.Create FreeLook Camera(*观察相机)
- 6.Create State-Driven Camera(状态驱动摄像机)
- 7.Create Target Group Camera(摄像机跟随多个物体)
- 8.Create Blend List Camera(混合列表摄像机)
- 9.Create Mixing Camera(混合相机)
- 10.Create Dolly Track With Cart(物体轨道编辑)
一.什么是Cinemachine
目标就是让故事的讲述者容易的操作镜头,快速的创建一组摄像机(Sequencing)序列.timeline的布局本身就在Sequencing序列之下。
二. Cinemachine基本功能
1.导入Cinemachine
Window–>Package Manager–>搜索Cinemachine
2.Cinemachine所有功能
三.所有相机功能
1.Create 2D Camera(创建2D虚拟相机)
创建后会在Hierarchy创建一个CM vcam1游戏物体
游戏物体上只有一个CinemachineVirtualCamera组件
并且在Main Camera(主摄像机)上添加一个CinemachineBrain组件
(1)CinemachineBrain组件
我们的游戏可能会有三到四个虚拟相机,我们的主相机到底决定使用哪个虚拟相机渲染画面由CinemachineBrain来控制的。
CinemachineBrain就相当与艺术总监或者技术总监,他是像一个指挥官一样在Unity项目中控制指挥所有的我们场景上的虚拟摄像机。
所有属性:
1.Live Camera:当前Live正在直播使用的虚拟相机。
2.Live Blend:两个虚拟相机混合时显示的状态。
Show Debug Text:当前直播,激活的虚拟相机名称以及之后的混合状态(显示在Game窗口左上角位置)
Show Camera Frustum:默认勾选,在场景窗口显示相机的视锥。
Ignore Time Scale:不会收到Time.timeScale的影响(粒子,动画都有类似功能)
World Up Override:复写世界坐标系的Up向上Y轴方向,如果这个数值为None,空的话,则是世界坐标系的Y轴。在一些极端向上和向下的情况下,这里的设置会极大的避免gimbal-lock万向节锁
Update Method:虚拟相机在什么时候更新Pos和Rotation。
Blend Update Method:何时在主相机上进行混合以及Update更新.
Default Blend:相机之间融合效果在什么时候进行更新。
Custom Blends:自定义融合,混合效果。创建一个资源文件自定义从VC1到VC2,花费多少时间,什么融合效果等等。
Events:一个是Cut Event,任何情况下只要虚拟相机正在控制,就会触发;另一个是相机激活状态时触发的事件。
(2)CinemachineVirtualCamera组件
0.Priority:虚拟显示优先级。数字越高,多个虚拟相机值越高优先渲染。
1.跟随属性:Follow和Look At
3D中的LookAt对相机的影响比较大,在2D中LookAt的效果并不明显。
2.虚拟相机中调整的数值将会同步到主相机对应的数值上,主相机是无法手动控制的,也无需设置,全部通过虚拟相机来设置。
3.GameWindowGuides:是否要在Game窗口显示线框。
4.Lens:相机的一些参数设置。
5.Save During Play:勾选的话.运行状态下做出的修改会保存。
6.虚拟相机本质是跟随Game窗口中那个黄色的圆点进行的移动。
7.Damping(阻尼系数):值越大,跟随越慢
8.Screen(摄像机屏幕中心点):也就是小黄点在屏幕上的位置,默认是0.5,0.5. 摄像机聚焦的中心点。
9.Dead Zone(死区/视角盲区):当玩家在该区域(图中无颜色的区域)时,相机是不会移动的。
10.Soft Zone:软区:让玩家处于绿色方框区域时,相机时跟随移动。
11.视角区域:
12.Lookahead:
移动时提前探探路,相机不是跟着人物,而是跟随小黄点,如果Lookahead是0的话,小黄点在移动的时候在屏幕位置是不变的,反之,则会发生改变。
Lookahead Ignore Y:忽略Y轴的视角变化。
13.设置视角的区域限制
(1)confiner:限制范围,*,紧闭区。
设置一个Collider来限制摄像机的移动。
14.多个虚拟摄像机的切换
当设置区域后通过触发器来实现,将下列脚本添加到区域限制的Collider上。
using UnityEngine;
//通过Priority优先度来控制虚拟相机的播放
//开启/禁用虚拟相机来达到Blend混合融合的效果
public class SpaceControl : MonoBehaviour
{
public GameObject CinemachineVirtualCamera;
private void OnTriggerEnter2D(Collider2D other)
{
CinemachineVirtualCamera.gameObject.SetActive(true);
}
private void OnTriggerExit2D(Collider2D other)
{
CinemachineVirtualCamera.gameObject.SetActive(false);
}
}
2.Create Virtual Camera(创建常规/普通虚拟相机)
(1).Follow和LookAt的区别:
Follow:与目标的位置发生变化。主要改变的是Position
LookAt: 视角发生变化。主要改变的是Rotation
(2).视角噪声Noise:
模拟笨重物理相机效果。
Noise Profile:相机抖动噪声种类
Amplitude Gain:相机抖动的振幅。
Frequency Gain:相机抖动的频率。
可以自定义创建Noise,创建位置 Create-->Cinemachine-->NoiseSettings
(3).点击Solo按钮单独展示该视角
(4).使用timeline来进行视角切换
将对应的虚拟相机拖入即可
(4).相机之间的过渡
- Cut Scene 直接切换
- Blend Scene 混合过渡
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210528190953563.PNG?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3E0OTMyMDE2ODE=,size_16,color_FFFFFF,t_70
3.Create Dolly Camera With Track(推轨相机)
创建后会生成两个GameObject,一个虚拟摄像机,一个虚拟摄像机的路径。
有两种方法控制相机轨道的移动:
(1).在Timeline中创建动画轨道对虚拟相机中的Path Position数值进行控制,达到轨道移动的效果
(2).设置虚拟相机中的Follow属性,并且将AutoDolly激活。相机会自动选择轨道里离跟随物体最近的位置。
当两者都设置时只有后者起作用。
4.Create ClearShot Camera(切镜相机)
设置多个摄像头,当物体遮挡时,会选择最佳的遮挡镜头,来渲染游戏物体。
相机之间的切换有两个因素影响:
1.相机与目标物体之间是否有遮挡。遮挡设置可由Cinemachine Collider设置
2.如果相机之间有重合的地方则由相机优先级决定。
5.Create FreeLook Camera(*观察相机)
一般用于第三人称跟随角色时使用,他可以做到继跟随角色又可以*的旋转视角。
6.Create State-Driven Camera(状态驱动摄像机)
根据不同的动画状态来驱动切换相机。
首先创建状态机驱动相机(CinemachineStateDrivenCamera),将控制角色的状态机赋值给Animated Target,在对应位置给对应状态选择对应的摄像机,其中包括摄像机之间切换需要花费的时间都可以设置。
7.Create Target Group Camera(摄像机跟随多个物体)
Target Group Camera可以实现相机跟随多个物体移动的效果,确保多个物体都在摄像机范围内
8.Create Blend List Camera(混合列表摄像机)
可以让多个摄像机按照一定的次序来回显示。
9.Create Mixing Camera(混合相机)
可以混合多个相机,最终相机的位置参数由各个相机的权重来确定.
10.Create Dolly Track With Cart(物体轨道编辑)
创建后生成两个GameObejct。
DollyCart是移动的组件,可以将需要移动的物体放入成为其子物体。
DollyTrack1是路径编辑器,编辑移动的物体的路径