type
status
date
slug
summary
tags
category
icon
password
![Video preview](https://i.ytimg.com/vi/bpFdfrg8SvY/hqdefault.jpg)
主要讲了Dead Zone的生成切换,以及相关攻击特效。
目标
- 体现死域的威胁感
- 此区域对玩家有威胁感
- 和其他区域有鲜明的对比
- 区域内除了有乱长的根茎、尖刺外,还要强调恢复过程
- 实时性
- 场景区域转换最好是实时的
- 除了在过场动画中有实时改变,游玩时角色行为也会触发转换
- 通过VFX讲好Rot(腐灵)故事(表现、设定等)
- Kena拥有控制Rot的能力后,相关技能会触发场景转换
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F03008caa-b0e5-41d0-bf14-eb69b01a528c%2FUntitled.png?table=block&id=3e192a60-d1eb-4519-9a8d-f78fee8a6f7e)
原型1展示
第一个prototype是基于物理的,dead zone效果是通过场景中碰撞体和相关模型展现的。
这个原型效果实际上是在可用级别,但是从设计考虑毙掉了。
简单来说,就是通过物理系统进行消除dead zone的操作,由此进行区域转换,还是很好理解的。
原型2展示
通过一张RenderTexture对Rot影响范围做一个遮罩,其他材质采样这张RT来进行相关变化。
原型2的问题在于dead zone内的模型将顶点垂直向下推入到terrain中,这会出现一些artifact。
此外,因为是实时移动顶点以贴近RT范围的方法,所以这需要Mesh的顶点数较多,贴近地表的植被也需要被取代掉。
同时,碰撞体也比较难做,因为并不想根据模型区域动态修改碰撞体形状。这个版本同样基于碰撞,角色攻击将地形上dead zone的碰撞关闭,以此更新RT。
碰撞体的方案也会导致navmesh相关的问题。
最后可以看到这个版本dead zone的清除不是完全实时的。
dead zone消失后生长出来的蓝色、紫色的花都是在镜头黑一下之后,播放动画展现的。
构建DeadZone引擎
- Landscape - terrain的基本层级
- Foliage - 植被叶子的生成和清除
- Dead Zone Meshes - 更大的dead zone网格
- Lighting and Ambience - 光照、环境光
Landscape
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5bc8f187-42b3-48ef-a999-71e9a63fe451%2FUntitled.png?table=block&id=137d3b3a-5158-44c1-8d97-d449faea3de1)
分为两层,UE中层级勾选
No Weight-Blend
。![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa0cd8a61-a25e-410d-b065-7212d12a41fb%2FUntitled.png?table=block&id=edc6f2a4-455a-4dc3-b794-ff2ffc0e0755)
DeadMask用于使基本地形展现腐败的样子。
Harmful Deadzone 指示玩家在范围内减速并掉血。
- DeadMask降低baseColor的对比度,增加一点光滑度。
- 不同的tiled map覆盖在基本地形上,使边缘更加清楚一点。
- 修改了物理材质,这样可以判断玩家是否站在上面。
清除dead zone
画一张从上向下的RT。
R通道为干净状态的mask,用于标记哪些区域被清理(状态转换)了,这个值也可以用于制作渐变:
补充:实际上是两个RT,用类似于级联阴影的方式进行分级,近处的精度高,远处的用于远景保持状态。
与级联阴影一样,RT保证贴近到像素以避免artifact。
缺点是没有办法进行垂直高度的分级,但在实际使用中影响不大。
Foliage
地表植物(蕨类等)增加场景的丰富程度和纵深感。使用UE自带的Instanced Foliage来放置和渲染植物资产。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F511e4b9b-cf51-4f94-83dc-5e934f43c83a%2FUntitled.png?table=block&id=46b31792-2255-4497-964b-4d2e1ac54b15)
为了适应Deadzone的切换,每一个植物资产上有两种树叶类型,也就有两种材质方便切换。
本来想做成通过一个property(类似于一个float)来在一个shader上实现两种效果,但这比想象的更麻烦:增加shader复杂度、传入property的范围很难控制,应用范围狭窄(只在转换中的区域效果好)。因此在这里做了一个权衡,直接用了两套材质球。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7b888331-81f7-43e5-8ecf-7c2eb85e41ad%2FUntitled.png?table=block&id=ad340025-f13b-4662-a19d-3b01399fd099)
这里同样通过RT的R通道来判断切换区域。
有些mesh在切换后消失了,这是在vertex shader中进行了缩放。
这会导致植物密度进行了改变,气氛也有修改(毕竟有模型隐藏掉了)。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F03806d73-46bd-4cfc-b287-c12b12ab3a6e%2FUntitled.png?table=block&id=3c374bd8-443d-4b98-8a35-31b26ae14f5e)
所以添加了一个B通道用于其它类型的植被的生长。
添加一个新的通道,是为了想让🌼的生长比起landspace切换更慢一点。
这也会让玩家更明显的体会到landspace切换后,对比度的变化,从而让场景更加丰富、富有活力。
这有个很明显的问题,在区域内外,永远都存在两套植被资源(一套显示,一套scale为0隐藏),他们尝试写了一些代码去干掉instanced植被scale为0的mesh,不过没时间去调了,所以就仅保证效果正确,起码scale是0的应该是会被cull掉。
G通道用在另一个功能:过度生长上
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fadde4b20-76ce-4665-864c-d2624f2e827e%2FUntitled.png?table=block&id=00551ee5-8606-45fa-8e40-6b70414672ce)
过度生长会让植被对比度更高(更鲜艳了!),会让植被长得更大。这会让场景变得更具有动画感。
最终结果:
可以看到B通道会比R通道更慢一些,而G通道是不会保留的。
Deadzone Meshes
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5424296f-0c26-41cb-9644-bfa45ede3c12%2FUntitled.png?table=block&id=a8ec9213-9863-4ed4-bb4d-faa38648aaff)
这些mesh在dead zone中生长,阻挡玩家步伐,切换区域状态后可以正常通行。
这些mesh使用蓝图而不是instanced foliage,原因是不想采样RT,只修改碰撞体就行,另外清理过程速度很快,所以没太大必要,够用。(有性能问题)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F2220316b-96cb-403d-ad74-ab29e8a06638%2FUntitled.png?table=block&id=43859f1d-fbb9-4fda-855d-4592bd8a61a3)
mesh消失就是基于噪声的溶解,添加了一些粒子特效、扭曲等丰富最终效果。
一些植被溶解成了另一种材质。
但有性能问题:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff48a4e67-2298-4fa8-9bdc-41de210b08fe%2FUntitled.png?table=block&id=a4868d80-7c4d-4d1e-8272-8578db3c2a41)
主意这是per primitive设置的,也就是一个mesh上有多个材质球,给不同的data是做不到的。因此如果想要达到这样的效果,就退回到蓝图版本。
Lighting and Ambience
科娜全实时光,通过Custom post-process volumes控制不同区域的氛围。
- lighting & fog
- 制作了预制(方便切换,方便版本管理)
- 通过toggle切换污染前后的不同氛围
Rot Abilities
腐灵技能
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd81ae642-b052-41ae-b6c4-d59d430eedb9%2FUntitled.png?table=block&id=90a8a596-9f50-4e22-ab84-4de32080afda)
目标
- 腐灵能被收集
- 在区域清理时能够发挥作用
腐灵的制作包含这些:
- 动画mesh
- Niagara粒子
动画mesh方便,制作了lowpoly的mesh跟随动画曲线,一般技能中跟随的mesh顶点数并不是很多。
这些mesh也会对衣物等有物理影响。
Niagara这里并不是很懂,希望大佬能看一下。
大概意思是有两种版本的动画,一个版本是mesh动画,另一个版本是通过Niagara来控制的,这样能达到性能和效果的平衡,并且方便程序控制。
Niagara通过这个动画曲线来控制,他也会出现在模型动画内部。
然后是看不懂的Niagara参数,通过动画曲线控制,使得Niagara粒子匹配模型动画的运动。
技能动画分三个部分:
- geometry cache:
- Niagara粒子
- Skeletal Mesh
此外,技能会影响之前说的RT,绘制时会判断与地面的距离,来影响绘制颜色的强度。
总结
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F73c49b4f-f038-4ab9-97d5-68fea093c87f%2FUntitled.png?table=block&id=2a07a31e-be13-4040-b894-3e50460e136f)
整体场景制作基于分层的思想进行制作,通过绘制RT的系统来对场景进行交互影响。
- 作者:Daachun
- 链接:https://Daachun.com/article/GDC0
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章