How do I get BindPose?

First, I read the FBX file and generated my own file.

            var scenes = new Scene();
            var opt = new FbxLoadOptions() { KeepBuiltinGlobalSettings = true };
            scenes.Open(fbxPath, opt);
            Write1S(scenes, SavePath);

I need to obtain the bindpose to generate a custom format file. How can I get the bindpose from Node or Bone?

-		Entity	{Aspose.ThreeD.Entities.Skeleton}	Aspose.ThreeD.Entity {Aspose.ThreeD.Entities.Skeleton}
		Excluded	false	bool
		Name	""	string
+		ParentNode	{<<0_CharAni>> : Skeleton}	Aspose.ThreeD.Node
+		ParentNodes	Count = 1	System.Collections.Generic.List<Aspose.ThreeD.Node>
+		Properties	{Aspose.ThreeD.PropertyCollection}	Aspose.ThreeD.PropertyCollection
+		Scene	{Aspose.ThreeD.Scene}	Aspose.ThreeD.Scene
		Size	0	double
		Type	Bone	Aspose.ThreeD.Entities.SkeletonType
		name	""	string
+		properties	{Aspose.ThreeD.PropertyCollection}	Aspose.ThreeD.PropertyCollection
+		非公共成员		

I modified the file by opening FBX. FBX has two matrices: TransformLink and Transform.

Deformer: 12319, "SubDeformer::", "Cluster" {
		Version: 100
		UserData: "", ""
		Indexes: *0 {
			a: 
		}
		Weights: *0 {
			a: 
		}
		Transform: *16 {
			a: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
		}
		TransformLink: *16 {
			a: 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
		}

If obtaining the bindpose is difficult, could you provide these two matrices to the Bone?

Thanks for your reply.

Hi @LuoHui

BindPose from FBX are represented by Pose

Bone and Pose are all placed under Scene.Library, so you can get all of them by:

            var fbx = Scene.FromFile(@"test.FBX");
            var bones = fbx.Library.Where(a => a is Bone).Select(a => (Bone)a).ToArray();
            var skeletons = fbx.Library.Where(a => a is Skeleton).Select(a => (Skeleton)a).ToArray();
            var poses = fbx.Library.Where(a => a is Pose).Select(a => (Pose)a).ToArray();

There’s BoneTransform and Transform in Bone class, I’m not sure if these are what you want, you can have a try.

Thanks.

i will try thx u!