U3D 动画帧事件问题
测试版本U3D5.4。
1,为一个模型导入外部动画。为动画剪辑attack在某帧添加event,事件为 public void OnAttackEvent(){},函数体不做任何事情。
结果发现,在动画帧末尾添加事件,播放时两个动画的过渡效果没有了,去掉帧事件后正常过渡。
在动画集开始处(不超过33%)设置帧事件,不影响动画的过渡。
看来U3D的帧事件相当粗糙,不能精确的在动画集末尾帧添加事件而又不影响本动画集和下一动画集的过渡。
2,去掉has exit time,并在上面的帧事件中设置:
using UnityEngine;
using System.Collections;
using UnityEditor; public class testAnimEvent : MonoBehaviour { Animator animator;
int[] randArr = new int[];
int idx = ;
int idxLast;
AudioSource[] attackSound;
// Use this for initialization
void Start () {
animator = GetComponent<Animator> ();
System.Random rand = new System.Random ((int)Time.time);
randArr [] = ;
for(int i=; i<; i++){
randArr [i] = rand.Next (, );
Debug.Log (randArr [i]);
}
attackSound = GetComponents<AudioSource> ();
} // Update is called once per frame
void Update () { } void OnAttackEvent(){
int iSound = randArr [idxLast] > ? : ; //播放当前动画集的音效,注意idxLast
attackSound[iSound].Play ();
animator.SetInteger ("attackId", randArr[idx]);//设置下一个动画集(播放完本动画集后才会开始播放下一动画集,因为有has exit time)
idxLast = idx; idx = (idx + ) % ;
}
}
结果发现animator.SetInteger ("attackId", randArr[idx]);并不会立即打断当前播放而进入下一个要求的动画集。它要等到本动画集播放完了才进行切换。
3,复制Assets\Characters\ThirdPersonCharacter\Animation下的HumanoidRun.fbx到另一工程下,通过U3D察看此文件,发现不能用,如图1,正常情况应该如图2。原来是没考meta文件造成的,一般情况下meta文件没什么用,这里却例外了,可能这个文件有特殊性,不深究了。

图1 图2
4,不同人形模型间的动画可以通用,注意要在动画导入设置里rig页设置为: Animation Type : Humaniod才行。
这是最简单的动画集复用。一个人形模型可以通过引用其它人形模型的AnimationController来直接播放不属于自己的动画集和状态机,这就是动画集的retarget
5,为导入的动画使用curves : 这样状态机运行时就会从曲线上采样作为speed的值。还可以在脚本中通过animator.GetFloat("speed")来获取任意时刻speed曲线上的值。这样可以做许多事情。

U3D 动画帧事件问题的更多相关文章
- Unity 3D 动画帧事件
前几天在项目开发中碰到一个这样的需求,RPG游戏中,特效和动画播放不同步的.假如主角在攻击NPC时,先实例化特效,后播放动画.动画毕竟是有一个时间长度的.等到动画播放攻击挥刀的那一瞬间时,特效可能早就 ...
- CocoStudio基础教程(6)使用CocoStudio编辑帧事件并关联到程序
1.概述 帧事件也是新加入的功能.这篇中我们将看到如何使用它.我们将上篇中制作的动画稍加修改. 2.用途与原理 首先介绍一下帧事件.正如其名:一个与帧相关联的事件. 为什么要这么做呢?首先没人想做一大 ...
- [UWP]缓存Lottie动画帧
在上一篇博文<[UWP]在UWP平台中使用Lottie动画>中我简单介绍了一下LottieUWP项目以及如何使用它呈现Lottie动画,这篇文章里我们来讲点进阶的东西--缓存Lottie动 ...
- requestAnimationFrame ---- 请求动画帧。
window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画.该方法需要传入一个回调函数作为参数,该回调函数会 ...
- CSS3的自定义动画帧
CSS3新增的动画帧非常绚丽,可以简单实现一些动画效果,目前除IE外各大主流浏览器都支持 本文演示三个:transform: scale3d(x, y, z)-缩放;.transform: trans ...
- 【转】CSS3动画帧数科学计算法
本文来源于:财付通TID 原作者:bboy90 总结都浓缩在这个工具里了,想知道工具的地址或想窥探工具诞生的趣事请往下看 . —————————————————————– 华丽丽的开篇 ...
- Android设备 cocos2dx 骨骼动画注册事件播放音效,退到后台再返回黑屏问题
最近遇到一个cocos2dx 骨骼动画注册事件播放音效,在骨骼动画播放的时候,按HOME键退到桌面,再次打开游戏的时候,会黑屏. 解决办法如下,可能不是太完美,至少解决了大部分问题. 1.在org.c ...
- [WPF] 动画Completed事件里获取执行该动画的UI对象
原文:[WPF] 动画Completed事件里获取执行该动画的UI对象 昨天群里有位童鞋提出如何在动画完成事件Completed里获取到执行该动画的UI对象. WPF里动画的Completed的本身并 ...
- 关于v4包的Fragment过渡动画的事件监听无响应问题解决
项目中部分功能模块采用了单Activity+多Fragment模式,当Fragment切换时,需要在过渡动画执行完后做一些操作,通常就是在自己封装的FragmentBase中重写onCreateAni ...
随机推荐
- 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?
还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值460亿美元的SaaS之王.今天谈谈『No ...
- vs.net git版本仓库使用 之解决冲突方法 原创
vs.net git 之解决冲突方法 如果别人已经修改推送到服务器,但自已本地未进行同部更新,那么就会出现要解决冲突的提示! 具体解决方法为: ... ... 下载word离线版:vs.net_git ...
- 关于rails里集成测试assert_template的写法
assert_template后面只能跟随模板文件名,不能跟随命名路径.比如routes.rb: get 'login' => 'sessions#new' 在集成测试用例里,只能写成asser ...
- view组件的duplicateParentState属性
今天做页面的时候遇到一个小问题,在点击的时候改变组件的图片来源,这个很简单大家都知道,用selector可以很快实现.但是现状有点特殊,是 LinearLayout 中包裹着一个 ImageView ...
- jquery.validate remote的用法
1,远程返回数据时,一定要返回"true"或者"false",否则就是永远就是验证不通过. 2,remote有两种方式,如下就介绍remote与PHP间的验证( ...
- coursera机器学习-聚类,降维,主成分分析
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- MySQL数据类型——数值类型
1.1.1 整型 整型 占用字节 范围 范围 tinyint 1 -27~27-1 -128~127 smallint 2 -215~215-1 -32768~32767 mediumint 3 -2 ...
- hadoop2.2.0伪分布式搭建1--准备Linux环境
1.0修改网关 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:19 ...
- 烂泥:nagios监控单网卡双IP
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 公司的业务有几台服务器存放在IDC机房中,说是双线路.但是我看到网卡的配置是单网卡双IP的形式.如下: 而公司这边的线路是联通的IP,如下: nagio ...
- 深度学习笔记------windows系统下进行Linux-Ubuntu14.04双系统安装笔记(二)
在上一篇文章中介绍了新手如何安装Ubuntu14.04的双系统,本文会说明Ubuntu系统下搜狗输入法的安装,并就我遇见的一些bug给出最简单的解决办法. 第一部分.搜狗输入法的安装 本身搜狗输入法的 ...