Unity插件 - MeshEditor(六) 变形动画状态机
变形动画状态机——MeshAnimator,是针对MeshAnimation的状态管理器,有大量类似Unity animator的功能,但MeshAnimator操作会更加简便,更加直观,居家旅(zhuang)行(bi)必备啊有木有!
好了进入正题:
第一步:
首先,我们先创建一个MeshAnimatorControler,有点远,注意到屏幕的下方了可能不好找
第二步:
注意这就是我们创建的MeshAnimatorControler,每个MeshAnimator对应一个MeshAnimatorControler,在MeshAnimatorControler中建立各个动画片段之间的关系
第三步:
然后我们将他按自己的喜好重名个名称,选中他并用菜单栏选项:Window/变形动画状态机 打开
初始的话,打开是这个样子的,目前里面的动画片段是空的
第四步:
用之前变形动画编辑器(Component/变形动画编辑器)K好的动画添加到里面去,怎么K动画我就不细说了,前一篇有描述,总之我这里用Cube的网格K了4个动画
然后将他们一一拖入刚才的“变形动画状态机”窗口
我们可以看到此时的状态机已经记录了第一次拖入的动画片段的顶点数(右上角)为24,也就是说此状态机之后只会接受面向24个网格顶点的动画片段,不是的话就拖不进去的,默认会将第一个拖入的片段设为缺省动画,我们可以在动画片段上用鼠标随意拖拽其位置,如果超出窗口边界了,或者说某种原因导致窗口缩小看不到一些动画片段了,可以点击右上角的所有动画片段索引,看不到的动画片段会立马回到正中间高亮
在动画片段上右击可以选择将此片段建立过渡关系到另一动画片段,也可以设置新的缺省动画
第五步:
我们这里先建立一连串的复杂关系再说
过渡关系连线的规则是,从一个动画片段A右侧连接至下一个动画片段B左侧,代表的过渡关系为:A过渡到B
选中任一片段,可以查看由他过渡出去的所有过渡关系,选中指定的过渡关系,可以为其设置过渡条件
红色标记的连线为当前选中的过渡关系,可以点击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拖给他
第七步:
运行程序,我们可以看到角色(cube)先是原地闲置,然后行走,再切换到跳跃,最后攻击
都是按照这条轨迹线走下去的,因为另一条轨迹线并未启用,当然,如果启用了的同时有两条轨迹线都满足条件,那么它也只会选择其中的一条进行下去
外部可控开关有play和stop
加入了新的方法,获取当前的动画状态,返回当前动画片段的名称
设置当前的动画状态,忽略状态机中连线过渡关系,角色会立即跳转到该动画
DLL版插件地址:http://download.csdn.net/detail/qq992817263/9659011
源码请看第一篇。
-----by MeshEditor
Unity插件 - MeshEditor(六) 变形动画状态机的更多相关文章
- Unity插件 - MeshEditor(五) 网格顶点动画(变形动画)
源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘 ...
- Unity插件 - MeshEditor(七)变形动画骨骼及蒙皮
MeshAnimation在物体的顶点比较多的情况下,悲剧是显而可见的,我一个一个的点选顶点肯定得累死,而且对于形态的调控不是很方便,应该说是很麻烦,要知道,骨骼动画因为有了骨骼以及蒙皮信息而有了灵魂 ...
- Unity插件 - MeshEditor(一) 3D线段作画 & 模型网格编辑器
之前,因为工作需要,项目中需要动态生成很多的电线,不能事先让模型做好,更不能用LineRenderer之类的,因为画出来没有3D的效果,最主要是拐角的时候还容易破面,而我们要的是真真实实纯3D的电线, ...
- Unity插件 - MeshEditor(三) 面片破碎&网格破碎
网上的unity破碎插件很多,不过想着可以以自己的方式实现也不失为一种乐趣,虽然整体的表现性上显得有些差,但也并不会影响最终的效果,接下来我大致讲解一下破碎一个物体的流程,因为用到了协程计算碎片的原因 ...
- Unity插件 - MeshEditor(二) 模型网格编辑器(高级)
源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 继先前的一篇MeshEditor之后,MeshEditor第二版发布,这次在先前的基础上加入了为模型新增顶点以及删 ...
- Unity插件 - MeshEditor(八)模型镜像特效
将静态模型(带MeshFilter)按指定轴向.指定距离克隆一个镜像物体出来,思路很简单,将模型的顶点坐标按指定轴取反,并累加上设定的距离值,然后就完毕了!不过,因为镜像体的顶点镜像于之前模型的顶点, ...
- Unity插件 - MeshEditor(四) 模型融化特效
现在的电影里有很多妖魔在死亡后身体逐渐融化并下滑最后化为一滩黑水的情景,本次出于兴趣大致研究了这个效果,原理是控制模型的顶点向一个方向坍塌,坍塌到最低点时再根据法线方向扩散形成黑水状. 第一步: 添加 ...
- Unity动画知识之二:Animator动画状态机
上次我们讲过Unity游戏动画从入门到住院,今天我们来讲一下动画状态机. 好了,现在我们已经成功的导入了动画.接下来要玩的东西就很装13啦.因为大部分动画师是用不到这家伙的,需要掌握这个技能的,至少也 ...
- [Unity]插件Node Editor介绍 实现类似状态机画布的扩展
Unity自带的动画状态机有一套对策划非常友好的UI.但是Unity官方没有公开这些控件的api.除了Asset Store里一些已有的方案,我在这里介绍一个在github上的开源项目,封装了底层,但 ...
随机推荐
- 【USACO Mar08】 奶牛跑步 A-star k短路
Description Bessie准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘,然后走回牛棚. Bessie也不想跑得太远,所以她想走最短的路经. 农场上一共有M( ...
- [bzoj4162]shlw loves matrix II
来自FallDream的博客,未经允许,请勿转载,谢谢 给定矩阵k*k的矩阵M,请计算 M^n,并将其中每一个元素对 1000000007 取模输出. k<=50 n<=2^10000 考 ...
- 使用webgl(three.js)搭建一个3D建筑,3D消防模拟——第三课
项目背景 消防安全一直是各大都市关注的重要课题,在消防体系中,特别是高楼消防体系中,消防系统整体布控与监控,火情有效准确定位,防火器材定位,人员逃生路径规划,火情预警,消防演习都是特别重要的环节.所以 ...
- Delphi 7连接MySql 5.5.15(转)
网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的方法,以备所需.系统环境:Windows XP SP3软件环境:Delphi 7 .mysql-installer- ...
- C语言程序设计第一次作业1
(一)实验总结 1. 圆面积问题 1:求圆面积和周长 (1)输入圆的半径,计算圆的周长和面积. (2) (3) 2:判断闰年 (1)输入一个四位年份,判断其是否是闰年.闰年的判别条件是该年年份能被4整 ...
- Python里面 search0和 match0的区别?
这是正则表达式里面的函数: match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配: 也就是说match()只有在0位置匹配成功的话才有返回,如 ...
- gulp填坑记(二)——gulp多张图片自动合成雪碧图
为优化图片,减少请求会把拿到切好的图标图片,通过ps(或者其他工具)把图片合并到一张图里面,再通过css定位把对于的样式写出来引用的html里面,对于一些图片较多的项目,这个过程可能要花费我们一天的时 ...
- Mysql数据库连接报错!1130:host XXX is not allowed to connect to this mysql server
我猜想是可能是连接的用户权限问题.结果这样子操作mysql库,可以解决此问题.在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost” ...
- 常用java开发文档链接
使用java开源工具httpClient及jsoup抓取解析网页数据 : https://blog.csdn.net/lovoo/article/details/52674712 jsoup Cook ...
- Luogu P3740 [HAOI2014]贴海报_线段树
线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...