首页 技术 正文
技术 2022年11月16日
0 收藏 845 点赞 3,200 浏览 1734 个字

变形动画状态机——MeshAnimator,是针对MeshAnimation的状态管理器,有大量类似Unity animator的功能,但MeshAnimator操作会更加简便,更加直观,居家旅(zhuang)行(bi)必备啊有木有!

好了进入正题:

第一步:

首先,我们先创建一个MeshAnimatorControler,有点远,注意到屏幕的下方了可能不好找

Unity插件 – MeshEditor(六) 变形动画状态机

第二步:

注意这就是我们创建的MeshAnimatorControler,每个MeshAnimator对应一个MeshAnimatorControler,在MeshAnimatorControler中建立各个动画片段之间的关系

Unity插件 – MeshEditor(六) 变形动画状态机

第三步:

然后我们将他按自己的喜好重名个名称,选中他并用菜单栏选项:Window/变形动画状态机   打开

Unity插件 – MeshEditor(六) 变形动画状态机

初始的话,打开是这个样子的,目前里面的动画片段是空的

Unity插件 – MeshEditor(六) 变形动画状态机

第四步:

用之前变形动画编辑器(Component/变形动画编辑器)K好的动画添加到里面去,怎么K动画我就不细说了,前一有描述,总之我这里用Cube的网格K了4个动画

Unity插件 – MeshEditor(六) 变形动画状态机

然后将他们一一拖入刚才的“变形动画状态机”窗口

Unity插件 – MeshEditor(六) 变形动画状态机

我们可以看到此时的状态机已经记录了第一次拖入的动画片段的顶点数(右上角)为24,也就是说此状态机之后只会接受面向24个网格顶点的动画片段,不是的话就拖不进去的,默认会将第一个拖入的片段设为缺省动画,我们可以在动画片段上用鼠标随意拖拽其位置,如果超出窗口边界了,或者说某种原因导致窗口缩小看不到一些动画片段了,可以点击右上角的所有动画片段索引,看不到的动画片段会立马回到正中间高亮

Unity插件 – MeshEditor(六) 变形动画状态机

在动画片段上右击可以选择将此片段建立过渡关系到另一动画片段,也可以设置新的缺省动画

Unity插件 – MeshEditor(六) 变形动画状态机

第五步:

我们这里先建立一连串的复杂关系再说

Unity插件 – MeshEditor(六) 变形动画状态机

过渡关系连线的规则是,从一个动画片段A右侧连接至下一个动画片段B左侧,代表的过渡关系为:A过渡到B

选中任一片段,可以查看由他过渡出去的所有过渡关系,选中指定的过渡关系,可以为其设置过渡条件

Unity插件 – MeshEditor(六) 变形动画状态机

红色标记的连线为当前选中的过渡关系,可以点击delete删除它,勾选has exit time则在动画结束时自动跳转到下一动画,同时会忽略后面的过渡条件,如果不勾选,则后面的bool判断条件生效,如果bool变量jump的值为true,动画会过渡到下一动画,可以在代码中使用SetBool设置bool变量的值,只支持bool变量,不支持float之类的

MeshAnimator _MeshAnimator;void Start () {
_MeshAnimator = transform.GetComponent<MeshAnimator>();
}void Update () {
if (Input.GetMouseButtonDown(0))
{
Debug.Log("行走");
_MeshAnimator.SetBool("going",true);
}
if (Input.GetMouseButtonDown(1))
{
Debug.Log("跳跃");
_MeshAnimator.SetBool("jump", true);
}
if (Input.GetMouseButtonDown(2))
{
Debug.Log("重置");
_MeshAnimator.SetBool("jump", false);
_MeshAnimator.SetBool("going", false);
}
}

第六步:

此时我们就可以随便找个cube给他挂上MeshAnimator,并将我们上面编辑的MeshAnimatorControler拖给他

Unity插件 – MeshEditor(六) 变形动画状态机

第七步:

运行程序,我们可以看到角色(cube)先是原地闲置,然后行走,再切换到跳跃,最后攻击

Unity插件 – MeshEditor(六) 变形动画状态机

都是按照这条轨迹线走下去的,因为另一条轨迹线并未启用,当然,如果启用了的同时有两条轨迹线都满足条件,那么它也只会选择其中的一条进行下去

Unity插件 – MeshEditor(六) 变形动画状态机

外部可控开关有play和stop

Unity插件 – MeshEditor(六) 变形动画状态机

加入了新的方法,获取当前的动画状态,返回当前动画片段的名称

Unity插件 – MeshEditor(六) 变形动画状态机

设置当前的动画状态,忽略状态机中连线过渡关系,角色会立即跳转到该动画

Unity插件 – MeshEditor(六) 变形动画状态机

DLL版插件地址:http://download.csdn.net/detail/qq992817263/9659011

源码请看第一篇

—–by MeshEditor

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849