@@ -690,69 +690,61 @@ public int Compare(Vector3 a, Vector3 b)
690
690
}
691
691
}
692
692
693
- [ Test ]
694
- public void TestBlendShapeExport ( )
693
+ [ Test , TestCaseSource ( typeof ( AnimationTestDataClass ) , "BlendShapeTestCases" ) ]
694
+ public void TestBlendShapeExport ( string fbxPath )
695
695
{
696
- // TODO: find more practical test data
697
- var fbxPaths = new string [ ] {
698
- "FbxExporters/Editor/UnitTests/Models/blendshape.fbx" ,
699
- "FbxExporters/Editor/UnitTests/Models/blendshape_with_skinning.fbx"
700
- } ;
701
- foreach ( var fbxPath in fbxPaths )
696
+ // add fbx to scene
697
+ GameObject originalFbxObj = AssetDatabase . LoadMainAssetAtPath ( "Assets/" + fbxPath ) as GameObject ;
698
+ Assert . IsNotNull ( originalFbxObj ) ;
699
+ GameObject originalGO = GameObject . Instantiate ( originalFbxObj ) ;
700
+ Assert . IsTrue ( originalGO ) ;
701
+
702
+ // export fbx
703
+ // get GameObject
704
+ string filename = GetRandomFbxFilePath ( ) ;
705
+ ModelExporter . ExportObject ( filename , originalGO ) ;
706
+ GameObject fbxObj = AssetDatabase . LoadMainAssetAtPath ( filename ) as GameObject ;
707
+ Assert . IsTrue ( fbxObj ) ;
708
+
709
+ var originalSMR = originalGO . GetComponentInChildren < SkinnedMeshRenderer > ( ) ;
710
+ var exportedSMR = fbxObj . GetComponentInChildren < SkinnedMeshRenderer > ( ) ;
711
+ Assert . IsNotNull ( originalSMR ) ;
712
+ Assert . IsNotNull ( exportedSMR ) ;
713
+
714
+ var originalMesh = originalSMR . sharedMesh ;
715
+ var exportedMesh = exportedSMR . sharedMesh ;
716
+ Assert . IsNotNull ( originalMesh ) ;
717
+ Assert . IsNotNull ( exportedMesh ) ;
718
+
719
+ // compare blend shape data
720
+ Assert . AreNotEqual ( originalMesh . blendShapeCount , 0 ) ;
721
+ Assert . AreEqual ( originalMesh . blendShapeCount , exportedMesh . blendShapeCount ) ;
702
722
{
703
- // add fbx to scene
704
- GameObject originalFbxObj = AssetDatabase . LoadMainAssetAtPath ( "Assets/" + fbxPath ) as GameObject ;
705
- Assert . IsNotNull ( originalFbxObj ) ;
706
- GameObject originalGO = GameObject . Instantiate ( originalFbxObj ) ;
707
- Assert . IsTrue ( originalGO ) ;
708
-
709
- // export fbx
710
- // get GameObject
711
- string filename = GetRandomFbxFilePath ( ) ;
712
- ModelExporter . ExportObject ( filename , originalGO ) ;
713
- GameObject fbxObj = AssetDatabase . LoadMainAssetAtPath ( filename ) as GameObject ;
714
- Assert . IsTrue ( fbxObj ) ;
715
-
716
- var originalSMR = originalGO . GetComponentInChildren < SkinnedMeshRenderer > ( ) ;
717
- var exportedSMR = fbxObj . GetComponentInChildren < SkinnedMeshRenderer > ( ) ;
718
- Assert . IsNotNull ( originalSMR ) ;
719
- Assert . IsNotNull ( exportedSMR ) ;
720
-
721
- var originalMesh = originalSMR . sharedMesh ;
722
- var exportedMesh = exportedSMR . sharedMesh ;
723
- Assert . IsNotNull ( originalMesh ) ;
724
- Assert . IsNotNull ( exportedMesh ) ;
725
-
726
- // compare blend shape data
727
- Assert . AreNotEqual ( originalMesh . blendShapeCount , 0 ) ;
728
- Assert . AreEqual ( originalMesh . blendShapeCount , exportedMesh . blendShapeCount ) ;
723
+ var deltaVertices = new Vector3 [ originalMesh . vertexCount ] ;
724
+ var deltaNormals = new Vector3 [ originalMesh . vertexCount ] ;
725
+ var deltaTangents = new Vector3 [ originalMesh . vertexCount ] ;
726
+ var fbxDeltaVertices = new Vector3 [ originalMesh . vertexCount ] ;
727
+ var fbxDeltaNormals = new Vector3 [ originalMesh . vertexCount ] ;
728
+ var fbxDeltaTangents = new Vector3 [ originalMesh . vertexCount ] ;
729
+
730
+ for ( int bi = 0 ; bi < originalMesh . blendShapeCount ; ++ bi )
729
731
{
730
- var deltaVertices = new Vector3 [ originalMesh . vertexCount ] ;
731
- var deltaNormals = new Vector3 [ originalMesh . vertexCount ] ;
732
- var deltaTangents = new Vector3 [ originalMesh . vertexCount ] ;
733
- var fbxDeltaVertices = new Vector3 [ originalMesh . vertexCount ] ;
734
- var fbxDeltaNormals = new Vector3 [ originalMesh . vertexCount ] ;
735
- var fbxDeltaTangents = new Vector3 [ originalMesh . vertexCount ] ;
736
-
737
- for ( int bi = 0 ; bi < originalMesh . blendShapeCount ; ++ bi )
738
- {
739
- Assert . AreEqual ( originalMesh . GetBlendShapeName ( bi ) , exportedMesh . GetBlendShapeName ( bi ) ) ;
740
- Assert . AreEqual ( originalMesh . GetBlendShapeFrameCount ( bi ) , exportedMesh . GetBlendShapeFrameCount ( bi ) ) ;
732
+ Assert . AreEqual ( originalMesh . GetBlendShapeName ( bi ) , exportedMesh . GetBlendShapeName ( bi ) ) ;
733
+ Assert . AreEqual ( originalMesh . GetBlendShapeFrameCount ( bi ) , exportedMesh . GetBlendShapeFrameCount ( bi ) ) ;
741
734
742
- int frameCount = originalMesh . GetBlendShapeFrameCount ( bi ) ;
743
- for ( int fi = 0 ; fi < frameCount ; ++ fi )
744
- {
745
- Assert . AreEqual ( originalMesh . GetBlendShapeFrameWeight ( bi , fi ) , exportedMesh . GetBlendShapeFrameWeight ( bi , fi ) ) ;
735
+ int frameCount = originalMesh . GetBlendShapeFrameCount ( bi ) ;
736
+ for ( int fi = 0 ; fi < frameCount ; ++ fi )
737
+ {
738
+ Assert . AreEqual ( originalMesh . GetBlendShapeFrameWeight ( bi , fi ) , exportedMesh . GetBlendShapeFrameWeight ( bi , fi ) ) ;
746
739
747
- originalMesh . GetBlendShapeFrameVertices ( bi , fi , deltaVertices , deltaNormals , deltaTangents ) ;
748
- exportedMesh . GetBlendShapeFrameVertices ( bi , fi , fbxDeltaVertices , fbxDeltaNormals , fbxDeltaTangents ) ;
740
+ originalMesh . GetBlendShapeFrameVertices ( bi , fi , deltaVertices , deltaNormals , deltaTangents ) ;
741
+ exportedMesh . GetBlendShapeFrameVertices ( bi , fi , fbxDeltaVertices , fbxDeltaNormals , fbxDeltaTangents ) ;
749
742
750
- var v3comparer = new Vector3Comparer ( ) ;
751
- Assert . That ( deltaVertices , Is . EqualTo ( fbxDeltaVertices ) . Using < Vector3 > ( v3comparer ) , string . Format ( "delta vertices don't match" ) ) ;
752
- Assert . That ( deltaNormals , Is . EqualTo ( fbxDeltaNormals ) . Using < Vector3 > ( v3comparer ) , string . Format ( "delta normals don't match" ) ) ;
753
- Assert . That ( deltaTangents , Is . EqualTo ( fbxDeltaTangents ) . Using < Vector3 > ( v3comparer ) , string . Format ( "delta tangents don't match" ) ) ;
743
+ var v3comparer = new Vector3Comparer ( ) ;
744
+ Assert . That ( deltaVertices , Is . EqualTo ( fbxDeltaVertices ) . Using < Vector3 > ( v3comparer ) , string . Format ( "delta vertices don't match" ) ) ;
745
+ Assert . That ( deltaNormals , Is . EqualTo ( fbxDeltaNormals ) . Using < Vector3 > ( v3comparer ) , string . Format ( "delta normals don't match" ) ) ;
746
+ Assert . That ( deltaTangents , Is . EqualTo ( fbxDeltaTangents ) . Using < Vector3 > ( v3comparer ) , string . Format ( "delta tangents don't match" ) ) ;
754
747
755
- }
756
748
}
757
749
}
758
750
}
0 commit comments