Quellcode durchsuchen

Fixing animation curve import

BearishSun vor 9 Jahren
Ursprung
Commit
a86612c730
1 geänderte Dateien mit 9 neuen und 3 gelöschten Zeilen
  1. 9 3
      Source/BansheeFBXImporter/Source/BsFBXImporter.cpp

+ 9 - 3
Source/BansheeFBXImporter/Source/BsFBXImporter.cpp

@@ -1735,10 +1735,16 @@ namespace bs
 			FBXBoneAnimation& boneAnim = clip.boneAnimations.back();
 			boneAnim.node = importScene.nodeMap[node];
 
-			boneAnim.translation = importCurve<Vector3, 3>(translation, importOptions, clip.start, clip.end);
-			boneAnim.scale = importCurve<Vector3, 3>(scale, importOptions, clip.start, clip.end);
+			if(hasCurveValues(translation))
+				boneAnim.translation = importCurve<Vector3, 3>(translation, importOptions, clip.start, clip.end);
+
+			if(hasCurveValues(scale))
+				boneAnim.scale = importCurve<Vector3, 3>(scale, importOptions, clip.start, clip.end);
+
+			TAnimationCurve<Vector3> eulerAnimation;
+			if(hasCurveValues(rotation))
+				eulerAnimation = importCurve<Vector3, 3>(rotation, importOptions, clip.start, clip.end);
 
-			TAnimationCurve<Vector3> eulerAnimation = importCurve<Vector3, 3>(rotation, importOptions, clip.start, clip.end);
 			if(importOptions.reduceKeyframes)
 			{
 				boneAnim.translation = reduceKeyframes(boneAnim.translation);