unity-game-engine - 如何将布料模拟从 Blender 导入到 Unity

标签 unity-game-engine runtime blender mesh 3d-model

我发现将布料动画从 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/

相关文章:

ios - 为什么 Unity3D 应用程序 [导出到 Xcode 项目] 会因为 ip_unity_plugin.bundle 有 "unsealed contents present in the bundle root"而失败?

python - 搜索名称并从大文件中提取相应的条目 - 最快的方法 - Python 和 Regex

PHP:在运行时打印状态消息

java - 只有环境光才能在 jME 中可靠工作

c++ - 虚拟试衣间设计

android - 您如何从 android 上的 unity 读取公共(public)下载目录

c# - 如何使用 Firebase 创建统一的 Facebook 登录信息?

javascript - 三个JS导出Blender模型和动画变形

unity-game-engine - 如何使用unity 3D为360图像设置动态热点

c++ - C++访问指针类成员变量时出现运行时错误