365体育网址新兵模型呢会见转身。新建一个 Unity 工程。

OpenNI结合Unity3D Kinect进行体感游戏支付(转)

楼主\#

更多 发布于:2012-07-17 16:42

 

 

  1. 下载安装Unity3D(目前本也3.4)
  2. 下载OpenNI的Unity3D wrapper(目前版也0.9.2):
        a. 地址:http://www.openni.org/Downloads/OpenNIModules.aspx
        b. 按如下选择:
    365体育网址 1
         c. 下充斥了解压后发生2独.unitypackage文件 3.
    创建新的U3D(Unity3D)工程,导入载好之unitypackage文件,先导入
    OpenNIUnityToolkit_0.9.2.unitypackage,再导入NITEExtensions.unitypackage
        这时在工程视图里能收看导入的保有文件 4.
    起熟悉wrapper(资源还以工程视图)     a. 示例游戏:OpenNI–>Sample
    Scenes–>SingleSkeleton.,运行后能收获一个感性的认。     b.
    手册:OpenNI–>Documentation–>OpenNIPackageDocumentation,这个手册很关键,此后之
    学习都得以因这个手册来。     c.
    创建新的Scene,然后照手册及之例子自己从零开始创建示范游戏。
    立篇手册需要通读的凡首先部分:Unity OpenNI Unity Toolkit Overview—>
    OpenNI Package Overview,包括以下内容:
  3. OpenNI Module Main Capabilities  
  4. Samples Overview
  5. Additional Topics
    先是省包含了有着需要知道的物,第二节省是例程讲解,第三节约是增大话题。
    可以预先由第二省开始,边照着创造例程边查第一节省的有关内容:
    a. Single Skeleton Sample
    以此例程介绍怎么开创单一角色,包括怎么让Sensor运行起来,怎么为玩家用好的肉身去控制打角色的骨子。
    * Single Skeleton Sample
  6. 以Unity中开创一个空的scene
  7. 为scene里添加object
    (如果非知底怎么长:在Project视图中搜索object的名字,然后直接拿object拖到Hierarchy视图)
    a.
    第一只就是OpenNISettings。加了这后点击运行,正常的语句应该好看来sensor亮了。这个object实现之凡使sensor,封装了OpenNI相应的函数。
    拖欠obejct有3独子项,我们眼前仅关注”OpenNI configuration”,
    选中后在Inspector窗口能看出不同之选料项:
    Mirror behavior  // 表示是否如拿深度数据开展左右镜像。勾上。
    XML file // 通过XML 文件来定制一些参数,比如分辨率,帧率,Production
    Node等;也可由此XML文件来导入录制好的深度视频,在需要识别特定动作之时节可据此来调节。
    Use image generator? // 代表是否需要出RGB图像。不勾。
    Use user and skeleton? // 表示是否用识别用户以及骨骼。勾上。
    Smoothing factor  // 滤波参数,暂时用默认值0.5
    设想深入了解此object,
    1)阅读手册里相应的解说:在OpenNI Module Main
    Capabilities–>Centralized Initialization and
    Configuration–>OpenNISettings Prefab
    2)看下面论代码,有2单剧本:OpenNISettingsManager,NIOpenNISettingsManagerInspector
    OpenNISettingsManager –
    主要是接受地方说明的参数,进行初始化和销毁的劳作。这里最主要之是NIContext,这是一个singleton,在剧本NIContext里。实际上
    NIContext就是对准OpenNI的context的卷入。如果未打听什么是context,可以参阅OpenNI的文档。
    NIOpenNISettingsManagerInspector –
    主要是贯彻在Inspector显示相关选项。需要做扩展的当儿可以看。
    b.
    就添加NIDepthViewer,这时候运行,就能够看出右边上较量多矣一个视窗,里面显示的凡深度视频。(注:视频里人之动作是倒的,你往左,视频里的自
    己往右侧。如果非招上高达一个object的”Mirror
    behavior”,就无会见倒了,这里先不睬)有了这,就能够了解地收看镜头能看出底限量。
    c. 又补充加NIRadarViewer, 运行,在戏耍之左上角能看到”User Radar”,
    当有用户被检测到的时刻,会油然而生一个红色的方框,方块里面有数字(比如1)代表用户号。
    d.
    添加角色。这个于好玩。添加ConstructionWorkerPrefab,然后以Hierarchy中选中这个object,再以鼠标移到
    Scene窗口,按”F“键,这时候就可以看到工友模型了。运行,会见到工友模型以校正姿势站在屏幕中间(看起比较小,以后可以调整)。这时候自己举行校
    正动作,会看左上角RadarViewer里的小方片会起红色变成黄色最后变成绿色,绿色就意味着校正成功了,但工友模型也没动起来,因为咱们尚缺乏一
    个object,看下一致步:
    e.
    添加NISkeletonPrefab,运行,校正,工人模型驱动起来了!这个object的效益就是是兑现用户驱动角色。里面富含了2个剧本:
    1) NIUsers To Player Mapper:
    用来管理user和player之间的映射,实际上非常简短,先识别出来的user给分配一个多少的player
    ID。
    2) NISkeleton Users Manager: 用来连续player和skeleton
    controller。默认会自动搜索Skeleton
    controller,也堪手动指定(在多玩家的场地用得及,比如player1映射到skeleton
    controller1,player2映射到skeleton controller2)。skeleton
    controller:是为此来驱动character的,比如工人模型,你可在ConstructionWorkerPrefab里找到这本子。

    结起,NISkeletonPrefab实现了user(玩家)到player(游戏里的玩家)到skeleton
    controller(可以control不同之范)的连。会起user,player和skeleton
    controller的由:每个use可以教不同之player,比如您及恋人同玩游戏,你和恋人还是user,各自使自己之player,而各个
    个player又得产生异之外观,就象赛车游戏,你可以择不同的车型。
    想念深入了解这个object,同样产生2种植方法:
  8. 看手册:OpenNI Module Main Capabilities–>Skeleton
    Control–>NISKeletonPrefab
  9. 读脚本:NIUsersToPlayerMapper, NISkeletonUsersManager

