Loading FBX Models - R32/heaps GitHub Wiki

可以导出各种 3D 编辑器 的 FBX 模型并加载到 Heaps;

Heaps 使用其自身的 3D 格式称之为 HMD,它能更快地加载及处理。默认情况下,Heaps 资源管理器将自动转换所有 FBX 到相应的 HMD 并缓存。参见 资源管理

导出

为了导出 FBX 模型可以被加载到 HMD,请确保:

  • 导出为 FBX 2011 以文本格式(FBX 版本 7.x), 不支持 FBX 的二进制文件格式。
  • 导出时使用 Z-up axis
  • 导出时使用 BakeAnimation, 这将确保你的动画完全使用相同的名字创建。

限制

当使用 FBX 导出时将会有一些限制:

  • object 将不能共享相同的 Skin。如果需要,你应该合并你的 object,使用 multiple materials

  • 尽量避免附加 object 到 Skin 和 bones,而是通过使用 follow 属性代码附加。

预览

为了查看你的 HMD 和 FBX 模型及其动画,可以使用在 tools/fbx 目录下找到 FBXViewer。如果你想知道有什么样的信息存储 HMD,可以按下 Ctrl+S 导出文本文件。

加载及显示

想要添加 FBX/HMD 模型到场景中,首先你需要使用资源管理器加载它们:

// lib is an hxd.fmt.hmd.Library
var lib = hxd.Res.myModel.toHMD();
// 创建模型实体: loadTexture 是一个自定义的方法它负责加载模型材质
var obj = lib.makeObject(loadTexture);
// 将 object 添加到场景
s3d.addChild(obj);
// 加载动画
var anim = lib.loadAnimation();
// 在 object 上播放这个动画
obj.playAnimation(anim);

请注意上边的 HMD lib 和动画并没有被缓存,如果你想要在场景中使用这些相同的 object 创建多个实例,你应该缓存它们的值以便于重新使用。

你可以在 samples/skin 目录中找到一个完整的示例。

可以在 http://stackoverflow.com/questions/28635736/blender-fbx-import-from-ascii-format 找到一个 FBX 的转换工具如果你使用 blender 的话, 因为 blender 2.78 只能处理 bin 格式的 fbx 模型, 而 heaps 则只能解析 ascii 格式的 fbx