Unity为人物模型 添加动效Animator

27 篇文章 19 订阅
订阅专栏

码字不易,转载请注明出处^ o ^


1 前言

Unity导入一个人物模型后,一般还需要让它动起来。并且,还需要有一定的状态管理,比如按A键就做跑的动作,按B键就做打人的动作,等等。
本文就从无到有,讲一下如何快速导入一个人物模型,然后动起来。

本文着重讨论的是人物模型,因为这种模型的动效,可以从网站下载,不需要自己设计!
这个网站就是https://www.mixamo.com/#/
这是Adobe旗下的一款产品,可以免费上传静态模型文件,绑定动画调试,并下载,很良心。不过我们不需要这个功能,我们只想从它那下载动画文件,自己使用。

2 设计流程

2.1 基础环境搭建

首先,创建一个新的Unity工程。打开后,是一个干净的场景:
在这里插入图片描述然后呢,搞一个平板,作为地面。
在这里插入图片描述然后呢,搞个模型进来。
有很多网站。我这里推荐2个。

  1. https://free3d.com/zh/3d-models/ 这个模型丰富,带纹理。
  2. https://www.mixamo.com/#/ 这个主要目的是下载动画文件,下载的同时,模型也给你了,不过模型没有纹理,俗称【白模】

咱们简单操作,就从第二个网站下载一个。
在这里插入图片描述
得到的是一个fbx文件。

模型拖到【Project】面板中,相当于导入了。接着,拖到Hierarchy面板中,相当于应用到场景了。
在这里插入图片描述

为了让人物可以跟下面下载的动画匹配,有一步非常重要的工作,如下:
在这里插入图片描述
Project面板,选中该模型,Inspector面板,Animation Type修改为Humanoid。这会让模型保证是人体标准的5个大骨骼。
在这里插入图片描述改好以后,查看该模型详细信息,即点击小三角形,可以看到一个小人物图标。

2.2 动画搭建

先说一下动画系统的核心概念。新版本的Unity,搞动画需要2个东西,AnimatorAnimator Controller

  1. Animator,动画。如跑,跳,举手,各自是一个动画。文件后缀.anim。可以从网站下载,当然,你也可以自己设计。
  2. Animator Controller,动画控制器。文件后缀,.controller。打开是一个图形化的状态机,可以控制多个动画。一般自己创建。

2.2.1 获得一组anim动画文件

动画自己编辑,太费事了,我们可以从网上下载来,直接应用到模型上!
下载地址:
https://www.mixamo.com

在这里插入图片描述

你可以搜索不同的状态,如run, attack, dead,jump,idle,等等。然后下载下来。

下载的不是纯粹的动画文件,而是一个fbx文件,包含了模型本身,每个模型包含一种动作。所以我们还需要提取一下。

下载后,先把fbx导入到Unity中,然后,需要像2.1节说的,把Animation Type改为Humanoid。这样,动画类型也能保证是以人体的标准形式展现。

然后选中模型,点击这个文件的小三角形,出来后,看到一个蓝绿色的文件没?它就是动画文件。
在这里插入图片描述

选中它,然后Ctrl + D,或者菜单栏的Edit -> Duplicate,就可以把动画提取出来。提取出来后,同级文件夹下,就多了一个后缀为anim的文件,可以改一下名字,比如叫idle.anim

好了,接下来继续,一顿操作猛如虎,下载N个模型,提取N种动画,
把这些都放到一个文件夹下。这些就是你想要的所有动作了。

在这里插入图片描述
接下来,需要搞个动画状态机(Animator Controller),根据不同的状态来切换不同的动画了。

2.2.2 动画状态机(Animator Controller)

在Project面板,Animiation目录下(目录随便你,建议和2.2.1的动画文件放在一起)。右键,Create -> Animation Controller

在这里插入图片描述
建好后,长这样。
在这里插入图片描述
双击它,进入了动画编辑面板:
在这里插入图片描述

默认3种。
Any State:表示任意状态的特殊状态。
Entry:表示状态机的入口状态。组件被激活后无条件跳转到该状态,一般需要把它连到我们自定义的默认态,如Idle
Exit:表示状态机的出口状态。如果动画控制器只有一层,那么这个状态没有用。如果有多层,需要从子状态机中返回到上一层(Layer)时,把状态指向Exit就可以了。本文是不需要用到。

