• 中文
    • English
  • 注册
  • 查看作者
    • 在 Unity 中制作龙珠 VFX

      Harry Alisavakis 详细分析了他的动漫激光束效果,谈到了光束的产生、尘埃圈、充电球和粒子的使用。

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      介绍

      你好,我叫哈里·阿里萨瓦基斯我是来自希腊的游戏开发者,在一家名为Another Circus的创意机构工作,更多地关注技术艺术方面的问题。我于 2018 年从大学毕业,获得了计算机科学学士学位,专攻软件开发,尽管我的热情一直在于电子游戏开发。在我学生时代,我自学了如何制作视频游戏(主要是在Unity 中),并尽可能多地参与了 game jams,这是我仍然没有停止做的事情。

      除了编程,我一直对 3D 图形世界着迷,甚至开始学习Blender和其他 3D 建模软件。我一直热衷于探索游戏的技术和艺术方面,当我开始学习着色器时,我达到了这个最佳点。由于他们的学习曲线臭名昭著,我想分享我在学习着色器时的知识,并创建了我的博客,其中包含对初学者友好的着色器教程来帮助他人。

      加入视觉特效社区

      快进到过去几个月,我被Yoeri Vleer 每周五分享的所有炫酷 VFX 所吸引,并受到启发尝试自己加入有趣的 VFX 世界,因为我相信我在编程和着色器编码方面的背景将使过渡相当容易。受到Maxime Catel(又名 Spyro)Vlad Horobets(又名 ErbGameArt)等出色 VFX 创作者的启发,我开始每周尝试至少一个 VFX 概念,以便为#VFXFriday 展示一些东西。其中一种效果是动漫激光束,我将在本文中讨论。对于上下文,我发布的效果如下所示:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      激光束:效果的方法

      该效果的主要灵感来自我在 ErbGameArt 和Piao_3DEffect等帐户上看到的奢华激光束Erb 过去做了一个非常相似的效果:

      

      然而,虽然配色方案相当相似,但我的方法却完全不同。

      我处理这种效果和大多数其他效果的主要方法是对应用了自定义着色器的网格进行分层。由于我倾向于风格化效果,因此我使用的着色器是未点亮的,并且包含基于灰度噪声纹理的溶解和顶点位移等效果。这个着色器是我的“VFX Master Shader”,我也一直在其他效果中使用它。

      当我注意到光束的主要元素具有三种不同的颜色(黑色、亮蓝色和亮橙色)时,我将三个网格分层(每个网格都有不同的材料),这样我就可以在它们中具有更多的深度和多样性运动以获得更复杂运动的感觉。

      除了明显的灵感,我没有任何其他明确的参考。就像我的其他效果一样,我只是边走边编。

      效果的关键元素

      效果的三个关键要素:

      • 实际的激光束包括漩涡效应和底部的粒子系统以及光束周围的漩涡光束

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      • 激光束底部的充电球

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      • 铸造球周围的灰尘环

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      尘圈

      演员周围的灰尘圈制作得相当简单。我使用了一个简单的锥形网格,并在其上应用了带有主着色器的材质——这需要一个尖刺的纹理并将其平移到 X 轴上。没有纹理,效果如下:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      我使用的纹理如下所示:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      它很快在Substance Designer 中组合在一起

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      将一个网格放在另一个网格中会产生比实际更复杂的效果,而且尖刺的纹理确实散发出那种动漫氛围。尘圈上的动画很简单,开始时只是一个缩放,加上最后,我将材质的截止值增加到 1,让效果逐渐消失。

      在这一点上,值得一提的是,效果的所有动画都不是通过Unity的动画系统完成的,而是通过我制作的一个名为“BNA Animator”的自定义动画工具完成的。该工具通过使用缓动函数处理简单的动画,如平移、缩放、旋转等。它还为我提供了在特定持续时间执行动画所需的控制,将动画组合在一起并在动画开始或结束时调用事件。该工具的一个重要功能是它还允许我为材质属性(浮动和颜色)设置动画,因此我可以轻松调整材质的 alpha 截止值以使其淡入或淡出。

      光束球

      当我开始一个效果时,我通常从最有影响力的元素开始,在这种情况下,它是激光束。在我做了一些工作之后,我必须为光束制作一个源,这将是建立对效果的预期所需的东西。那就是我在底部制作球体的地方。它采用与光束完全相同的技术制成:3 个球体相互啮合,每个球体使用不同的材料。由于我喜欢重复使用材料,我实际上使用了与激光束完全相同的材料。这也有助于保持效果的一致性。分解后的球体如下所示:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      使用 BNA Animator 我为它制作了一个动画序列:它首先缓慢增长到其正常比例的 120%,然后迅速缩放到 0,然后在光束开始时恢复到 100%。为了给它充电的感觉更多,当它按比例放大时,我添加了以负速度向球体中心移动的粒子。当源为激光爆炸而放大时,我有另一个粒子系统会爆裂一些带有轨迹和噪声的粒子,以便在它重新增长时产生小的局部影响。

      该效果的最大挑战是获得正确的缩放时间,但动画工具有所帮助,因为我知道其他效果的确切持续时间和延迟。

      斜线和粒子

      作为激光爆炸影响的一部分,我还添加了两条从源球中心开始的斜线。这些斜线在正常形式下看起来像这样:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      我倾向于在不同的效果中大量使用它们,以获得更风格化的冲击效果。网格实际上是没有被挤压和旋转的顶面的圆柱体。我为它们应用了具有相同 VFX 主着色器的材质。当冲击发生时,我会放大它们,同时增加截止值以使它们溶解。它们还应用了灰度噪声纹理。

      激光器底部的粒子来自一个非常简单的粒子系统。那是为了让他们看起来像是猛烈的火花。粒子具有相当高的移动速度以及它们的运动中的一些噪音。我在它们后面添加了一些短小径以跟随运动波动以获得更平滑的外观。在保持轨迹平滑的同时让粒子剧烈运动是一种挑战。最初,这些粒子要么太漂浮太慢,要么在没有踪迹的情况下不够明显。

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      与粒子系统一起,还有一个点光源在球体上投射阴影。我最初添加它作为测试,但我喜欢它给人的感觉,即在施法者面前有一个巨大的明亮事物,而阴影落在它身后。光的强度也随着激光束的大小而波动,因为它在效果期间变得越来越大。

      光束

      光束是我开始制作的第一件事,它最初是作为一个小的概念证明来完成的,看看我的想法是否适用于这种效果。它再次由三个简单的网格组成,特别是三个没有顶面的细长圆柱体(冲击环使用了相同的网格)。拆开的梁看起来是这样的:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      它们都非常简单,并且使用源自 VFX 主着色器的材质。我没有为颜色或任何其他花哨的特征使用任何渐变贴图,我只是平移噪声纹理,基于它们溶解网格并对纹理和顶点应用一点位移。

      我用于这些材质的噪波纹理非常通用,我通常将它们拉伸或平铺以获得不同的结果。我用于这些材料的噪声纹理(与球体网格相同)如下:

      • 对于撕裂的黑色纹理:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

       

      • 对于内部元素:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      • 对于位移:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      能量漩涡是用我专门为这种情况设计的另一个着色器制作的。它们实际上是带有一些细分的简单网格带,着色器偏移了它们的顶点,将它们变成了螺旋效果。通过着色器,我可以轻松调整螺旋的频率、修改颜色并赋予其旋转运动。特别是对于这种效果,我还向着色器添加了一个“填充”属性,以便我可以逐渐使条带沿着它们的长度出现和消失。

      这是漩涡条纹着色器如何工作的演示:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      很难显示,但顶点位移发生在 3D 中,它不只是在 Y 轴上偏移。

      在光束的开始处,还有一个四边形,再次使用 VFX 主着色器。为了使它旋转,我使用极坐标对噪声纹理进行采样。平移纹理使其既旋转又向内移动,形成酷炫的门户效果。在这里,我还使用了渐变贴图来为效果添加一些颜色以及来自主着色器的一些其他技巧,包括:

      • 色带/分色

      • 一个圆形遮罩,这样效果就不会被四边形的边界切断

      • 与不透明几何形状的柔和混合

      当您单独查看四边形时,您可以看到其中一些效果:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      在我制作光束后,我制作了旋转四边形,为激光提供某种关于它来自何处的背景信息。但是,我并没有真正费心在光束的末端做类似的事情,因为这对于演示来说并不是真正必要的。

      为了让光束有一种跳动的感觉,我使用 BNA 动画器让它按比例放大和缩小,看起来更有活力。材料上的顶点位移也有帮助,因为它为网格增加了一个小的变化体积。

      回馈

      最后,我认为实验中最有趣的部分不是纯粹的视觉元素,而是动画、时间和伴随的效果。当我单独制作效果元素并且光束从球体射出时,我认为这很酷,但我有点不以为然。但直到我加入了屏幕抖动,点光源和径向模糊(使用自定义着色器,为它有一个教程也让这里的时候,我看到撞在了一起,整个事情,实际上觉得梁的影响)。这是一个非常好的迹象,当我第一次看到它时,我的反应以及我同事的反应都类似于“哇”。我相信传达给观众的效果是有分量的,这是我的主要目标。

      值得注意的是,在某些情况下,有影响力和有趣的东西不一定复杂或沉重。没有考虑任何优化,效果的透支在影响的那一刻是这样的:

      在 Unity 中制作龙珠 VFX

      在 Unity 中制作龙珠 VFX

      而且我想说,尽管它很简单,但它看起来很整洁,至少在 GIF 格式中是这样。

      总的来说,我仍然在研究 VFX,我仍然认为自己是该领域的初学者。我有很多东西要学习,还有更多的工作流程要试验,但拥有所有这些自由来创造一些实用和酷炫的东西,可以对观众/玩家产生巨大的影响,这是令人兴奋的。

      到目前为止,我仍在努力寻找一种有效的简化工作流程,使用我可以使用的工具将所有视觉和动画方面结合起来。然而,这也是乐趣的一部分!

    • 0
    • 0
    • 0
    • 375
    • 请登录之后再进行评论

      登录
      • 大版主
      • 小版主

      暂没有数据

      暂没有数据

    • 发表内容
    • 实时动态
    • 偏好设置
    • 到底部
    • 单栏布局 侧栏位置: