我想知道如何使用皮肤模型处理器来改变模型的动画,就像XNA 4.0中的窗口样本一样?我成功获得了我的模型,它播放了Take 001中的所有动画。我怎样才能根据用户输入播放动画的不同部分?就像跳转... 来自windows的示例中的所有内容都相同,但我在动画播放器中更改了此部分
// Starts playing the entirety of the given clip
public void StartClip(string clip, bool loop)
{
AnimationClip clipVal = skinningData.AnimationClips[clip];
StartClip(clip, TimeSpan.FromSeconds(0), clipVal.Duration, loop);
}
// Plays a specific portion of the given clip, from one frame
// index to another
public void StartClip(string clip, int startFrame, int endFrame, bool loop)
{
AnimationClip clipVal = skinningData.AnimationClips[clip];
StartClip(clip, clipVal.Keyframes[startFrame].Time,
clipVal.Keyframes[endFrame].Time, loop);
}
// Plays a specific portion of the given clip, from one time
// to another
public void StartClip(string clip, TimeSpan StartTime, TimeSpan EndTime, bool loop)
{
CurrentClip = skinningData.AnimationClips[clip];
currentTime = TimeSpan.FromSeconds(0);
currentKeyframe = 0;
Done = false;
this.startTime = StartTime;
this.endTime = EndTime;
this.loop = loop;
// Copy the bind pose to the bone transforms array to reset the animation
skinningData.BindPose.CopyTo(BoneTransforms, 0);
}
这就是我认为我可以选择基于关键帧或时间跨度的动画,但我不知道如何实际告诉游戏播放这部分动画。 感谢您对此的任何帮助
答案 0 :(得分:2)
自从您发布问题以来已经有一段时间了,但我发现这篇文章可能仍然可以帮助您或任何想要解决相同问题的人。
http://www.visionsofafar.com/DaBlog/post/2009/06/30/XNA-and-Animated-Models-from-Maya.aspx
我还没有尝试过,但它看起来像一个简单而有效的解决方案。