Пример #1
0
 public Entity(SkinnedMesh skinnedMesh)
 {
     this.SkinnedMesh = skinnedMesh;
     this.Name = "Entity" + Debug.NextObjectId;
     SubmeshMaterials = new Material[skinnedMesh.submeshes.Count];
     CreateControls();
 }
Пример #2
0
        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;
        }