예제 #1
0
        /// <summary>
        /// Constructs a new animation player.
        /// </summary>
        public AnimationPlayer(SkinningData skinningData)
        {
            if (skinningData == null)
                throw new ArgumentNullException("skinningData");

            skinningDataValue = skinningData;

            boneTransforms = new Matrix[skinningData.BindPose.Count];
            worldTransforms = new Matrix[skinningData.BindPose.Count];
            skinTransforms = new Matrix[skinningData.BindPose.Count];

            _currentAnimationClip = new AnimationClipInstance(skinningData.BindPose.Count);
            _targetAnimationClip = new AnimationClipInstance(skinningData.BindPose.Count);
        }
        public override void LoadContent(ContentManager contentManager)
        {
            base.LoadContent(contentManager);

            Model = contentManager.Load<Model>(_assetFile);

            _skinningData = Model.Tag as SkinningData;

            Debug.Assert(_skinningData != null, "Model (" + _assetFile + ") contains no Skinning Data!");

            _animationPlayer = new AnimationPlayer(_skinningData);
            _animationPlayer.SetAnimationSpeed(_speedScale);

            if (_initClipName != null)
            {
                PlayAnimation(_initClipName, _initLoop, _initBlendTime);
            }
        }
        public override void LoadContent(ContentManager contentManager)
        {
            base.LoadContent(contentManager);

            _model = contentManager.Load<Model>(_assetFile);

            _skinningData = _model.Tag as SkinningData;

            System.Diagnostics.Debug.Assert(_skinningData != null, "Model (" + _assetFile + ") contains no Skinning Data!");

            _animationPlayer = new AnimationPlayer(_skinningData);
            _animationPlayer.SetAnimationSpeed(_speedScale);
            _animationPlayer.AnimationComplete += s => { if (AnimationComplete != null) AnimationComplete(s); };
        }