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