Unity项目Lost Crypt分析-8
接下来的一些篇幅,主要来看Cinemachine。Cinemachine可以生成 多个虚拟的摄像机,这些摄像机可以控制主摄像机的位置,朝向等。Cinemachine可以实现原本许多需要用脚本和动画来控制摄像机的功能,例如可以流畅地做摄像机的切换,自动跟随目标,产生抖动以便于模仿手持相机的效果等等。总的来说非常强大。同样的,功能也非常多。多到我直接想放弃。。。可是没办法,自己开的贴,含着泪也要写完,这里先只看一下本游戏中用到的一些功能吧。
入门参考这个:https://www.jianshu.com/p/69e60a27bccb
另外还有官方的一个教程:https://learn.unity.com/project/working-with-cinemachine-cameras-2019-3?language=en
另外这篇也讲得简单明了,说明了各种相机:https://blog.csdn.net/qq826364410/article/details/80531508
在Package Manager中可以导入Sample。来查看各种使用案例。
虚拟相机
虚拟相机可以有多个(如果你担心性能问题,可以只启用需要用的,禁用其他的)。而且官方也推荐用多个相机,每个相机来专门的做不同的画面。每个相机需要的处理器资源并不多。
虚拟相机的Follow和LookAt可以用来指定需要跟随的对象和要指向的对象。
Body中的各种算法指定了如何控制相机的Follow行为,Aim中的各种算法指定了如何控制相机的旋转行为。
Brain
Brain附加到Camera,负责决定用哪个虚拟相机。当你激活一个新的虚拟相机的时候,Brain会根据优先级,使用最新激活的相机。它会自动在这两个相机的转换之间做硬切换或做过渡处理。
Dead Zone, Soft Zone
Dead Zone是要保持目标在其中的区域,Soft Zone是如果目标碰到了这个区域,那么镜头应该跟上,让它重新落回Dead Zone之中。Damping表示落回的速度。下图中,无色表示Dead Zone, 绿色表示Soft Zone,红色叫做No Pass。表示绝不让目标到达此区域。
Dead Zone & Soft Zone
游戏中的镜头切换
有了上述的表述,游戏中的镜头切换就比较简单了。在 Trigger - Intro Transition - Far To Near这个脚本中,只简单地做了一件事:当主角进入区域后,让Near Camera激活。然后Brain就会自然地过渡到近景。我们进入Play状态,然后手动地激活,也能看到类似的效果。如下图。看起来还是比较简单的(虚惊一场,先擦擦眼泪)。另外,游戏中的相机还有一个Confiner,来限制相机的移动。近景相机有加Noise,但是因为Amplitude为0,所以看起来一点都不抖。
camera.gif
其他高级功能,后续有时间再单独看吧。