解决unity中Animation Event无法正确保存的问题
2015-11-27 12:25
495 查看
解决unity中Animation Event无法正确保存的问题
最近在用Unity做一个学校的项目(电子科技大学的银杏黄),要求完成一个ARPG游戏,为了方便和效率,制作游戏角色动画的时候我自然使用了Mecanim动画系统,使用Animator的状态机来控制角色动画,可在实现让角色在做完技能的动作之后释放技能的这个功能的时候,遇到了一个不大不小的问题。大家都知道,要实现类似的功能,最好的方法是给Animation Clip加上Animation Event,而几乎所有中文主流网站和技术博客,包括Unity Manual上,都会告诉你这样的方法,在此我贴个两个链接就不详细写了,Unity Manual中关于Animation Event的内容和雨松momo的Unity研究院中关于Animation Event的内容。
当然,我根据教程一通操作完成了各种功能并心满意足地保存关闭了Unity。然后第二天,为什么我的角色只会鬼畜地抽动而没有放技能啊!!!切到Animation的标签一看,发现我设置的Animation Event都消失了!!
这是怎么回事,我确信这不是我的锅,那只能是Unity官方的锅了
经过我的多方搜索,发现原因很坑爹:你无法在read-only的动画切片上添加Animation Event,这可怎么办,我又没有什么美工爸爸给我把动画搞成read&write。
终于在Unity Answer中找到了一个可能靠谱的方案,那个答主让你用快捷键ctrl-D把你想用的某个动画切片从FBX的动画集中复制到外面,成为一个单纯的动画切片(CSDN传图炸了,大家去试试就明白什么意思了),但是问题在于,这个新的单纯的Animation clip,是无法设置为humanoid的形式来匹配Mecanim动画的,那就和我们的初衷背道而驰了,虽然这样用老动画系统是没问题了。
和我遇到一样问题搜索来的读者看了我这么多废话,终于进入正题了:如何方便快捷地添加Animation Event(最好就在editor里完成,不需任何额外代码),又能在Mecanim中使用,还能正确地保存。
首先,你需要在Project视窗中找到你需要添加事件的那个动画切片(通常在FBX下和一群动画在一起),点击它。
在右边的(反正我是右边)inspector视窗中点击edit..按钮,进入动画切片编辑界面。
和本文主题无关的小贴士,确认rig标签下的Animation type和avatar definition,把所有avatar设为同一个。
在Animations标签下,滚到底下,找到Events,展开,你会看到有一个时间条和左边的add event按钮。用过之前那种添加方式的肯定秒懂的该怎么做的,唯一不方便的地方是你需要自己用下方预览play的按钮确定时间(那个小红线)的位置,并且需要自己输入Animation Event的回调函数。
滚到最下面点apply保存。
回到之前的Animation视窗,发现Animation Event已经添加好了。就是这样。
Unity Mecanim 发布了这么久,还是不能方便地支持这种小功能,还好在这种偏的地方预留了方法。希望过两个版本能改进到用最上面的方法也能正常使用吧。
相关文章推荐
- 我是运营,我没有假期
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- Gifski:一个跨平台的高质量 GIF 编码器
- 一步一步跟我学易语言之第二个易程序菜单设计
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- 模仿动画的放大缩小容器
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- Android中ViewFlipper的使用及设置动画效果实例详解
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏
- jQuery实现美观的多级动画效果菜单代码
- C++实现基于控制台界面的吃豆子游戏
- php判断GIF图片是否为动画的方法
- FCK编辑器(FCKEditor)添加新按钮和功能的修改方法
- ecshop后台编辑器替换成ueditor编辑器