好了,接下来,我们开始自定义:
在操作区,右键,Create State -> Empty。新增状态。比如idle
在这里插入图片描述
选择idle,在Inspector面板,Motion绑定好一个动画。例如就是我们前面得到的idle.anim
在这里插入图片描述

同理创建好run,attack, dead3种状态。
接下来,我们开始定义状态之间如何切换。
目标:

  1. 任何状态下,可以触发attackattack一次后,自动进入idle
  2. 任何状态下可以触发dead,之后,无法进入其他状态
  3. idle状态下,可以触发runrun可以触发idle

首先,先创建触发一下条件。在Anomator->Paramaters添加。
在这里插入图片描述
触发条件有多种。
前三种是设置值,float, Int, bool。在脚本,可以配置值来触发动画。
例如bool可以这样触发:

gameObj.GetComponent<Animator>().SetBool("Is_move", true);

还有一种Trigger,类似于单选框,代码中这样触发:

gameObj.GetComponent<Animator>().SetTrigger("Attack");

接下来,按前面的3个目标,分别讨论。

(1) 任何状态下,可以触发attack,attack一次后,自动进入idle。

选中AnyState,右键,Make Transition。出来一条线,连接到attack
这个线代表状态切换,可以有条件。如何设置条件?
点击选中这根线:
在这里插入图片描述
Inspector面板,最下面,Conditions,添加条件。
咱们就前面配置的一个触发条件Attack
这样,只要代码中执行:

gameObj.GetComponent<Animator>().SetTrigger("Attack");

该游戏对象,都会从任意状态,进入攻击状态。

还有一件事,attack一次后,自动进入idle。这个简单,直接连一根线,到Idle不加任何触发条件,就可以实现。Attack执行一次,就会进入Idle

(2) 任何状态下可以触发dead,之后,无法进入其他状态

首先,像(1)一样,从AnyState连一根线到Dead。然后加一个Trigger类型的触发条件,如Dead
因为Dead后啥也干不了了,所以Dead不需要连到其他地方。

(3) idle状态下,可以触发run,run可以触发idle

先搞一个Bool类型的触发条件,名字叫Running
然后,Idle连一根线到run。加触发条件Running=true
在这里插入图片描述
再从run连一根线到idle,加触发条件:Running=false

最后,把Entry连接到Idle,因为Idle为默认状态。另外,还需要让idle的动画,为循环播放,否则播放完就不动了。
在这里插入图片描述

至此,整体状态机的图就好了。
在这里插入图片描述

2.3 模型绑定动画

把模型对象,添加一个Animotor组件。
把Controller,设置为前面写的.controller状态机。

在这里插入图片描述
另外,如果你有按2.1节说的,Animation Type修改为Humanoid,则Avatar会有个默认值,如果为空,则说明你没改好,会有问题的。

至此,运行起游戏,不带任何代码,动画就会执行了,默认一直显示idle的那个动画。

如果要动态切换,就需要加一点脚本了。

2.4 脚本切换动画

这个就比较简单了。先写个脚本如下。

public class AvatarController : MonoBehaviour
{

public void DoRun() {
    this.gameObject.GetComponent<Animator>().SetBool("Running", true);
    //TODO 也可以同时修改transform.position来实际调整距离
}

public void DoAttack() {
    this.gameObject.GetComponent<Animator>().SetBool("Running", false);
    this.gameObject.GetComponent<Animator>().SetTrigger("Attack");
}

public void Stop() {
    this.gameObject.GetComponent<Animator>().SetBool("Running", false);
}
}

然后UI上加3个按钮,绑定这3个函数。

效果如下:
在这里插入图片描述

