专栏名称: 腾讯游戏学堂
腾讯游戏学院由腾讯互动娱乐发起,致力于打造游戏知识分享和交流平台,专注建设游戏职业培训和发展体系。学院通过提供游戏类专业培训课程、建设游戏职业发展通道、开展丰富的校园活动及行业活动,帮助在校生和游戏从业者提升职业竞争力,成就游戏创想梦。
目录
相关文章推荐
51好读  ›  专栏  ›  腾讯游戏学堂

游戏特效设计中的数学之美

腾讯游戏学堂  · 公众号  ·  · 2024-05-27 19:09

正文

请到「今天看啥」查看全文


文丨Rui Yu
腾讯互动娱乐 游戏特效美术


| 导语: 自然界的一切看似随意,实则处处和谐,美无处不在,仿佛有人精心安排设计过,这种设计的底层逻辑是什么?能不能一定程度上科学的定义出来?本文会主要介绍一下笔者自己是如何运用数学里的分形原理来为游戏特设计和添加细节的。


简单介绍一下分形几何的概念:


分形指的是具有自相似性的图形或结构,即对象的一部分在不同的尺度上看起来类似于整体,它研究的是自然界中那些 不规则、复杂、重复 的形态。



上面这个图形叫 科赫 (Koch) 曲线,它是一个典型的分形模型,它是怎样画出来的呢?下面两张图大致示意了一下计算机绘制的过程:



自然界当中存在大量的分形结构,比如树枝、海岸线、山峰、闪电、贝壳、雪花、云朵等等,形成分形的原因非常多,比如树枝的不断地进行 同样的生长过程 、海岸线不断地受到 类似的海浪碰撞 、山峰不断地受到 类似的风雨侵蚀 ,这些造就了形状上的分形结构。



还有一种说法是分形几何是 量子力学 的一个分枝,是自然界的共振规律!


所以分形可以一定程度解释为什么自然界的美,像是被精心安排设计过的,从美学语言的角度去看,科赫曲线中呈现出来的形状细节,小形状一层一层建立在大形状上,有主次、有细节、有韵律。


回到游戏特效美术上,特效中很常见的 闪电,烟雾,火焰,水 等等元素,它们的形状造型无不隐含了这种分形的逻辑,理解并活用这种逻辑,能够更好的帮助我们去设计特效的细节,做到有主次、细节、韵律。


我们来看一个特效中常见的流体运动中的分形:



流体在整个第一层大的造型和运动形态之上,又有第二层更丰富和复杂的造型和运动,并且第二层与第一层的运动呈现出相似性,这是很明显的分形规律。


另外,特效同学经常用到的噪波(Noise),很多时候也是通过分形的原理去把一个原先简单的噪波演化成一个细节丰富的噪波的,比如下面三张图分别是一阶,三阶和六阶细节时获得的noise



大家可能会觉得这些是很数字化的事情,通过程序手段获得,和美术关系不大;但其实我们平时完全可以用类似的思路去设计诸如电,火,烟雾,碎块等等的细节,或者在自己做完某个特效后,把分形概念作为一种检查工具,去看造型设计是否合理。


下面我会通过一个自己开发的特效案例来分享下自己如何把这种思路用到实际的设计开发过程中。


这个案例创作的灵感和参考主要来自于下面这个视频:


up主:含亮老师
https://www.bilibili.com/video/BV13u4y1H7C1/

这两年动漫、影视、游戏作品里, 火刀一直是一个比较热门的特效表现,比如鬼灭之刃,比如这两年的武侠电影目中无人,游戏里例子就更多了,只狼、对马岛、魂系列等等,都有火刀类特效 ,我自己也尝试了下在实时游戏环境下可以把火刀特效推进到什么程度。


下面是我用虚幻5的niagara实现的游戏中的火刀特效:



因为这是个武器附魔特效,所以一个资源可以用在任意类似武器的任意动作上,都会得到正确的结果;另外虽然我是在开发火刀特效,但实则也是在开发整个武器附魔的特效系统。