本篇基于最新的wrapper
v0.9.7.4(该本已经不需要开校准姿势)介绍怎么从零开始把团结之人士模型驱动起来,目的是被读者一个能运作的演示,在就过程遭到不见面指向定义做了多之诠释,详细请参见wrapper的帮带文档。
 

  1. 安装Unity3.4
  2. 下载v0.9.7.4底wrapper
    (解压得到的凡一个文件:OpenNI_Unity_Toolkit-0.9.7.4.unitypackage)
  3. 开拓Unity创建一个拖欠的工
  4. 导入OpenNI_Unity_Toolkit-0.9.7.4.unitypackage
     

  5. 本默认的,导入全部文件

  6. 导入后看到如下图所示文件结构

365体育网址 2
 

  1. 导入你自己的人士模型,这里坐asset store上之兵模型也例

  2. 上asset store(Unity里Ctril+9),当然前提是您注册了账户(免费)

  3. Asset Store页面的Categories里挑选3D
    Models–>Characters–>Humanoids–>Humans,然后于左边的列表里选择Soldier
    Character Pack(免费的)
  4. 365体育网址 3
  5. 导入Soldier Character Pack
  6. 365体育网址 4
  7. 导入后望多矣之类文件
  8. 365体育网址 5
  1. 入人物模型

  2. 用高达图文件目录里之soldier直接拖到Hierarchy窗口

  3. 365体育网址 6
  4. 这时候在scene窗口看不到战士模型,先以Hierarchy窗口选中soldier,然后用鼠标移到Scene窗口,按F键,便只是看到。
  5. 365体育网址 7
  6. 这儿如运行游戏,看到的才是一成不变的大兵,摄像头啊无见面显
  7. 365体育网址 8
  1. 使3D摄像头(Kinect或ASUS Xtion
    Pro,看你用之凡啊设备)

  2. 用Project窗口的OpenNI–>OpenNISettings(如下左图)拖动到Hierarchy窗口(如下右图)

  3. 365体育网址 9
     365体育网址 10
  4. 这时运行游戏,你见面视3D摄像头亮了,说明设备就教起来了(当然,这无异于步而不能不先插好3D摄像头)
  5. 为对装备运转状态产生个重复直观的认,这里进入一些帮助的物拿Project窗口的NIIDepthViewer和NIRadarViewer拖到Hierarchy窗口
  6. 365体育网址 11
    365体育网址 12
  7. 运转游戏,会盼窗口的左上角与右上比赛分别多矣一个小窗
  8. 365体育网址 13
    365体育网址 14

  9. 边的凡NIRadarViewer,显示的凡眼下是否有人进入摄像头的视野并吃识别出;右边的是NIDepthViewer,显示的是摄像头看到的其实
    场景。这时如你站于摄像头的视野范围外小微动一下,就可让识别出,同时在Users
    Radar上面多矣一个红色的小方格,方格里面显示数字1.
    小方格显示红色代表用户仅是让识别出了,但还尚无从头骨架跟踪;而数字1意味着手上用户的ID。当你走的时节,红色方格也会相应地动。
  10. 365体育网址 15
  11. 这就是说哪开始骨架跟踪呢?创建一个空的game
    object(Unity的菜系GameObject–>Create
    Empty),然后以Inspector窗口以那个再命名吧player manager。
  12. 365体育网址 16
  13. 下一场拿脚本NIPlayerManagerCOMSelection拖到player manager
  14. 365体育网址 17
  15. 在Inspector窗口将Max allowed players改成1
  16. 365体育网址 18
  17. 这儿运行游戏,当您站在摄像头的视野范围外小走动的早晚,就可以看到Users
    Radar窗口的小方格是绿色的,这标志算法都上马盯住而的架子了因为此本的wrapper封装了较新的OpenNI,所以这边您不再要做校准姿势就是好自行跟踪骨架
  18. 365体育网址 19
  1. 整套准备工作搞好了,现在可起来教人物模型了
     
     

  2. 当Hierarchy窗口选中soldier,将Project窗口的台本NISkeletonController拖到Inspector

  3. 365体育网址 20
  4. 拖动过去后会见见到弹出一个提示,选continue。
  5. 365体育网址 21
  6. 这儿Inspector窗口是这样的
  7. 365体育网址 22
  8. 现在开始骨架匹配在Inspector(如齐图)的“Joints to
    control”里选择Head,然后点击最右边的略微周,在弹出的“Select
    Transform”对话框里选择“Head”      
  9. 365体育网址 23
  10. 挑好后底气象如下
  11. 365体育网址 24
  12. 这时点击365体育网址 25,会于Hierarchy窗口看看那所于的位置
  13. 365体育网址 26
  14. 如此这般战士模型的腔就同OpenNI算法识别出来的玩家骨架的峰匹配起了,其它骨架的配合配方法类同,下面是一体相当好的“Joints
    to control”截图,可对照其骨架的名一一匹配。
  15. 365体育网址 27

  16. 里设验证的凡,不同之人选模型对骨架各关键的命名可能无相同,怎么命名无所谓,关键是若摸索对关键。以这个战士模型也例,见下面两张图,第一摆放凡Left
    Shoulder的职务,第二布置是Left
    Arm的职位,很显眼,我们务必挑选的肩关节应该是Left Arm而无是Left
    Shoulder。
  17. 365体育网址 28
  18. 365体育网址 29

