文/一条大鱼
本文以《黑神话:悟空》为例,逐帧讲解一些基础层面的、实现方面的东西。
前言:由于本人不熟悉UE4,很多东西都是从Unity的角度出发,所以放在UE4上不一定对。视频内容反映出的东西不多,所以可能有些实现方法是错误的。
【00:00:20.03】视频最开始的时候,可以看到墙面上的影子浮动
说明照出这个影子的光源是个烛火,火光用的是Point Light(点光源),仔细观察可以看到烛光有一个微小的明暗变化,这里是给点光源强度做了一个随机,范围很小
影子在动,说明这里有风,用的是Wind zone(区域风)
风吹烛火的效果,实现方法跟“风吹草动”的实现方法类似,一般是Time sin cos,再加个位移频率。
【00:00:27.09】这里有一个下雪场景
仔细观察雪花,可以发现雪花在下落的过程中会逐渐消失,这里可能用到了UE4里的“粒子动态模糊”,配合一个区域风,雪花落在表面上,目测是没有一个形成积雪的效果,所以这里应该是加了一个actor Destroy,用于雪花碰撞销毁,并且设定了一个销毁的随机高度。
讲真,由于雪花落在地面上逐渐形成积雪的效果,需要不断的合并和删除雪花的“载体网格”,消耗比较大,所以很少有人会做真实积雪。大家如果有其他形成积雪的方法,欢迎交流
如果是一个关卡场景的话,也可能把雪花直接做成了几个区域特效,特效放在固定位置循环播放,这样最省事。
这里还有一个迷雾的效果,雾在微微的不规则动,猜测是用shader模拟了“高度雾”,“远近雾”,这样做可以省性能,缺点就是每个“雾”体都得用,然后按个设定数值,需要美术花时间调整。
【00:00:42.08】可以看到竹林在随着风动,竹叶也随着风飘落
但是地上的草没受到风的影响,右边的草一动不动,中间的草自己动自己的不受风向控制,说明中间的“草随风动”效果是通过“材质”方法处理的,右边的草没处理所以没动。
【00:00:55.08】可以看到这里有一个光源从上往下打出来
锥形的光源,实现方法是光源透过一个孔洞设下来,这种方法可以使光的形状可以随意变换。光越往下边越模糊,通过设定光强实现。
注意画面中石像的部分,如果光是往下呈一个圆锥状照射到石像上的话,那么这里的石像不会只被照亮一个顶部,石像下边也会被光照亮,这里小概率是用若反光材质处理了石像下半部分,大概率是用一个单独的点光源照射石像。
【00:00:55.08】老头子脑袋的影子,从屏幕方向照在了肩膀上,说明这个视角下,还有一个Point Light(点光源)是从屏幕斜着打过去的。
【00:01:34.01】金蝉进入镜头,仔细观察镜头的跟随效果,就像平时你看蚊子飞,蚊子飞的很快,你的眼睛追着蚊子飞行路径的感觉,这里是用到了摄像机的“延迟旋转”功能。这个功能在飞行游戏里比较常用,比如《战机世界》。“延迟旋转”效果随着摄像机的拉近,逐渐变慢。瞎猜的,不一定对。
有一个细节,就是实际游戏中,金蝉是不可能贴地飞行的,也是不可能落地的。他只可能在一定高度范围内飞行,而且小概率情况下,飞的时候你最多只能控制方向,其他啥也不能做。大概率是行进路线固定,不能操控。
【00:01:41.06】观察屏幕左上角的树,有一次非常明显的材质清晰度切换,植被从模糊突然变得清晰,说明这里用了lod层级进行处理,而且层级之间差距拉得相对比较大,推测性能上还是需要进行很大的优化。
【00:01:45.10】一只狼人怪举着火把走了过来,火焰把狼人的脸照的跟猴屁股似的,同时火焰往位移反方向飘动,狼人脸上的光并没有随着火焰形态变化,说明这里是加了单一的Point Light(点光源)和火焰特效“粒子跟随”。狼人及后边几只怪物是按固定路线自动行进,动作固定。
【00:01:45.01】小怪开始说话,声音大小随着距离变化,这里用到了Spatial Blend,数值=1,是3D声效果,让声音近大远小。
【00:01:49.02】金蝉拐弯的时候,模型做了一个倾斜,摄像机做了一个“延迟旋转”,整个身体也是反向屏幕做了一个倾斜,这是一个比较细节的设定。
【00:02:12.02】金蝉遇到“明视”怪,触发事件,从悬停动作,转到idle动作的时候,卡顿了一下,一个是“动作过度”没做好,其次是idle动作做得有点尬
这里科普个东西,想要触发一个事件可以有很多方法,这里金蝉遇到小怪变身这段儿,还有后边遇到狼人、捡起赤潮、遇到土地公、轰龙,都是用的范围触发,即角色走到一个范围内,就会触发事件,通常是一个圈儿。这里也给大家留一个小思考题:就是触发事件时候,摄像机的变化。
【00:02:13.02】金蝉开始变成猴子,播了一个大特效,特效由慢变快。
观察猴子出现开始后前后两帧的变化,可以看出,这里是给猴子做了一个单独的idle动作,让他从特效中心里背对着敌人,从屏幕这一侧出来,随后接一个转身动作,是为了让玩家看到整个转身动作。并让玩家感觉到猴子是“蹦出来的”,恩,蹦出来的~~~
【00:02:14.18】这里加了一个强制转向 强制动作切换
强制转向的原因是转身落地动作的播放角度没对准。
动作切换时候,动作有震动,棒子突然变小,猴子的手也脱离了棒子, Piont和“动作过度”的问题,但还有一种可能,就是其中蹦出来的动作是通过动作演员生成的,idle是公司里美术做的,两种动作制作质量不一样,融合在一起就“震”了。
【00:02:16.21】这里猴子第一次进入战斗,这里有2个知识点
首先是镜头,这里用了一个“镜头锁定”,随着猴子位置变化,镜头始终盯着小怪,进行自动转向。
猴子在跑动的过程中,可以观察到一个身体朝向的变化,猴子往右边跑的时候,身体朝向先是朝向左边,后是朝向右边。完成这个变化用到了一个摄像机、猴子、小怪之间的夹角。如下图所示
这个夹角A,小于一定值时,猴子身体朝向移动方向,当夹角A大于等于一定值时,猴子身体朝向移动方向的反方向。
【00:02:17.11】猴子的第一次翻滚结束,立即切换到了一个站立动作,随后进行第二次翻滚。这里的站立动作应该属于第二次翻滚动作的一部分。也就是说,第一次翻滚动作还没结束的时候,操作者进行了一次疯狂滚键盘,使得第一次翻滚动作进入后摇时被强制打断,进而立即站立起来开始了第二次翻滚动作。
【00:02:19.09】猴子用棒子第一次打击小怪,产生了一个受击特效,受击特效刚好出现在了手上,说明小怪是一个“复合碰撞体”,碰撞体按关节划分。棒子是一个打击盒。打击盒碰在了碰撞体的哪个部位,哪里就产生了受击特效,这里要注意受击特效一定不能跟随点移动。
这有个细节,打击盒是一个棍子,碰撞体是一个胶囊,棍子与“复合碰撞体”密接触时,会产生很多个受击点,那么在哪个受击点上播放受击特效合适呢?这里用的是第一个生成的受击点,来播放受击特效。但这会衍生出一个问题,就是“想打的地方跟实际打到的地方表现上不一样”,比如猴子的第三棍,因为棍子很长,玩家看到棍子的远端处打中的是小怪的腰部,但是棍子与怪物的第一受击点是在小怪腿上,所以,玩家看到这一棍的特效播在了腿上,但表现上棍子是打在了腰上。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved