|
@@ -83,7 +83,11 @@ import com.jme3.util.BufferUtils;
|
|
|
* corrupted
|
|
|
*/
|
|
|
public ArmatureModifier(Structure objectStructure, Structure modifierStructure, BlenderContext blenderContext) throws BlenderFileException {
|
|
|
- if (this.validate(modifierStructure, blenderContext)) {
|
|
|
+ Structure meshStructure = ((Pointer) objectStructure.getFieldValue("data")).fetchData(blenderContext.getInputStream()).get(0);
|
|
|
+ Pointer pDvert = (Pointer) meshStructure.getFieldValue("dvert");// dvert = DeformVERTices
|
|
|
+
|
|
|
+ //if pDvert==null then there are not vertex groups and no need to load skeleton (untill bone envelopes are supported)
|
|
|
+ if (this.validate(modifierStructure, blenderContext) && pDvert.isNotNull()) {
|
|
|
Pointer pArmatureObject = (Pointer) modifierStructure.getFieldValue("object");
|
|
|
if (pArmatureObject.isNotNull()) {
|
|
|
ArmatureHelper armatureHelper = blenderContext.getHelper(ArmatureHelper.class);
|
|
@@ -116,7 +120,6 @@ import com.jme3.util.BufferUtils;
|
|
|
Skeleton skeleton = new Skeleton(bonesList.toArray(new Bone[bonesList.size()]));
|
|
|
|
|
|
// read mesh indexes
|
|
|
- Structure meshStructure = ((Pointer) objectStructure.getFieldValue("data")).fetchData(blenderContext.getInputStream()).get(0);
|
|
|
this.meshOMA = meshStructure.getOldMemoryAddress();
|
|
|
this.readVerticesWeightsData(objectStructure, meshStructure, skeleton, blenderContext);
|
|
|
|