游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2332

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 2428|回复: 18

[bxh883] 快速了解Unity2017新功能:Cinemachine(2)

[复制链接]  [移动端链接]
排名
1101
昨日变化
1

10

主题

96

帖子

1421

积分

Rank: 9Rank: 9Rank: 9

UID
3876
好友
0
蛮牛币
2998
威望
0
注册时间
2013-9-14
在线时间
331 小时
最后登录
2018-8-30

专栏作家

发表于 2018-4-21 17:15:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 bxh883 于 2018-4-21 17:15 编辑

简介
上一篇文章我们大概介绍了Cinemachine的概念和一些基本的属性,今天我们来更深入的认识Cinemachine,并且动手实践一番,创建一个基础的
VirtualCamera制作一个镜头跟随动画,以及制作一个2D游戏常见的场景和镜头效果。
温故知新
我们回顾一下Cinemachine的重要概念,CinamachineBrain和VirtualCamera,brain控制激活哪一个虚拟相机来控制真实的Camera,虚拟相机
可以根据我们的不同需求来设置。
实践1
  • 创建一个Cube,为这个cube创建一个平移动画。命名为translation
  • 创建一个Cinamachine Virtual Camera,通过菜单栏Cinemachine->Create Virtual Camera。命名为CM Vcam1。
  • 将Cube设置为CM Vcam1的follow对象。

完成,点击play查看我们的成果。
我们会看到摄像机会跟随我们的cube一起移动。
OK咱们的位置跟随效果达到了,在上一篇我们说过,Follow和Body是相关联的。那就来仔细看看跟Follow有关的Body属性的参数吧。
Body的第一个属性就是设置摄像机的跟随类型,默认类型是Transposer,按照官方文档的解释,Transposer只改变摄像机在空间中的Position。
Transposer
  • Follow Offset
      设置摄像机和Follow的物体的相对位置。
  • Binding Mode
      对FollowOffset的补充设定。主要有3种类型:

    • LockToTarget 摄像机和物体的位置以物体的自身坐标系为标准,假设我们的FollowOffset设定成(0,0,-10),
      当我们转动物体的时候,我们的摄像机也会跟着改变位置以保持(0, 0, -10)的相对位置。
    • WorldSpace 摄像机和物体的位置以世界坐标为标准,这个时候在不改变物体的位置情况下,我们无论怎么转动物体都没有关系了,
      摄像机和物体的位置保持在世界坐标中的相对关系。
    • SimpleFollow 摄像机和物体的位置以摄像机坐标系为标准,在摄像机的坐标系中使摄像机和物体保持相对的位置关系。

  • 一些影响位置改变响应速度的参数
      如:X Damping,Y Damping,Z Damping等,值越小改变位置的响应速度更快

OK,现在咱已经弄明白了Virual Camera上的Body属性,下面再来看看Aim属性。同样的,我们也先动手来做一做。
  • 将follow对象上的cube物体去除,把我们的cube设置为CM Vcam1的LookAt对象。
完成,点击Play查看我们的成果。
我们会看到摄像机本身的位置不会发生变化,但是会根据cube的移动发生转动,而且Game试图里也出现了很多奇奇怪怪的线框(如果没有,需要打开GameWindowGuides)。
OK咱们的视线跟随效果达到了,在上一篇我们说过,LookAt和Aim是相关联的。那就来仔细看看跟LookAt有关的Aim属性的参数吧。
我们会发现在Aim属性中也有摄像机的实现跟随类型,默认的选择是Composer,按照官方文档的解释,Composer只改变摄像机在空间中的Rotation。
Composer
  • Tracked Object Offset
      设置摄像机的视线和物体的相对位置关系,如修改这个值为(0, -1, 0)这个时候我们的视线在cube物体下方1个单位的地方。Game视图中的中心黄点就是我们的视线位置。
  • Lookahead Time
      可以理解为摄像机对物体进行追踪后的惯性,值越大惯性越大。
  • Lookahead Smoothing
      在设置了LookaheadTime后才能看出效果,值越大,在产生惯性后镜头的转动越平滑。
  • Horizontal Damping, Vertival Damping
      摄像头发生转动的灵敏度,值越小响应速度越快。
  • Screen X, Screen Y
      物体在屏幕中的偏移位置,修改后摄像机会跟随物体发生旋转。
  • Dead Zone X, Dead Zone Y
      代表Game视图中透明区域的范围。透明区域的作用是,当物体的移动要超出这个区域时,摄像机开始转动跟随物体。
  • Soft Zone X, Soft Zone Y
      代表Game视图中蓝色区域的范围。蓝色区域的作用是,当物体的移动超出透明区域时拥有一个缓冲区域,这个效果在Damping值较大时体现的比较明显。
      当物体的移动超过蓝色区域,进入红色区域时,摄像头会立刻调整视线,对物体进行追踪(这时候的效果相当于Damping=0)。
  • Bias X, Bias Y
      对SoftZone的区域进行偏移。