unity怎么让模型起来
weixin_49406762的博客
09-19 9828
第一步:导入模型 将下载或制作好的模型放在Assets目录下。 第二步:创建Animator 在Project菜单板右键Creat-Animator Controller 点击Animator Controller,弹出编辑栏 拖入动画文件,Entry处右键选择make Transition,并连接到动画文件 更换动画可在inspector面板中选择替换 第三步:在模型上设置Animator模型拖入Scene,在inspector,点击 add component...
unity精美模型+作+贴图
09-27
unity资源,共6个模型,有作有贴图,可直接在unity中使用,不需要通过其他3d软件进行导出。
Unity用官方第三人称Third Person模板,替换成自己的人物
最新发布
加载中.......
04-30 1171
官方的第三人称模板是使用URP渲染管线制作,本文章会使用3D基础渲染管线,当然URP渲染管线也是同样的步骤。URP管线可以直接创建官方模板直接从步骤六开始。 这样我们就得到了一个用官方资源替换成自己模型的比较好用的第三人称,Very Good!
Unity人物的几种方式
qq_62947569的博客
12-30 8732
Unity中几种移方式
Unity3d笔记——利用Animator使模型起来
热门推荐
github_37462634的博客
03-11 1万+
Unity3d笔记——利用Animator使模型起来一. 从Asset Store中下载合适的模型 本篇记录了一个小demo的制作过程,从找模型并下载,到创建Animator,绑定C#脚本,最后实现按下左箭头模型向我们的左边旋转,按下右箭头模型向我们右边旋转的全部过程。希望大家能共同学习共同进步。 一. 从Asset Store中下载合适的模型 首先点击菜单栏中的window -&amp;amp;amp;amp;amp;amp;amp;gt; ass...
Unity3D:让人物起来
橙汁的博客
04-29 259
让导入的人物模型起来
Unity2D基础之人物动画、移、跳跃
qq_43478882的博客
02-11 7126
Unity2D基础之人物动画、移、跳跃
unity 添加人物控制器行走动画
xiehubiao的专栏
12-21 4589
效果:上下左右 控制人物行走 1.添加人物模型,(一个双臂张开的稻草人一地矗在那) 2.给人物添加animator组件,并双击编辑 3.拖入人物的站立,行走,跑等姿势,并建立关联,右键make transation 4.添加 capsule collider 胶囊碰撞检测,调整好胶囊的大小,与人物长不多大小 5.添加人物控制器代码 using System.Collections; using System.Collections.Generic; using UnityEngi.
Unity人物的几种方法
类人_猿的博客
01-09 5311
方法一:transform.Translate 再讲之前先知道Vector3.forward就是朝前也就是Z轴的方向,如果不明白的可以看一下图 世界坐标系移 代码中写的是根据世界坐标轴的z轴方向移,然后再看一下右上角的世界坐标轴发现是根据世界坐标轴的z轴移是没有问题的,这里在观察一个问题就是这个物体的自身坐标轴的z轴是朝向左侧的,这个就是因为方法第二个参数的作用,Space.World为根...
unity 添加动画步骤
qq_614617158的博客
07-31 719
5.点击绑定Animatr的节点把动画拖拽到动画播放器中。3.把动画器拉到Animatr组件控制器中去。4.创建动画,把创建的动画推拽到动画器中。2.在需要做动画的节点添加动画组件。动画中不能有这俩组件。6.点击动画可以调节速度。
Unity入门学习——游戏对象创建与动画设置
weixin_73402838的博客
06-05 1620
游戏物体创建、动画创建、多动画切换
Unity人物模型_Riko 1.3
11-27
Riko人物模型,可直接导入(包含骨骼动画): 人物模型细节在:https://blog.csdn.net/qq_42292831/article/details/84540101 有部分提到。
一套unity人物模型
09-06
风吹裙子美女(有动画unity模型;风吹裙子美女(有动画);风吹裙子美女(有动画);风吹裙子美女(有动画);
Unity Avatar角色换装实例
05-13
Unity Avatar角色换装实例,在同时也附带了一篇博客blog.liujunliang.com.cn
Unity人物模型资源集合
08-09
此资源包含7个人物模型,每个人物模型有多套皮肤,男性和女性模型都有,并且包含人物动画
unity3D人物模型
12-18
unity3D人物模型(免积分下载),有小孩,大人,老人模型,可以用于unity的游戏人物,详细情况请看我的文章介绍
Unity3D人物模型资源
08-09
本资源包含 3 个女性卡通人物 fbx 模型文件
Unity人物角色怪物模型
07-11
unity3d 游戏人物模型 精灵族 怪物 模型作 Monster BaseTeam v1.2 unity3d 游戏人物模型 Merchant Girl NPC unity3d 可爱女孩角色 带动画 unity3d 游戏人物模型 Villager A Girl NPC 红发女孩 v1.5 unity3d ...
UNITY3d人物模型+
10-06
UNITY3d人物模型+
unity如何给人物模型添加碰撞体
06-09
Unity中,可以通过添加Collider组件来给人物模型添加碰撞体。具体操作步骤如下: 1. 选中人物模型,在Inspector面板中点击“Add Component”按钮,选择“Collider”选项,可以看到Unity提供的不同类型的碰撞体组件,如Box Collider、Sphere Collider等。 2. 根据人物模型的形状和大小,选择适合的碰撞体组件进行添加,并进行相应的设置。 3. 如果人物模型需要进行物理交互,还需要添加刚体组件,方便实现物理效果。 4. 在场景中测试人物模型的碰撞体效果,可以使用“Scene”视图和“Game”视图进行观察和调试。 总之,添加碰撞体可以为人物模型增加物理交互效果,提高游戏的真实感和玩家体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • JPEG压缩原理与DCT离散余弦变换 63090
  • 图像压缩原理 47566
  • signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)的原因和解决办法 37435
  • pkg-config 详解 36934
  • ffmpeg filter过滤器 基础实例及全面解析 36310

