如何将布料模拟从 Blender 导入 Unity
Posted
技术标签:
【中文标题】如何将布料模拟从 Blender 导入 Unity【英文标题】:How to import cloth simulation from Blender to Unity 【发布时间】:2020-05-16 13:05:33 【问题描述】:我发现将布料动画从 Blender 导入 Unity 移动设备的唯一方法是将每个帧导出为单独的网格,然后在运行时替换它以创建动画。 (如果有人知道其他解决方案,请告诉我)。
问题在于“meshToChange = otherMesh”方式对移动设备的性能有很大影响。我很想知道是否有更好的方法在运行时更改网格。
谢谢你:)
【问题讨论】:
您是否尝试过 SkinnedMesh 或其他什么东西......这绝对是不是将动画导入 Unity 的唯一方法,绝对不是在运行时替换网格的好方法......您更想要的是在运行时对其进行变形 @derHugo 感谢您的评论。现在已经很晚了,我要睡觉了。明天我将研究 SkinnedMesh。我将如何处理这个?从搅拌器中获取每个关键帧的网格,然后以某种方式将其添加到 SkinnedMesh 组件?或者有没有办法像这样从搅拌机中导出它? 你试试这个插件? forum.unity3d.com/threads/… @joreldraw 该链接对我无效。 @derHugo 你不需要回答。你让我走上了正确的轨道,让我再次尝试 SkinnedMeshes,这一次奏效了,效率提高了 3-4 倍。在关闭并回答这篇文章之前,我会稍等片刻,也许我会学到更好的东西,谁知道:)。谢谢! 【参考方案1】:有几种方法可以做到这一点
1.最好的方法是:
使用 Blender 的 .mdd 插件获取烘焙模拟的关键帧。 在 Unity 中导入 Blender 项目。 在场景中添加预制件。 选择您的对象并转到蒙皮网格渲染器组件并展开BlendShapes。在那里您可以找到您的所有数据。之后,您将需要一个脚本来循环遍历 BlendShapes。这是一个简单的script 可以完成这项工作。
如需了解更多信息,请查看此video。 感谢 @derHugo 帮助我完成这个。
我不会专注于下一个,但我会在这里为感兴趣的人提供一些参考。
2.使用 Alembic 文件。
如果我是正确的,这就是 Unity 团队为短片 ADAM 所做的方式。 看看这个video。
请注意,这不适用于移动设备。
3.每帧循环和更改网格。
这种技术与 2D 动画非常相似。 您所要做的就是为动画导出一系列 fbx,然后循环播放它们。 script
请注意,您将因此获得巨大的性能影响。 使用大约 7k tris 的布料模拟,每隔几帧就会改变一次网格,我在 iPhone 6 上的场景中没有其他任何东西,我得到了大约 30fps。
【讨论】:
以上是关于如何将布料模拟从 Blender 导入 Unity的主要内容,如果未能解决你的问题,请参考以下文章