Hello,大家好我是中公优就业的梅老师,今天来和大家分享一个非常好用的Unity相机插件Cinemachine。使用该插件可以轻松实现相机跟随,角色之间镜头的平滑过渡,甚至电影级别的镜头效果。
首先我们来看下相机跟随效果,以往我们如果要实现跟随效果需要添加脚本,在脚本中实时设置相机和人物位置同步的脚本,使用该插件后只需要将人物拖拽到相应组件上就可以轻松实现了。先来导入Cinemachine插件,导入后效果如下:
在菜单栏会显示插件,同时Project试图下显示插件的层级结构。先来搭建一个简单的场景如下图:
接下来选择菜单栏Cinemachine->Creat Virtual Camera给场景添加一个CM vcam1对象。这时候会自动给主摄像机添加一个Cinemachine Brain组件,主摄像机上的参数此时就不能修改了,通过CM vcam1对象上的组件Cinemachine Virtual Camera来调节摄像机参数。如下图:
接下来拖拽角色到Cinemachine Virtual Camera组件的Follow上,编写脚本控制角色移动,如下图:
控制角色移动,此时就可以看到相机会跟随人物移动了,效果如下:
此时可以通过调整CM vcam1对象的Transform组件的旋转值来控制相机的旋转。通过调整Cinemachine Virtual Camera组件的Body下的Follow Offset的X,Y,Z得值可以调整相机相对于角色的偏移位置。如下:
如果需要让相机一直看向人物的话可以拖拽角色到Cinemachine Virtual Camera组件的Look At上,同时为了固定相机跟随的角度的话可以设置Cinemachine Virtual Camera组件的Add Extension值选择CinemachineFollowZoom,这时就添加了一个CinemachineFollowZoom组件,可以设置Min FOV和Max FOV的值来约束相机的范围。如下图:
是不是非常的简单,如果需要实现滑动屏幕来预览角色的功能,需要选择菜单栏Cinemachine->Creat FreeLook Camera给场景添加一个CM FreeLook1对象。然后将角色分别拖拽到Follow和Look At上,效果如下:
此时场景中角色周边会出现三个红色的圆,如下图:
从上到下依次代表相机可移动的最高,中间和最低位置,每一个圆圈代表相机旋转时的轨道,每个阶段的过渡由插件自动处理,此时运行游戏滑动屏幕就可以预览角色。如果想要修改每个圆圈的高度和半径可以通过如下参数进行设置,如下图:
Top Rig,MiddleRig,BottomRig分别对应上中下三个圆圈,Height表示相对角色坐标的高度值,Radius表示圆圈的半径。相机高度的实时参数可以通过如下值取得,如下图:
该值范围为0-1,为一个系数,表示最下面圆圈到最上面圆圈的取值。0代表当前相机处于最下面圆圈,1代表处于最上面圆圈。可以通过代码获取该值来实时设置相机高度,如果想要设置相机处于圆环的哪一个角度,可以通过如下值设置,如图:
该值范围为-180-180,也可自行修改,这样就可以实时获取相机照向角色的那个角度了。
好了,今天的分享就到这里,谢谢大家。