Kinect结合Unity3D引擎开发体感游戏(二)

Stella981
• 阅读 621

       这篇接着《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#也要有了解。

Kinect结合Unity3D引擎开发体感游戏(二)

上图为利用unity3D建立简单的人物场景!上述的场景都是基于unity自带的素材建立的。

      接下来该写人物事件驱动,大概的功能就是向前、向左、向右、向后走动。代码如下

Kinect结合Unity3D引擎开发体感游戏(二)

Kinect结合Unity3D引擎开发体感游戏(二)

然后将上面的setHeroState添加到Updata函数后,然后将脚本绑定到人物模型即可。

这篇就不讲解自己封装的组件dll,也不是这一篇就能讲清楚的,后续的文章中会慢慢剖析讲解!

下面就上图给大家看看体感控制效果截图:

Kinect结合Unity3D引擎开发体感游戏(二)

上图中包含RBG流 、Depth流以及手势控制人物正在前行行走!也欢迎大家期待第三篇,会给大家展示一款较为成熟的体感作品!  再次感谢OSC各位基友的鼓励!谢谢大家!

声明:这篇代码量也不大,主要目前我也是在摸索阶段,unity工程量也大,不好把整个贴上来!后期代码量会逐步加大干货,并且包括视频链接地址!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
可莉 可莉
2年前
2021年全球公有云终端用户支出将增长18% ;EMNLP 2020最佳论文:无声语音的数字发声
!(https://static001.geekbang.org/infoq/af/af9f6637b50b09be60b00a42f3812d5e.png)开发者社区技术周刊又和大家见面
Stella981 Stella981
2年前
2021年全球公有云终端用户支出将增长18% ;EMNLP 2020最佳论文:无声语音的数字发声
!(https://static001.geekbang.org/infoq/af/af9f6637b50b09be60b00a42f3812d5e.png)开发者社区技术周刊又和大家见面
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Kinect结合Unity3D引擎开发体感游戏(一)
最近公司项目需要做科技馆的体感游戏,以前也没接触过游戏,虽然以前自己也是想做游戏,我想大部分都是学编程出来来做游戏,哈哈(请允许我淫笑一下,终于可以做这方面)。虽然以前没接触过体感游戏,看到的体验也是大部分看到的视频,幸好现在网络还是比较发达,上网大概了体感游戏开发,目前比较好的是Unity3D和Kinect结合交互进行开发。现在心里的感觉用句
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
8个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这