OK, 现在咱们也充分认识了Transposer和Composer,接下来该怎么玩就随大伙了,好好把玩把玩这有意思的摄像机吧。
实践2
现在我们制作一个2D游戏常见的场景。如果你忘记了2D场景是什么样子的,那么请你打开FC版超级马里奥或者拳皇97,重温一下儿时的回忆。
  • 如图搭建一个快速场景,MainCamera选择Orthographic,我们的球体就是这个场景的主角
  • 在菜单栏选择Cinemachine-> Create 2D Camera,创建一个新的2D虚拟相机,将相机命名为2DCMVcam
  • 将球体设置为2D相机的Follow对象,在Lens设置中,将OrthographicSize的值设置成5,Body属性中,选择FramingTransposer

  • 点击Play!
就这么简单的几步,我们就创建了一个基本的2D相机,而且效果看起来还不赖。
但是有一个问题,现在我们可以看到穿帮的场景,这不是我们想要的,我们作为第九艺术怎么能穿帮呢!
不怕,我们还有解决方案。
  • 选择我们的2DCMVcam,在Extensions中添加CinemachineConfiner
  • 为我们的2DCMVcam添加一个边界的碰撞形状。目前的碰撞只支持PloygonCollider

点击Play,愉快的解决了我们的边界穿帮问题!Cool!
结尾
其余的相机效果大家可以在阅读文章后自己动手实践一番,当然实践的过程中有遇到什么问题,可以提出来,我很乐意和大家一起分享。
这是Demo的Github地址(https://github.com/aaBaO/DemoRepository)欢迎大家Fork过去参考



评分

参与人数 1鲜花 +2 收起 理由
LJYturbo + 2 很给力!

查看全部评分


回复

使用道具 举报

4四处流浪
377/500
排名
5795
昨日变化
2

0

主题

48

帖子

377

积分

Rank: 4

UID
150093
好友
0
蛮牛币
740
威望
0
注册时间
2016-5-28
在线时间
105 小时
最后登录
2018-10-19
发表于 2018-4-23 10:07:22 | 显示全部楼层
666666666666666666666666666666666

回复 支持 反对

使用道具 举报

4四处流浪
407/500
排名
6365
昨日变化
2

0

主题

77

帖子

407

积分

Rank: 4

UID
253671
好友
1
蛮牛币
867
威望
0
注册时间
2017-11-10
在线时间
132 小时
最后登录
2018-10-19
发表于 2018-4-23 14:27:26 | 显示全部楼层
越来越强多大了

回复

使用道具 举报

6蛮牛粉丝
1048/1500
排名
2858
昨日变化

0

主题

286

帖子

1048

积分

Rank: 6Rank: 6Rank: 6

UID
228538
好友
9
蛮牛币
2198
威望
0
注册时间
2017-6-24
在线时间
282 小时
最后登录
2018-10-19
发表于 2018-4-24 09:51:01 | 显示全部楼层
感谢分享,解决了相机好多的问题,组件真人性化
[发帖际遇]: UnityTerminator 捡了钱没交公 蛮牛币 降了 1 . 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
551/1000
排名
5221
昨日变化
1

0

主题

163

帖子

551

积分

Rank: 5Rank: 5

UID
267103
好友
0
蛮牛币
1067
威望
0
注册时间
2018-1-31
在线时间
130 小时
最后登录
2018-10-19
发表于 2018-4-25 10:13:43 | 显示全部楼层

回复

使用道具 举报

排名
38223
昨日变化
30

0

主题

35

帖子

50

积分

Rank: 2Rank: 2

UID
277282
好友
0
蛮牛币
0
威望
0
注册时间
2018-4-16
在线时间
9 小时
最后登录
2018-5-3