过去我们在游戏里做非卡通类的火焰特效往往是用流体软件(比如houdini) 预渲染的序列帧贴图 ,这种做法依然很流行;但另一方面,我会觉得这种基于预渲染贴图的游戏火焰特效做法更像是拍照而不是画画,缺少了一些 写生的趣味性 ,它一定程度局限了我对火焰的表达,尤其在需要特效和角色运动产生比较正确的跟随运动的情况下局限性被无限放大。


那么,如果不依靠预渲染的序列帧,要如何表达极其复杂的火焰形状以及火焰的运动呢?火焰形状的规律到底是什么?它看似随意,形状复杂,但又主次有序,这背后有没有可以套用的逻辑?


上面左图是一张计算机绘制的经典分形图像(把黑色作为前景观察),右图是提取了火焰造型特点后设计的各种火焰纹样,有没有发现它们的相似之处?同样的形状不断出现,并且从大到小一层层递进,火焰也是一种流体,前面讲过,流体往往具备明显的分形特征;




从上面这些概括过的火焰手绘稿上,也能明显的发现上述特征;


所以,火焰的这种不规则、复杂,形状重复出现,细节一层一层递进的特征正是分形几何的特征,了解分形可以帮助我们归纳出火焰的形状特征,深入火焰细节的设计。


这个效果可以分成两部分:始终跟在刀上的火焰 和 挥击时出现的火焰拖尾,在开发过程中前者花了我更多的时间,后者是用我在”步入次世代的游戏特效“一文中介绍过的两套特效系统(拖尾系统和烟火系统)综合之后获得的,本文因为主要讲分形的运用,所以会把重点放在前者上:



大家可以观察到,附着在武器上的火焰,随着角色的动画和运动,总体表现得比较物理,如下图所示,按我自己的说法,就是比较写生了,下图是表现运动中的火焰的草图,很好的表达了火焰的运动细节。



把整个火焰效果拆分成两个问题来解决:火焰运动与火焰质感,在初期,我在Niagara里实验了一些火焰运动的可能性,这块基本上也是用自己在niagara里开发的特殊拖尾系统来实现。



从上面几个火焰运动的测试视频里可以发现目前的火焰效果还是比较”大色块“的,缺少更高层次的细节,接着就来看下怎样利用分形原则为火焰添加细节以加强火焰质感:



首先做一个小火苗,它看起来基本是一个造型最简单的蜡烛火焰。



然后为这个火苗的边缘添加一层形状细节,它就从一个蜡烛火苗变成了一个更大的火苗,逐渐复杂一点了,但最初的大造型还在。


把这个火苗作为一个更大的火焰的一部分,组合几个这样的火苗在一起,就获得了一小团火焰了,也可以理解为一个大火苗 ,形状更错综复杂了,但这里要注意,这些小火苗组合在一起之后,形成了一个更大的良好形状,它们不是互不相关的碎的,不是机械的拼合在一起,我努力让它们形成更大的良好造型,这很重要!什么是良好造型:简单的易识别的形状即可。


至此,从一个最小的基础形状开始,一个烛火,变成一个小火苗,小火苗又变成了一小团火焰,里面的造型逻辑,正是分形的规律!


接下来就很简单了,再依样画葫芦,把这团小火焰拿过来,组合几个在一起,再次形成更大的造型!如下图:



再强调一下,我会努力组合出一个新的良好图形来,不能无序的把它们堆放在一起   !基本上到这里,火刀上依附的火焰就完成了。


这是要讲的第一个结合了分形思维的特效设计案例,接下来再快速看另一个案例:




这个案例设计思路其实也来自于分形逻辑,细节一层一层的递进,每个大碎块会碎成小碎块,小碎块会碎成更微小的碎块,我们看一张归纳得很好得手绘稿能够加深理解



最后再稍微展开一下,特效设计里,分形几乎无处不在,比如:



上面两个形状大家不会陌生,很多强调打击的特效、爆炸类特效,都会看到类似这样的形状,它看起来挺复杂,但如果用分形的思路去理解它,是不是也就没有那么复杂了?第一级大形状上衍生出第二级形状,第二级形状上又衍生出第三级形状,我们在游戏特效的细节设计上,一般表达一种元素,有从大到小三个层次的细节形状,就足够了。


好了,以上就是这篇文章的全部内容,感谢大家的阅读,希望对大家能起到一些帮助!








请到「今天看啥」查看全文