首页 > 解决方案 > 如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球?

问题描述

我目前正在使用 Unity3D 中的NVIDIA FleX 包来创建软体果冻对象。我仅将 Unity 用于动画,而不是游戏开发。

我的目标是制作一个透明的果冻球,它可以保持其球形并具有弹性。

我尝试实现的第一种方法是使用 Flex Array + 流体设置。我一直在玩这些设置,但我无法让它保持一个球体,它只是变成了一个或多或少粘稠的流体斑点。

第二种方法是使用 Flex Soft + 流体设置。它在物理学方面要好得多,但即使“吸引粒子”关闭,但水滴是分开的,而不是一个果冻球。

这是点击 play 之前的样子,左边是 Flex Array,右边是 Flex Soft。Array 的粒子可见,但 Soft 的粒子不可见。 这是在打完 play 之后,Array 变成了一种粘性流体,而不是球体,Soft 很像果冻,但水滴都是分开的。

非常感谢这两种方法中的任何一种的解决方案!

标签: unity3danimationsoftbodynvidia-flex

解决方案


标准方法是首先创建一个 Nvidia Flex 控制器...... 添加弹性容器

然后你还应该创建一个 Flex 软资产... 添加 flex 软资产

然后你应该创建或选择一个游戏对象,并通过游戏对象检查器中的 Add Component 选项卡,找到 Flex Soft Actor 组件 [参见下图加载的]...

在此处输入图像描述

确保您之前提到的 Soft Actor Asset 在检查器选项中选择了所需的网格类型 [我在此处的图像中选择了球体] 并检查它是否类似于下图以确保...

将 Flex 软演员组件添加到游戏对象

所以在那之后,希望你可以按下播放键,看看它在为你下降和扭曲时的动作。

如果没有,我已经创建了一个快速示例供您下载为 unitypackage。

它可能仍需要包管理器进一步解决,因为 Flex 插件已经在我在此处提供的包中[使用 Unity 2020.3.5f1] 统一包中的 Flex

无论如何,希望这能让您开始使用 Flex 并朝着您的目标迈进。作为奖励,我添加了一个小脚本来移动 flex 对象,因为这超出了通常的方法,因为我们必须调用选择的 NVidia Flex 组件类并调用 ApplyImpulse 方法。

干杯:)

编辑:NV Gameworks 提供了 3 套关于将插件与 Unity 集成并举例说明的教程——这个“东西”包含在我上面提供的可下载包中。这是 3 集的 youtube 链接:

Youtube 上的 Nvidia Gameworks FleX 教程

编辑2:重读你的问题让我觉得我并没有真正给你关于使用布料演员和让网格渲染器通过弹性布料变形组件变形的明确答案。我在这里提供了另一个指向另一个统一包的链接,它将展示这一点,还允许您查看游戏对象以及 NVIDIA Flex 的布料组件如何与标准网格过滤器和网格渲染器一起使用。希望这能更准确地回答您的问题 :) 在 NVIDIA FleX 中还使用布料 Actor 和软 Actor 的示例


推荐阅读