栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity3d 给人物模型添加动画

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity3d 给人物模型添加动画

拿到一个人物模型,这个模型带有骨骼数据,但是没有动画

我们可以去AssetStore下载通用动画包

然后创建一个动画控制器

创建一个行为树

给其添加参数:两个方向的速度

双击BlendTree节点

进入第二层

设置BlendTree类型

设置BlendTree参数

为各种情况添加对应的动画

站立状态

静止、走、跑 

动画参数的二维坐标系

每一个点对应一个动画的状态

红色的点是原点

通过这个可以检查动画的方向是否正确

在脚本中传入动画系统所需要的参数

//动画控制器
Animator anim;
//当前位移
Vector3 move;

void Start()
{
    //获取动画组件
    anim = GetComponent();
}

//获取按键输入
float v = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");
//获取位移
move = new Vector3(h,0,v);

void PlayAnim()
{
    //按下左边Shift键行走
    if (Input.GetKey(KeyCode.LeftShift))
    {
        move *= 0.5f;
    }
    
    //传入动画所需要的参数
    anim.SetFloat("SpeedX", move.x);
    anim.SetFloat("SpeedY", move.z);
}

效果

蹲下状态

静止、蹲着走

    //是否蹲下
    bool isCrouched = false;

    void Crouch()
    {
        if(Input.GetKeyDown(KeyCode.K))
        {
            //状态反转
            isCrouched = isCrouched ? false : true;

            if (isCrouched)
                anim.SetBool("isCrouched",true);
            else
                anim.SetBool("isCrouched", false);
        }
    }

跳跃状态

 

注意:需要把过度条件中的退出时间取消,不然跳跃的动画可能无法播放或者播放不及时

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号