Unity 2D 水系统开发:解析 Ori 风格交互水面,支持自定义参数与 2.5D 伪表面

过去几个月里,Unity 开发者 BxYass 一直在分享一个交互式水体系统的进展,该系统灵感来自 Moon Studios 的《Ori》系列,完全基于 2D Renderer 构建。该项目计划以资源(Asset)形式发布,开发者表示目前已进入最后阶段,只剩测试和文档工作。
它并不是流体模拟。根据 BxYass 的说法,该系统主要是“带频率、冲击强度、阻尼等参数的解析涟漪”。开发者表示,这套水体系统更注重艺术上的可定制性,而非物理上的准确性。
“水体本身可定制性很强,所以你在视频里看到的其实只是其中一种设置方式。我还添加了一个‘伪表面’模式,并不真正存在一个水面平面,而是通过偏移泡沫/图案以及涟漪、尾流之类的东西来模拟透视效果。这样无需实际几何体就能获得相当有说服力的 2.5D 表面。
至于图形,我基本上是拿一张动漫风格的自然图片,在 Photoshop 里裁剪出各部分。对于实际打包的资源,我打算在演示场景中使用 Unity 的 Lost Crypt 资源,除非有人有更好的想法——因为我显然不能直接包含来自 Asset Store 的随机资源。”
由于发布前还有一些内容需要打磨,非常欢迎任何反馈或建议。
下面可以看到该系统的早期版本。在那之后,开发者加入了用于空气泡的“水下排除区”、水流、碎片、漂浮垫/平台,以及水下视角、涟漪、体积光、尾流和许多其他交互功能。该系统还包含自定义 Inspector 和工具、改进的设置流程,以及一个 API。你可以从代码中采样水面高度,接收来自交互和水体状态的事件,等等。
目前还没有确认的发布日期,因为这个水体系统只是一个副项目。在此之前,你可以看看我们介绍过的其他不错的 Unity 水体,比如 Ok_Art_2784 的项目。如果你想要一个开箱即用的解决方案,Eugatnom Studios 的Tidal 也可以购买,它使用基于 FFT 的波浪模拟。
另外,Fabrizio Espindola 最近宣布了一门关于 Unity 实时水体的新课程:
原文链接:https://80.lv/articles/creating-ori-style-2d-water-system-in-unity
喜欢这篇内容吗?