我想在blender中导出形状键,但导出的json文件中的morph目标数组在数组中有数组。我希望所有的形状键点都在一个数组内。有关如何正确导出形状键的任何提示。
导出的json文件的屏幕截图。(https://drive.google.com/open?id=0B6wLPPFE11zoWWNvQy1YbFNXblU)
我希望morphTarget数组与此骑士示例(http://threejs.org/examples/models/skinned/knight.js)中的数组相同。我希望所有的观点都在一个阵列中。
我正在使用搅拌机2.76和io_three expoter。提前谢谢。
答案 0 :(得分:0)
即使它具有误导性,您所看到的内容也是正确的。混淆来自使用相同数据块名称存储的两种不同类型的数据。
每个morphTarget都包含一个引用为" vertices"
的数组一种类型的数据是每个顶点的位置。这就是你在骑士的例子中看到的。每个顶点的每个坐标都包含在数组中,这是每个帧的实际顶点位置。 morphTargets的名称将为" animation_000000"," animation_000001" ...
"morphTargets":[{
"name":"animation_000000",
"vertices":[-1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,-1,1,1,
1,1,1,-1,-1,1,1,-1]
},{
"name":"animation_000001",
"vertices":[-1.0149,-1.0149,1.0149,-1.0149,1.0149,1.0149,
-1.0149,-1.0149,-1.0149,-1.0149,1.0149,-1.0149,1.0149,
-1.0149,1.0149,1.0149,1.0149,1.0149,1.0149,-1.0149,-1.0149,
1.0149,1.0149,-1.0149]
},{ ....
要获取此动画数据,您需要使用"应用修改器"启用和"混合形状动画"禁用。
另一种类型的数据是构成shapekey数据的向量数组,因此您将获得一个包含3个数字的数组的数组。混合器中的shapekey是一组矢量,用于定义相对于原始位置的顶点移动,这似乎是在此处导出的内容。此数据的morphTarget名称与使用的shapekey名称匹配,默认情况下为"键1","键2" ...
"morphTargets":[{
"name":"Key 1",
"vertices":[[-1.01209,-1.17045,-1.09497],[-1.10082,-1.09175,1.09065],
[-1.085,1.01564,-1.17664],[-1.17373,1.09434,1.00897],
[1.17373,-1.09434,-1.00897],[1.085,-1.01564,1.17664],
[1.10082,1.09175,-1.09065],[1.01209,1.17045,1.09497]]
},{
"name":"Key 2",
"vertices":[[-1.49369,-1.20168,-1.4188],[-1.47777,-1.31454,1.33278],
[-1.26675,1.54064,-1.30763],[-1.25083,1.42778,1.44395],
[1.25083,-1.42778,-1.44395],[1.26675,-1.54064,1.30763],
[1.47777,1.31454,-1.33278],[1.49369,1.20168,1.4188]]
}],
要在导出中获取shapekey数据,您需要启用" Blend Shape动画"并禁用"应用修饰符"。此导出似乎不包括与shapekeys相关的任何关键帧动画。