我发现将布料动画从 Blender 导入到 Unity 移动设备的唯一方法是将每个帧导出为单独的网格,然后在运行时替换它以创建动画。 (如果有人知道其他解决方案请告诉我)。
问题在于“meshToChange = otherMesh”方式对移动设备的性能有很大影响。我很好奇是否有更好的方法在运行时更改网格。
谢谢:)
最佳答案
有几种方法可以做到这一点
1.最好的方法是这样的:
- 使用 blender 的 .mdd 插件获取烘焙模拟的关键帧。
- 在 Unity 中导入 Blender 项目。
- 在场景中添加预制件。
- 选择您的对象并转到蒙皮网格渲染器组件并展开BlendShapes。在那里您可以找到所有数据。
之后,您将需要一个脚本来循环混合形状。这是一个简单的script这样就可以完成工作。
有关更多信息,请查看此 video 。 感谢@derHugo 帮助我完成这件事。
我不会关注接下来的内容,但我会在这里为感兴趣的人提供一些引用。
2.使用 Alembic 文件。
如果我没猜错的话,Unity 团队就是采用这种方式制作短片 ADAM 的。 看看这个video .
请注意,这不适用于移动设备。
3.每帧循环并更改网格。
此技术与 2D 动画非常相似。 您所要做的就是导出动画的一系列 fbx,然后循环播放它们。 script
请注意,您将因此受到巨大的性能影响。 通过大约 7k tris 的布料模拟,每隔几帧更改一次网格,我在 iPhone 6 上的场景中获得了大约 30fps 的速度。
关于unity-game-engine - 如何将布料模拟从 Blender 导入到 Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59994103/