如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球?

Posted

技术标签:

【中文标题】如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球?【英文标题】:How do I make a softbody jello sphere with NVIDIA FleX in Unity3D? 【发布时间】:2021-08-07 03:37:04 【问题描述】:

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

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

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

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

This is what it looks like before hitting play,其中左边是 Flex Array,右边是 Flex Soft。 Array 的粒子可见,但 Soft 的粒子不可见。 This is after hitting play,Array 变成了一种粘性流体,而不是球体,Soft 非常像果冻,但水滴都是分开的。

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

【问题讨论】:

【参考方案1】:

标准方法是首先创建一个 Nvidia Flex 控制器...

那么您还应该创建一个 Flex 软资产...

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

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

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

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

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

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

干杯:)

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

Nvidia Gameworks FleX tutorials on Youtube

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

【讨论】:

以上是关于如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pyFltk 中使用 Fl_Tabs

高性能算力中心 — RDMA — NVIDIA SHARP

003-unity3d 物理引擎简介以及示例

如何系统的学习 Unity 3D 中的 shader 编写

如何系统的学习 Unity 3D 中的 shader 编写

FLTK:如何在停用的 Fl_Text_Editor 中启用滚动条