分类专栏

  • Unity 27篇
  • python 1篇
  • OpenGL 2篇
  • C++ 7篇
  • webRTC 6篇
  • 多媒体 3篇
  • android framework 1篇
  • android应用 26篇
  • android Graphics 7篇
  • ffmpeg 7篇
  • opencv 1篇
  • 图像处理 14篇
  • 编译处理 4篇
  • 后台开发 3篇
  • java知识 7篇
  • 物联网 1篇
  • 新技术-区块链 1篇
  • 新技术-人工智能 8篇
  • TensorFlow 4篇
  • IT工具使用 7篇
  • 电子硬件 1篇

最新评论

  • android OpenGL渲染3D模型文件

    韦佳宁: mtl文件里有路径

  • android OpenGL渲染3D模型文件

    n3lij5g9a_b: 大佬您好请教一下,我如果直接将m_p model路径换成别的obj似乎不行,缺少纹理信息,是不是哪里需要加载mtl的方法我没找到

  • 一款简单好用的Unity任务系统

    m0_65348565: 学生自用,可以发我一份吗?谢谢!!1085633621@qq.com

  • 一种signal 5 (SIGTRAP), code 1 (TRAP_BRKPT)的原因

    3的4次方: 想问一下博主使用什么工具打印的coredump信息,我用的工具是systemd-coredump只能看到很少的信息

  • 一款简单好用的Unity任务系统

    乐乐乐兹: 请问可以求一份吗?毕设题目是虚拟仿真实验,感觉可以参考这个表情包

大家在看

  • String常用操作 2445
  • 【华为OD】D卷真题200分:会议接待 JavaScript代码实现[思路+代码] 684
  • [知识点]c++运算符重载
  • YOLOv8改进有效系列目录 | 包含卷积、主干、检测头、注意力机制、Neck
  • 【C++修行之道】类和对象(四)运算符重载 1379

最新文章

  • 图形学中的抗锯齿讨论以及在unity中的应用
  • 叉乘在图形学中的几何意义 ---- 判断一个点是否在三角形内
  • Unity打AB包时,图片是如何被处理的
2023年3篇
2022年17篇
2021年40篇
2020年4篇
2019年9篇
2018年18篇
2017年12篇
2016年13篇
2015年4篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newchenxf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司哈尔滨外贸网站设计多少钱哈密网站制作设计哪家好清徐百度标王多少钱天门网络推广推荐阿坝外贸网站建设价格海南SEO按天收费公司湘潭seo排名推荐醴陵外贸网站制作哪家好思茅关键词按天收费价格南宁网络广告推广海南网站设计模板报价南平建站公司淮安百度竞价包年推广哪家好广元网站seo优化公司潍坊网站搭建公司郑州网站优化推荐仙桃企业网站改版报价绥化百姓网标王推广公司忻州网站制作设计多少钱连云港企业网站改版多少钱芜湖关键词排名价格泰州网站改版多少钱南通企业网站建设推荐南充网站制作设计多少钱新余网页制作报价海南阿里店铺托管公司天津企业网站建设报价鹤壁网站优化排名海南网络营销价格南京网站设计报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化