将变形目标从 Blender 导出到 Three.js
Posted
技术标签:
【中文标题】将变形目标从 Blender 导出到 Three.js【英文标题】:Exporting morph targets from Blender to Three.js 【发布时间】:2015-03-27 16:18:57 【问题描述】:这是我想要实现的一个示例:http://threejs.org/examples/#webgl_animation_skinning_morph
我正在使用 Three.js r69 中的导出器将 3D 模型从 Blender (v 2.73) 导出到 Three.js (r70)。
该模型具有骨骼动画,以及许多具有不同面部表情(睁眼/闭眼等)的 Shape 键。
将骨骼动画导出到 Three.js 工作正常,但我不知道如何正确导出变形目标。
导出器有一个“变形动画”复选框,但启用它会产生一个非常大的文件,其中时间轴的每一帧都会产生一个变形目标。 (时间轴有骨骼动画)。
骑士模型 (http://threejs.org/examples/models/skinned/knight.js) 的 json 文件有 4 个变形目标,每个面部表情一个。这几乎正是我想要的,但我无法重现它。
任何关于如何将搅拌机文件/搅拌机设置为 three.js 工作流程的提示将不胜感激。
【问题讨论】:
新 (r70) 导出器的动画逻辑正在审核中。我建议尝试使用较旧的导出器 (r69),看看是否会达到您的预期。如果不是,则可能是 Blender 中的设置问题,但对于初学者,我想看看它是否(或不是)导出器的问题。 我已经在使用 r69 导出器了。我一开始尝试了 r70,但我无法让骨骼动画工作。我很确定这是搅拌机设置问题,但我对 3D 软件一点经验都没有。 好的,仅供参考,骨骼动画逻辑刚刚为即将到来的 r71 重写。 【参考方案1】:只是为了结束这个话题:
经过反复试验,我们最终在 Blender 中为要导出的每个变形目标(形状键)使用了一个关键帧。变形目标对该帧的影响为 1(最大)。所以对于 3 个变形目标,我们有 4 帧(3 + 默认)。
骨骼动画不必在时间线上就可以正确导出。
这适用于 r69 导出器,我们没有尝试任何较新的版本。
【讨论】:
【参考方案2】:COLLADA 文件格式支持 Shape-Keys(在此处称为变形键)。 如果您的平台有一个功能齐全的 COLLADA 导入器,您应该能够导入和使用它们而无需额外的工作。
您可以通过将带有 Shape-Keys 的搅拌机模型导出到 COLLADA 文件并将该 COLLADA 文件重新导入搅拌机来证明这一点。所有形状键和权重仍然存在:)
【讨论】:
以上是关于将变形目标从 Blender 导出到 Three.js的主要内容,如果未能解决你的问题,请参考以下文章
从 Blender 到 THREE.js:导出器的 BufferGeometry 和动画问题
无法将从 Blender 导出的对象加载到 three.js 中?
将动画模型从 Maya 导入到 Blender,然后再导入到 three.js 时出现问题?