Unity中Generic动画类型的相关设置

本文详细介绍了Unity游戏引擎的Mecanim系统中如何使用Generic动画类型来处理角色动画。通过调整骨骼、蒙皮权重、IK设置等,实现人物动作的灵活控制。同时,讨论了如何导入和适配不同来源的动画资源,以及在Unity编辑器中进行动画状态机的配置和过渡,为游戏开发中的角色动画制作提供实用指导。
摘要由CSDN通过智能技术生成
Unnity的Mecanim中动画类型常用的包括Generic以及Humanid两种。这里要介绍的是Generic类型。
人形动画可以选择Humanid类型,但是我们导入某些人形动画时由于还有武器、人物装饰等部件,Humanid的Avatar有时设置起来太过复杂,某些部位映射不上。
但是相信大家都遇到过Generic有时会出现动画能正常的播放,但是播放完成后角色的位置会回到播放前的位置。经过我的实验发现,这是由于即使播放了动画,但是角色的transform其实并没有发生改变。
这是一个什么概念呢,相当于一个人坐在地上重复挥手,此时你的角色就相当于人的手。看似发生了移动,但是相对于身体最后还是没有移动的。所以不进行有效的设置的话,角色的动画并不会影响到角色的位移。![Animator设置](https://img-blog.csdn.net/20170315210950327?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRG9vbXBhcGE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
首先,我们需要在Animator中吧apply root motion选项勾上,勾选上后Mecanim会根据角色的根节点来决定角色的transform。但是勾选上之后我们还需要进行另一个工作,就是指定该角色的根节点即root node。![root node设置](https://img-blog.csdn.net/20170315211238829?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRG9vbXBhcGE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这个地方我们需要查看导入的模型中的骨骼设置,找到位于模型脚
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity循环播放Spine动画的代码可以参考下面的示例代码: ``` using System.Collections; using System.Collections.Generic; using UnityEngine; using Spine.Unity; public class SpineAnimationController : MonoBehaviour { // Spine动画组件 public SkeletonAnimation skeletonAnimation; // Spine动画名称 public string animationName; // 是否循环播放 public bool loop = true; // Start is called before the first frame update void Start() { // 播放Spine动画 skeletonAnimation.AnimationState.SetAnimation(0, animationName, loop); } // Update is called once per frame void Update() { // 如果Spine动画播放结束,则重新播放 if (skeletonAnimation.AnimationState.GetCurrent(0).IsComplete) { skeletonAnimation.AnimationState.SetAnimation(0, animationName, loop); } } } ``` 在上面的示例代码,我们首先定义了一个SkeletonAnimation类型的变量skeletonAnimation,它是Spine动画组件,用于播放Spine动画。我们还定义了一个字符串类型的变量animationName,它是Spine动画的名称。我们还定义了一个布尔类型的变量loop,用于指定是否循环播放Spine动画。 在Start函数,我们调用了skeletonAnimation.AnimationState.SetAnimation函数来播放Spine动画。其,第一个参数0表示Spine动画的TrackIndex,第二个参数animationName表示要播放的Spine动画的名称,第三个参数loop表示是否循环播放Spine动画。 在Update函数,我们检查当前播放的Spine动画是否已经播放完毕,如果已经播放完毕,则重新播放Spine动画
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值