@@ -107,6 +107,8 @@ public enum ExportFormat
107
107
/// </summary>
108
108
private static string DefaultCamera = "" ;
109
109
110
+ private const string SkeletonPrefix = "_Skel" ;
111
+
110
112
/// <summary>
111
113
/// name prefix for custom properties
112
114
/// </summary>
@@ -864,7 +866,7 @@ private bool ExportSkeleton (SkinnedMeshRenderer skinnedMesh, FbxScene fbxScene,
864
866
865
867
// Step 0: map transform to index so we can look up index by bone.
866
868
Dictionary < Transform , int > index = new Dictionary < Transform , int > ( ) ;
867
- for ( int boneIndex = 0 , n = bones . Length ; boneIndex < n ; boneIndex ++ ) {
869
+ for ( int boneIndex = 0 ; boneIndex < bones . Length ; boneIndex ++ ) {
868
870
Transform unityBoneTransform = bones [ boneIndex ] ;
869
871
index [ unityBoneTransform ] = boneIndex ;
870
872
}
@@ -882,12 +884,12 @@ private bool ExportSkeleton (SkinnedMeshRenderer skinnedMesh, FbxScene fbxScene,
882
884
// its corresponding parent, or to the scene if there is none.
883
885
FbxNode fbxBoneNode ;
884
886
if ( ! MapUnityObjectToFbxNode . TryGetValue ( t . gameObject , out fbxBoneNode ) ) {
885
- Debug . LogError ( "node should already be created") ;
887
+ Debug . LogErrorFormat ( "Node {0} should already be created", t . name ) ;
886
888
}
887
889
888
890
// Set it up as a skeleton node if we haven't already.
889
891
if ( fbxBoneNode . GetSkeleton ( ) == null ) {
890
- FbxSkeleton fbxSkeleton = FbxSkeleton . Create ( fbxScene , t . name + "_Skel" ) ;
892
+ FbxSkeleton fbxSkeleton = FbxSkeleton . Create ( fbxScene , t . name + SkeletonPrefix ) ;
891
893
892
894
var fbxSkeletonType = skinnedMesh . rootBone != t
893
895
? FbxSkeleton . EType . eLimbNode : FbxSkeleton . EType . eRoot ;
@@ -957,7 +959,8 @@ private bool ExportSkeleton (SkinnedMeshRenderer skinnedMesh, FbxScene fbxScene,
957
959
double sign ;
958
960
matrix . GetElements ( out translation , out rotation , out shear , out scale , out sign ) ;
959
961
960
- // Bones should have zero rotation, and use a pivot instead.
962
+ // Export bones with zero rotation, using a pivot instead to set the rotation
963
+ // so that the bones are easier to animate and the rotation shows up as the "joint orientation" in Maya.
961
964
fbxBone . LclTranslation . Set ( new FbxDouble3 ( - translation . X * UnitScaleFactor , translation . Y * UnitScaleFactor , translation . Z * UnitScaleFactor ) ) ;
962
965
fbxBone . LclRotation . Set ( new FbxDouble3 ( 0 , 0 , 0 ) ) ;
963
966
fbxBone . LclScaling . Set ( new FbxDouble3 ( scale . X , scale . Y , scale . Z ) ) ;
0 commit comments