示例#1
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);
            }
        }
示例#2
0
 public void PlayAnimation(AnimationClip anim, float transitionTime)
 {
     Animation = anim;
     foreach (var node in skeletonNodeList)
     {
         var name = node.Name;
         AnimationNodeChannel channel;
         anim.Channels.TryGetValue(name, out channel);
         BlendNode newBlendNode = null;
         if (channel == null)
         {
             newBlendNode = new PoseBlendNode(node);
         }
         else
         {
             newBlendNode = new AnimationBlendNode(channel);
         }
         newBlendNode.FadingOut = BlendNodes[name];
         newBlendNode.TotalTransitionTime = transitionTime;
         BlendNodes[name] = newBlendNode;
     }
 }