|
@@ -403,27 +403,32 @@ namespace Max2Babylon
|
|
{
|
|
{
|
|
// Morph target
|
|
// Morph target
|
|
var maxMorphTarget = morpher.GetMorphTarget(i);
|
|
var maxMorphTarget = morpher.GetMorphTarget(i);
|
|
- var babylonMorphTarget = new BabylonMorphTarget
|
|
|
|
- {
|
|
|
|
- name = maxMorphTarget.Name
|
|
|
|
- };
|
|
|
|
- babylonMorphTargets.Add(babylonMorphTarget);
|
|
|
|
-
|
|
|
|
- // TODO - Influence
|
|
|
|
- babylonMorphTarget.influence = 0f;
|
|
|
|
-
|
|
|
|
- // Target geometry
|
|
|
|
- var targetVertices = ExtractVertices(maxMorphTarget, optimizeVertices);
|
|
|
|
- babylonMorphTarget.positions = targetVertices.SelectMany(v => new[] { v.Position.X, v.Position.Y, v.Position.Z }).ToArray();
|
|
|
|
- babylonMorphTarget.normals = targetVertices.SelectMany(v => new[] { v.Normal.X, v.Normal.Y, v.Normal.Z }).ToArray();
|
|
|
|
-
|
|
|
|
- // Animations
|
|
|
|
- var animations = new List<BabylonAnimation>();
|
|
|
|
- var morphWeight = morpher.GetMorphWeight(i);
|
|
|
|
- ExportFloatGameController(morphWeight, "influence", animations);
|
|
|
|
- if (animations.Count > 0)
|
|
|
|
|
|
+
|
|
|
|
+ // Ensure target still exists (green color legend)
|
|
|
|
+ if (maxMorphTarget != null)
|
|
{
|
|
{
|
|
- babylonMorphTarget.animations = animations.ToArray();
|
|
|
|
|
|
+ var babylonMorphTarget = new BabylonMorphTarget
|
|
|
|
+ {
|
|
|
|
+ name = maxMorphTarget.Name
|
|
|
|
+ };
|
|
|
|
+ babylonMorphTargets.Add(babylonMorphTarget);
|
|
|
|
+
|
|
|
|
+ // TODO - Influence
|
|
|
|
+ babylonMorphTarget.influence = 0f;
|
|
|
|
+
|
|
|
|
+ // Target geometry
|
|
|
|
+ var targetVertices = ExtractVertices(maxMorphTarget, optimizeVertices);
|
|
|
|
+ babylonMorphTarget.positions = targetVertices.SelectMany(v => new[] { v.Position.X, v.Position.Y, v.Position.Z }).ToArray();
|
|
|
|
+ babylonMorphTarget.normals = targetVertices.SelectMany(v => new[] { v.Normal.X, v.Normal.Y, v.Normal.Z }).ToArray();
|
|
|
|
+
|
|
|
|
+ // Animations
|
|
|
|
+ var animations = new List<BabylonAnimation>();
|
|
|
|
+ var morphWeight = morpher.GetMorphWeight(i);
|
|
|
|
+ ExportFloatGameController(morphWeight, "influence", animations);
|
|
|
|
+ if (animations.Count > 0)
|
|
|
|
+ {
|
|
|
|
+ babylonMorphTarget.animations = animations.ToArray();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|