YuYuYouEr工作室

AREA OF 雨雨油儿 ~~ 承接体感互动软件、游戏定制开发 ~~

Entries Tagged ‘kinect’

YuYuYouEr Kinect SDK For C++ v0.3版发布

 

C++ Win32 DLL最新为v0.3版本增加以下特性:

支持双人骨骼

双人握拳手势

支持坐标系转换:骨骼数据 <-> 深度图像 -> 彩色图像

下载地址:http://www.yuyuyouer.cn/blog/?page_id=369

Unity3D版本也会尽快发布0.3版本,支持双人特性;


 

YuYuYouEr Kinect SDK Wrapper v0.2版发布 for Unity3D

关于YuYuYouEr Kinect SDK Wrapper最新信息,请点击:

http://www.yuyuyouer.cn/blog/?page_id=369

新的v0.2版本增加Unity3D插件支持,这份Wrapper代码会长期维护,并不断增加新特性,将来也会提供对其他体感硬件、体感平台的支持。

目前已经开始着手Android平台体感插件设计,我们会尽最大努力保证应用层接口的一致性,方便大家应用层代码移植。

此外qfFSM状态机类库支持多种语言,对于体感通用的UI交互组件算法,我们也会以状态机设计图或源码的方式发布,请大家关注本站更新。

功能说明:

提供Unity3D插件(移植自CMU Kinect Wrapper,修复bug,增加特性)

对Kinect for windows SDK v1.7进行封装

支持深度图、彩色视频、单人骨骼数据

支持Kinect Interaction握拳手势

支持语音识别

提供OpenCV图像处理函数:改变图像大小,水平、垂直翻转图像

Wrapper以Win32 DLL方式提供,可以被任何支持DLL调用的语言使用。

目前已经测试过C++、C#、Unity3D、Flash Air(ANE方式)、Java。

Unity3D插件移植自CMU Kinect Wrapper Package,替换原始版本底层实现,增加语音、握拳手势检测特性。

 

Kinect超时按钮实现 – 基于qfFSM有限状态自动机类库

qfFSM有限状态自动机类库目前拥有C++、C#、Java、JavaScript版本,对于同一份UML状态图,不同语言均可用qfFSM来实现。

本文使用JavaScript版本在浏览器中实现一个超时按钮,为方便测试,我使用鼠标指针来模拟Kinect关节,接入Kinect数据后,只需将手部关节坐标替换进来即可。

首先看超时按钮的UML状态图:

主状态机中有STATE_Normal、STATE_PointIn、STATE_PointOut三个状态,其中后面两个作为子状态机存在,他们内部分别含有3个状态:激活/非激活开始状态、正在激活/非激活状态、已激活/非激活状态。

设计 正在激活/非激活状态 是为了配合相应动画机制,如经典的按钮注水、按钮转满一周等计时方式。

事件方面支持UserLeave、PointIn、PointOut,以及MultiActive(多次连续激活)。

MultiActive机制可以很方便的实现 保持按住按钮,系统会周期触发某个事件。

源码中分为以下几个部分:

[Read the rest of this entry...]

Kinect舞美游戏特效

 

Kinect舞台美术、游戏特效,可以用于商业展示、互动橱窗。

 

YuYuYouEr KinectTetris – 体感俄罗斯方块 开放下载

YuYuYouEr_KinectTetris – 体感俄罗斯方块,最自然的交互,最经久不衰的游戏;

下载地址:http://www.YuYuYouEr.cn/down/YuYuYouEr_KinectTetris_release_v0.2.zip

 

 

kinect体感交互 – 按钮激活 – 超时检测

整理一下最近kinect交互项目中按钮激活时用到的状态图,希望对大家有帮助。

kinect体感交互 - 按钮激活 - 超时检测

kinect体感交互 - 按钮激活 - 超时检测

上图为Button对于某个kinect骨骼节点的响应,处理进入、离开、激活。

状态列表:

State_Normal: 常规状态
State_PointOut: 点离开状态
State_PointIn: 点进入
State_CountDown_start: 倒计时开始
State_Active: 激活
State_DeActive: 非激活

事件列表:

无名称的事件弧为AutoTransferEvent,实现状态间的自动转移;
event_PointIn: 点进入
event_PointOut: 点离开
event_UserLeave: 用户离开
event_CountDown_end: 倒计时结束
event_enableMultiActive: 允许连续多次激活

最近在项目中使用与kinect手部节点交互的按钮,需要处理手部进入、离开按钮范围,进入后0.5s达到激活态,激活后若手部节点没有离开,则允许连续激活。

在我的项目中Button内部有StateMachine实现,同时持有一个EventListenerManager,允许其他对象注册为EventListener,State_Active/State_DeActive状态会有事件产生。

如果需要实现激活Loading动画,如常见的转满一周或者类似注水的效果,可以在State_CountDown_start状态增加事件通知。

 

kinect在体感浏览器中缩放、旋转图片

 

Ogre模型robot骨骼数据

robot.skeleton中骨骼名称为”Joint1 ~ Joint18″,分别代表途中的18块骨,他们的分布和从属关系如下图。

robot模型共有5个动作:Die、Idle、Shoot、Slump、Walk;

控制方法:

利用Joint10,yaw()一个角度,robot角色上半身会转动一个角度,但下半身不动。

 

MS Kinect SDK 动作识别

MS Kinect Sdk 中提供了每一帧骨骼关节坐标数据,通过计算一些拓扑关系,即可知道当前骨骼姿态。

类比触摸屏手势,还有lex语法分析方法,可以将动作分解为姿态序列,然后组成姿态短语,即基本动作,进而生成更加复杂的动作序列。

  

京ICP备09080331号