目录

kinect+unity 碰撞播放动画实现:

Default clip could not be found in attached animations list. animations报错解决方案

使用软件为kinectV2+unity2020:经过系列改包后,准备作一个相关kinect开发项目,所使用的是网上所流传的经典卡耐基梅隆kinect交互包里面的碰撞demo。

  1. 模型相关设置:包围盒、刚体和带有动画的fbx文件。

unity 碰撞器和触发器 unity碰撞器和动画一起动_unity 碰撞器和触发器

2.animation为maya或是C4D做好的动画机制,脚本为播放动画的一个简单脚本。

unity 碰撞器和触发器 unity碰撞器和动画一起动_kinect_02

3.Animation Rig改为Legacy!!

如果不改的话就会出现如下报错:Default clip could not be found in attached animations list. animations

unity 碰撞器和触发器 unity碰撞器和动画一起动_人机交互_03

重点讲述一下碰撞控制动画播放的过程(在这里踩了很多雷,哭泣):demo里面是利用kinect识别左右手,设置好包围盒,碰撞触发动画发生机制。我想要学习这个demo用来控制自己的动画发生,想要的一个效果是手放在双百齿轮上,则齿轮开始转动,进行交互。在替换动画的过程中,一定要注意一个点,Animation Rig改为Legacy,然后根据你所做模型的动画设置animation。之前尝试了很多次,一直都没有成功,基本把代码来来回回看了几十遍,我还以为是动画设置的问题,而事实也确实如此。两个齿轮都要转,所以严格意义上来讲,我的模型是两个,要挂动画控制机也是两个,友子们可以根据自己的动画而定。

unity 碰撞器和触发器 unity碰撞器和动画一起动_unity 碰撞器和触发器_04

注意:上下挂载的一定要是同一个动画控制机,然后包围盒尽量不要碰在一起,否则运行时模型会在里面飘浮。

4.脚本实现控制动画播放:

这个脚本较为简单,简单实现动画播放就好。

void OnTriggerEnter()
	{
		//Debug.Log ("Jump trigger activated");

		// start the animation clip
		Animation animation = gameObject.GetComponent<Animation>();
		if(animation != null && !animation.isPlaying)
		{
			animation.Play();
		}
         }

看完以后,大家肯定会觉得很简单,但是对于刚刚接触kinectAR大屏不久的我来说,要学习的东西真的又多又复杂,在这里写下的一个解决方案也是我学习成长的一个记录过程。

有时间也会出一个教程关于卡耐基梅隆从unity5.x版本到19/20版本的升级改包过程,unity3D有关GUI过时的问题也是我的死亡前进之旅,相关资料也太少了吧!!!

参考文章:

Unity中有两种Animation Clip - 走看看

两种动画的挂载方式

动画类详解