internal SkinnedModelContent(ModelContent model, SkinnedModelBoneContentCollection skeleton, AnimationClipContentDictionary animationClips) { this.model = model; this.skeleton = skeleton; this.animationClips = animationClips; }
internal SkinnedModelContent(SkinnedModelMeshContentCollection meshes, SkinnedModelBoneContentCollection skeleton, AnimationClipContentDictionary animationClips) { this.meshes = meshes; this.skeleton = skeleton; this.animationClips = animationClips; }
public override SkinnedModelContent Process(NodeContent input, ContentProcessorContext context) { if (input == null) { throw new ArgumentNullException("input"); } BoneContent rootBone = MeshHelper.FindSkeleton(input); ValidateModel(input, rootBone, context); // Transform scene according to user defined rotation and scale TransformScene(input); // Processes model's meshes ProcessMeshes(input, context); // Processes model's skeleton SkinnedModelBoneContentCollection skinnedModelBoneCollection = ProcessBones(rootBone, context); // Processes model's animations AnimationClipContentDictionary animationClipDictionary = ProcessAnimations(input, rootBone.Animations, skinnedModelBoneCollection, context); OpaqueDataDictionary processorParameters = new OpaqueDataDictionary(); processorParameters["DefaultEffect"] = MaterialProcessorDefaultEffect.SkinnedEffect; // Uses the default model processor ModelContent modelContent = context.Convert <NodeContent, ModelContent>(input, "ModelProcessor", processorParameters); // Return a new skinned model return(new SkinnedModelContent(modelContent, skinnedModelBoneCollection, animationClipDictionary)); }