我正在为 The Broken King 开发血液吸收效果。https://www.reddit.com/r/Unity3D/s/odo93xFNeL 这个系统支持两种交互方式:玩家移动时,血液可以在局部被吸收,或者激活磁力输入时,多个血液源可以同时被吸引。视觉上,这个效果不是以传统的粒子轨迹的形式构建的。每个血液源都生成一个动态的路径向玩家,沿着这个路径分散了几种样本。着色器评估这些样本作为一个元球场景,使邻近的球体可以合并成一个连续的液体形状,而不是看起来像独立的粒子。目标位置在玩家移动时更新,所以轨迹可以弯曲并继续追随目标而不重新启动整个效果。地板上的剩余血液也使用相同的标准化吸收进度减少,保持轨迹和源污点视觉同步。这个系统也是可逆的。当吸引被中断时,进度可以通过同一路径向后移动,返回液体到其原始源而不突然重生地板贴图。主要的技术目标是保持这个效果极其廉价: 没有液体的物理模拟需求。 没有为每个可见球体创建单独的 GameObject。 效果和数据被重用,而不是不断实例化和销毁。 贵重的视觉合并由着色器处理。 运行时路径评估轻量。 实现产生的无意义的每帧垃圾。* 即使有多个同时吸收轨迹,它的CPU和GPU成本在当前构建中实际上是微不足道的。它运行非常快,并且在我到目前为止-profiled 的场景中没有产生任何可测量的对游戏的帧率的影响。我仍在精炼元球阈值、路径曲率、球体间距和多个轨迹在玩家附近合并的方式。任何技术或视觉反馈都是欢迎的!
Unity中的轻量级元球(metaball)血吸收系统
评论 (0)