龙骨匹配好了,现在运作游戏,你会看出在开始状态战士的双手是举起来的
365体育网址 30
这时候要你来现在摄像头的可见范围外,你晤面发现战士模型的手脚会跟着你的小动作在动,你转身,战士模型也会见转身。这时,你的人士模型都教起来了!
此时而或会见意识一个问题:你走的早晚战士模型并从未随着移动,请于soldier的Inspector窗口用Update
Root Position?勾上,再运行游戏,这时战士模型就会见随之你走了
365体育网址 31
9.
本型已经全使起来了,为了为难,你得在灯光,同时将战士模型放大一些。
365体育网址 32

创建 Hello World

正文将介绍如何以 Windows 系统下,使用 HiAR SDK 创建一个简易的 AR
应用。在初步之前,请预成功下列准备干活:

注册 HiAR 帐户

获取 AppKey 和 Secret

导入 SDK


Step 1. 新建 Unity 工程并导入 SDK

运行 Unity 程序,新建一个 Unity 工程,然后以 SDK 包中 lib 目录下的
hiar_sdk_unity-x.x.x.unitypackage
文件导入该工程,具体操作请参见下面的链接:

导入 SDK


Step 2. 创建 HiARCamera

新建的 Unity 工程被,默认会创建一个 Main
Camera(如下图),请先拿其去。

 

 

然后将 Assets/HiAR-Unity/Prefabs 目录下的 HiARCamera 拖到 Hierarchy
窗口被。

 

 


Step 3. 设置 AppKey 和 Secret

每当 Hierarchy 窗口中选中 HiARCamera,在其相应的 Inspector 窗口中找到
AppKey 和 Secret 选项,并填写信息。

 

提醒:如果没点名正确的 AppKey 和 Secret,应用或无法正常运作。

如果你还并未得到 AppKey 和 Secret,请参见下面的链接:

获取 AppKey 和 Secret


Step 4. 创建 ImageTarget

添加 ImageTarget

将 Assets/HiAR-Unity/Prefabs 目录下的 ImageTarget 拖到 Hierarchy
窗口被。

 

 

安装识别图片

以 Hierarchy 窗口中选中 ImageTarget,在那个相应的 Inspector 窗口被找到
HiAR Target Mono Behaviour (Script),在 Data Set 摘取项中选取
sample。此时,编辑窗口中将展示平摆”苹果“的图样,这是刚刚安装的辨别图片。

 

提示:sample 是 SDK 中坐的地面识别包,包含两摆识别图片,您可于 Image
Target
选项中进行分选。如果您想丰富自己想识别的图形,请参见下面的链接:

以当地识别包


Step 5. AR 制及运行

添加 Cube

于 Hierarchy 窗口中选中 ImageTarget,右击并当弹出的菜单中选择 3D Object
>
Cube,识别图片上将显示一个立方模型。这个模型就是在辨认图片及附加的 AR
内容,您可当调整模型的轻重缓急以便查看。

 

 

调节运行

上述操作完成后,需要以 Unity
环境下运行为查看效果。在运作前,请确保您的微机已安装了摄像头。

点击运行按钮,摄像头将启动并搜集画面;将摄像头对准”苹果“图片(点击是赢得),识别成功后用于图上附加显示一个立方模型。

 


完成

由来,您已成功开创了一个简练的 AR 应用。

若得延续打造还多 AR 效果,或者将手上工程生成 Android 和 iOS 应用。

创立视频 AR
应用

导出 Android
工程、应用

导出 iOS 工程


适用于原有本子的文档

正文内容之编基于最新版本的
SDK,部分说明跟操作可能未适用于原来本子,您可以当这里找到原来本子的文档。

适用于 HiAR SDK for Unity 1.1.13
及以下版本

 

相关文章