这篇接着《Kinect结合Unity3D引擎开发体感游戏(一)》,时隔3个月才出这篇,在此期间还有不少机油们,要求出续集,期间在公司那边事情太多,一直帮公司前人做的项目擦屁股,到目前为止,完成了差不多,累啊,相信大家都有体会,做前人留项目,基本上坑爹情况多。费了这么多话,给干货了!
接着上一篇写一个3D人物模型,随着身体指示,产生转身和前进与跑步。
就像我上一篇所说的,目前做体感交互中间件有3中方法:
1.卡耐基梅隆kinectWrapper.unitypackage;
2.OpenNI官方提供的OpenNI_Unity_Toolkit-0.9.7.4.unitypackage(现在官方不提供更新与支持了,支持的版本unity3.4,在往上版本会出现很多问题,需要修改很多地方,比较麻烦);
3.自己写的交互的中间件,我在网上看见高手自己的写的中间件,封装为DLL,现在通过这段时间动手实现,发现自己写一个这样的中间件其实也不难,后期也自己准备写一个。
第一篇,我是基于卡耐基梅隆kinectWrapper.unitypackage中间件,利用上面的自带例子,经过自己的摸索终于成功了,可以看Kinect结合Unity3D引擎开发体感游戏(一),现在大部分用卡耐基梅隆和OpenNI来作为unity与kinect交互,还一种就是自己封装交互组件,经过这段时间研究后,自己封装了一个dll,大概实现的功能:kinect摄像头角度设置,RGB流,Depth流,玩家位数绑定,骨骼数据获取等!后期计划把鼠标加进去,骨骼绑定功能进一步优化,想利用这个dll组件实现3D试衣镜这样的虚拟场景,不仅包括体感游戏!最终可以满足绝大部分的开发情况!
卡耐基梅隆和OpenNI现在基本上对于高于Kinect1.7和Unity3D4.0支持不是很好,特别是openni官网都没有支持更新了,对于高版本支持更是不好,卡耐基梅隆还是稍微好点,不缺配置也比较麻烦,还需要修改里面的代码!对于不太熟悉kinect同学们更是不好上手!自己封装组件,不断傻瓜化了,更是知根知底!当然不是说自己是什么高手,只要把原理清楚了,大家写一个也不是什么问题!
好了,简单交代一下我开发环境:win8 + KinectSDK1.7 + Unity4.3.1(最新版本)哥熬了一个通宵破解了,想了解我这个例子的前提同学们必须对Unity3D比较熟悉,可以建立场景以及人物!对c#也要有了解。
上图为利用unity3D建立简单的人物场景!上述的场景都是基于unity自带的素材建立的。
接下来该写人物事件驱动,大概的功能就是向前、向左、向右、向后走动。代码如下
然后将上面的setHeroState添加到Updata函数后,然后将脚本绑定到人物模型即可。
这篇就不讲解自己封装的组件dll,也不是这一篇就能讲清楚的,后续的文章中会慢慢剖析讲解!
下面就上图给大家看看体感控制效果截图:
上图中包含RBG流 、Depth流以及手势控制人物正在前行行走!也欢迎大家期待第三篇,会给大家展示一款较为成熟的体感作品! 再次感谢OSC各位基友的鼓励!谢谢大家!
声明:这篇代码量也不大,主要目前我也是在摸索阶段,unity工程量也大,不好把整个贴上来!后期代码量会逐步加大干货,并且包括视频链接地址!