public Entity(SkinnedMesh skinnedMesh) { this.SkinnedMesh = skinnedMesh; this.Name = "Entity" + Debug.NextObjectId; SubmeshMaterials = new Material[skinnedMesh.submeshes.Count]; CreateControls(); }
public AnimationState(SkinnedMesh m) { this.Mesh = m; foreach (var node in m.skeleton) { var name = node.Name; skeletonNodeDict[name] = node; skeletonNodeList.Add(node); BlendNodes[name] = new PoseBlendNode(node); } }
public static SkinnedMesh CreateWithFbxsdk(Device device, string filePath, AnimationClipCreateInfo[] clips) { var scene = FBXScene.Load(filePath); if (scene == null) return null; var skinnedMesh = new SkinnedMesh(device); skinnedMesh.FbxsdkFilePath = filePath; var meshDict = new Dictionary<SkeletonNode, FBXMesh>(); skinnedMesh.FbxsdkBuildHierachy(scene.GetRootNode(), null, meshDict); skinnedMesh.FbxsdkLoadSubmeshes(meshDict); skinnedMesh.FbxsdkLoadAnimations(scene, clips); skinnedMesh.skeleton.UpdateDebugDrawBone(); skinnedMesh.CreateControls(); return skinnedMesh; }