133
AIRKinect について FxUG 勉強会 166in 仙台 20120421( ) 徳山禎男

Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Embed Size (px)

DESCRIPTION

マイクロソフト社のKinectセンサーをAIRアプリから利用できるライブラリ「AIRKinect」についてお話しします。 ライブラリの概要と実装方法をお話しします。 また、デモアプリの実演や 「AIRKinect」で開発されたアプリなども紹介します。

Citation preview

Page 1: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect について

FxUG 勉強会 第166回 in 仙台

2012年 04月21日 (水) 徳山禎男

Page 2: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

アジェンダ

自己紹介

Kinectとは

Kinectの開発環境について

AIRKinectとは

AIRKinect2.1による開発

AIRKinect事例(動画)

AIRKinectをはじめる人は…

Page 3: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

自己紹介

Page 4: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

自己紹介

tokufxug

http://twitter.com/tokufxug/

徳山 禎男

業務システムWEBアプリ開発者

Page 5: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

自己紹介

よく使用しているテクノロジー

Java (Servlet, JSP, Struts)

Flex 3, AIR 1.5

FxUG東京勉強会運営メンバー

Page 6: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

Page 7: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

マイクロソフト社の家庭用ゲーム機。 XBOX360用のモーションセンサー コントローラ。

Page 8: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

マイクロソフト社の家庭用ゲーム機。 XBOX360用のモーションセンサー コントローラ。

体の動きやジェスチャー、 音声を認識して遊ぶことが可能。

Page 9: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

KinectはUSBで接続します。

Page 10: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

USB接続が可能なことから、 PCやMacに接続して…

Page 11: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

USB接続が可能なことから、 PCやMacに接続して

Kinect用ライブラリを使ったアプリケーションが開発されました。

Page 12: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

この現象を「Kinectハック」と呼ばれるようになります。

Page 13: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinectとは

この現象を「Kinectハック」と呼ばれるようになります。

Kinectハックをきっかけに、 マイクロソフトから、 Windows用ドライバが リリースされます。

Page 14: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Kinect SDK Beta2

対応OS:Windows7 ~(詳細な要件はこちら)

Kinect for XBOX ¥14,800-

Page 15: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Kinect SDK Beta2

対応OS:Windows7 ~(詳細な要件はこちら)

商用利用不可 非商用可(2016年6月16日まで)

Kinect for XBOX ¥14,800-

Page 16: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

OpenNI(OpenNI, Nite, SensorDriver)

対応OS:Windows7 ~

SimpleOpenNIプロジェクトで 全て揃うようです。

Kinect for XBOX ¥14,800-

Page 17: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

商用利用版もあります。

Page 18: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window が必要です。

Page 19: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window が必要です。

価格は¥24,800- マイクロソフトオンラインショップで 販売しています。

Page 20: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window が必要です。

Kinect SDK Version 1

対応OS:Windows7 ~

Page 21: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window が必要です。

Kinect for Windows と Kinect SDK

バージョン1によるアプリは商用可。

Page 22: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window が必要です。

Kinect for XBOX と Kinect SDK

バージョン1によるアプリは、

商用/非商用どちらとも不可。

Page 23: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window が必要です。

Kinect for XBOX と Kinect SDK

バージョン1によるアプリは、

商用/非商用共に不可。

Page 24: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Mac( Lion, Snow, Leopard )の場合

Page 25: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Mac( Lion, Snow, Leopard )の場合

Kinect for XBOX ¥14,800-

Page 26: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Mac( Lion, Snow, Leopard )の場合

OpenNI, Nite,

SensorKinect が必要。

Kinect for XBOX ¥14,800-

Page 27: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window は…

Page 28: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window は…

Macでは認識しませんでした…。

Page 29: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

Windows に対応した Kinect for Window は…

Kinect for XBOX でないと、

動作しないようです。

Page 30: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

AIRアプリからKinectセンサーに

アクセスするには…?

Page 31: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

Kinect 開発環境について

AIRKinect

Page 32: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

Page 33: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRアプリケーションから

Kinectセンサーを利用する為の

ライブラリ。

Page 34: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRアプリケーションから

Kinectセンサーを利用する為の

ライブラリ。

開発元:as3NUI

Page 35: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIR 3 の新機能、

ネイティブ拡張 for AIR で開発。

Page 36: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIR 3 の新機能、

ネイティブ拡張 for AIR で開発。

ライブラリだけでなく、

Windows なら Kinect SDK、

OpenNIが必要。

Mac は、OpenNIのみ。

Page 37: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIR 3 の新機能、

ネイティブ拡張 for AIR で開発。

ネイティブの実装は意識せず、

ActionScriptだけで、

Kinectアプリが、作れます。

Page 38: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinectのバージョンについて

Page 39: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinectのバージョンについて

AIRKinect version 1.x

AIRKibect version 2.x

Page 40: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinectのバージョンについて

AIRKinect version 1.x

AIRKibect version 2.x

バージョンが2つ存在します。

Page 41: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 1.x

Page 42: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 1.x

最新版:version 1.7.1

はじめにリリースしたバージョン

機能:

RGBカメラ, 深度カメラ,

骨格追跡

Page 43: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 1.x

最新版:version 1.7.1

機能拡張用ライブラリも別途提供。

Page 44: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 1.x

最新版:version 1.7.1

機能拡張:

ヒストリー、骨格追跡の保存と再生、

ジェスチャー, 領域判定…etc

Page 45: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 2

最新版:version 2.1

Page 46: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 2

最新版:version 2.1

実装方法が簡単になりました。

機能:

RGBカメラ, 深度カメラ,

骨格追跡, PointCloud

Page 47: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinect version 2

最新版:version 2.1

実装方法が簡単になりました。

機能:

OpenNI for Windowsの対応、

ニアモードの対応(MSオンリー)

Page 48: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

AIRKinectには、

オーディオ機能が

搭載されていません。

Page 49: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinectとは

今回は、

AIRKinect2.1を使用した

AIRアプリ開発に

ついて解説します。

Page 50: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

今回使用する開発環境:

Page 51: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

今回使用する開発環境:

Windows 7 搭載 PC

Kinect SDK version 1.0

Flash Builder 4.6

AIR 3.1

Page 52: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

今回使用する開発環境:

Windows 7 搭載 PC

Kinect SDK version 1.0

Flash Builder 4.6

AIR 3.1 AIRKinectがSWFバージョン14な為、

作成するアプリはAIR3.1以上が必須条件。

Page 53: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

準備

Page 56: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

準備

ZIPフォルダを解凍後、binフォルダにあるairkinect-2-xx.aneを取り出します。

Kinect SDKの方

OpenNIの方

Page 57: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

準備

ANEファイルがネイティブ拡張 for AIR のライブラリファイルです。 Kinect SDKの方

OpenNIの方

Page 58: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

準備

AIRプロジェクトの作成を

行った後、

airkinect-2-xx.aneを

ネイティブ拡張ライブラリと

して登録します。

Page 59: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect2.1による開発

準備 リソース→ActionScriptビルドパス→ネイティブエクステンションで「ANEを追加」

Page 60: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

準備 リソース→ActionScriptビルドのパッケージ→ネイティブエクステンションでパッケージの箇所のチェックボックスに

チェックを入れます。

AIRKinect2.1による開発

Page 61: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1による開発

Page 62: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

AIRKinect2.1による開発

Page 63: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

RGBカメラの実装

AIRKinect2.1による開発

Page 64: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

RGBカメラの実装

深度カメラの実装

AIRKinect2.1による開発

Page 65: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

RGBカメラの実装

深度カメラの実装

骨格追跡の実装

AIRKinect2.1による開発

Page 66: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

RGBカメラの実装

深度カメラの実装

骨格追跡の実装

マスクモードの実装

AIRKinect2.1による開発

Page 67: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

RGBカメラの実装

深度カメラの実装

骨格追跡の実装

マスクモードの実装

ポイントクラウドの実装

AIRKinect2.1による開発

Page 68: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

AIRKinect2.1による開発

Page 69: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

AIRKinect2.1のコアクラス

com.as3nuinativeExtensions.air.kinect

Kinectクラス

KinectSettingクラス

AIRKinect2.1による開発

Page 70: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

Kinectクラス

AIRKinect2.1による開発

Page 71: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

Kinectクラス

Kinectセンサーの設定、実行開始、

実行終了、カメラやセンサーから

取得した情報を管理するクラス。

AIRKinect2.1による開発

Page 72: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

Kinectクラス

実装例

var kinect:Kinect = Kinect.getDevice();

… … … … … …

kinect.addEventListener(…

kinect.start(kinectSetting);

AIRKinect2.1による開発

Page 73: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

KinectSettingクラス

AIRKinect2.1による開発

Page 74: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

KinectSettingクラス

Kinectセンサーの各種モードを

設定する為のクラス。

AIRKinect2.1による開発

Page 75: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

KinectSettingクラス

実装例(RGBカメラ - 320x240)

var setting:KinectSetting =

new KinectSetting();

setting.rgbEnabled = true;

setting.rgbResolution = CameraResolution_320_240;

AIRKinect2.1による開発

Page 76: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

AIRKinect2.1による開発

Page 77: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

if (Kinect.isSupported()) {

}

AIRKinect2.1による開発

Page 78: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

// Kinectセンサーの接続有無

if (Kinect.isSupported()) {

}

AIRKinect2.1による開発

Page 79: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

// Kinectセンサーの接続有無

if (Kinect.isSupported()) {

// Kinectの処理を記述…

}

AIRKinect2.1による開発

Page 80: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

// Kinectの処理を記述

AIRKinect2.1による開発

Page 81: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

// Kinectの処理を記述 var kinect:Kinect = Kinect.getDevice();

AIRKinect2.1による開発

Page 82: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ

// Kinectの処理を記述 var kinect:Kinect = Kinect.getDevice();

kinect.addEventListener(

DeviceEvent.STARTED, onStart);

kinect.addEventListener(

DeviceEvent.STOPPED, onStop);

AIRKinect2.1による開発

Page 83: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ var kinectSetting:KinectSetting =

new KinectSetting();

// kinectSettingで設定処理を行う。

AIRKinect2.1による開発

Page 84: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

実装の流れ var kinectSetting:KinectSetting =

new KinectSetting();

// kinectSettingで設定処理を行う。

// 必要なイベントを登録後、

// kinect開始。

kinect.start(kinectSetting);

AIRKinect2.1による開発

Page 85: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラとは?

AIRKinect2.1による開発

Kinectの映像カメラから BitmapDataに変換したデータを 取得する機能。 解像度: 160x120, 320x240, 640x480

Page 86: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラの実装

AIRKinect2.1による開発

Page 87: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラの実装

Kinectクラスの取得。

KinectSettingにRGBカメラモードを

設定。解像度も設定する。

AIRKinect2.1による開発

Page 88: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラの実装

KinectクラスにRGBカメラ更新

イベントを登録。

AIRKinect2.1による開発

Page 89: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラの実装

KinectクラスにRGBカメラ更新

イベントを登録。

CameraImageEvent.RGB_IMAGE_UPDATE

AIRKinect2.1による開発

Page 90: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラの実装

Kinectをスタート。

AIRKinect2.1による開発

Page 91: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

RGBカメラの実装

Kinectをスタート。

RGBカメラのデモを行います

AIRKinect2.1による開発

Page 92: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラとは?

AIRKinect2.1による開発

Kinectの近赤外線カメラから BitmapDataに変換したデータを 取得する機能。 奥行情報をモノクロ階調で 表現。ユーザー認識や ニアモードにも対応。

Page 93: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラの実装

AIRKinect2.1による開発

Page 94: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラの実装

Kinectクラスの取得。

KinectSettingに深度カメラモードを

設定。解像度も設定する。

AIRKinect2.1による開発

Page 95: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラの実装

Kinectクラスに深度カメラ更新

イベントを登録。

AIRKinect2.1による開発

Page 96: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラの実装

Kinectクラスに深度カメラ更新

イベントを登録。

CameraImageEvent.DEPTH_IMAGE_UPDATE

AIRKinect2.1による開発

Page 97: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラの実装

Kinectをスタート。

AIRKinect2.1による開発

Page 98: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

深度カメラの実装

Kinectをスタート。

深度カメラのデモを行います

AIRKinect2.1による開発

Page 99: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡とは?

AIRKinect2.1による開発

Kinectセンサーが認識した 身体の関節部位を推定し、 骨格情報を構築する機能。 AIRKinectが提供する 独自クラスで取得する。

Page 100: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

AIRKinect2.1による開発

Page 101: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

Kinectクラスの取得。

KinectSettingに骨格追跡モード

を設定する。

AIRKinect2.1による開発

Page 102: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

Kinectクラスの取得。

ENTER_FRAMEでイベント登録後、

Kinectをスタート。

AIRKinect2.1による開発

Page 103: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

ENTER_FRAME毎に骨格追跡の情報を持つ

ユーザー情報を取得。(Vectorで

人数分を一括取得。)

AIRKinect2.1による開発

Page 104: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

ENTER_FRAME毎に骨格追跡の情報を持つ

ユーザー情報を取得。(Vectorで

人数分を一括取得。)

Kinect.getDevice().userWithSkeletion

AIRKinect2.1による開発

Page 105: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

ユーザー情報 = Userクラス

AIRKinect2.1による開発

Page 106: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

com.as3nui.nativeExtensions

.air.kinect.data.User

AIRKinect2.1による開発

Page 107: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

com.as3nui.nativeExtensions

.air.kinect.data.User

骨格追跡や位置情報などを

保持するクラス。

AIRKinect2.1による開発

Page 108: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

com.as3nui.nativeExtensions

.air.kinect.data.SkeletonJoint

AIRKinect2.1による開発

Page 109: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

com.as3nui.nativeExtensions

.air.kinect.data.SkeletonJoint

骨格部位の名前、位置情報を

保持するクラス。

AIRKinect2.1による開発

Page 110: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

Userクラスから骨格情報を繰り返し取得。

for each(var user:User in Kinect.getDevice().usersWithSkeleton) {

// ユーザー情報にある骨格情報を繰り返し取得

for each(var joint:SkeletonJoint in user.skeletonJoints) {

// 描画処理を行う。

}

}

AIRKinect2.1による開発

Page 111: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

Userクラスから骨格の各部位を

取得することも可能。

頭:user.head, 左足:user.leftFoot…

AIRKinect2.1による開発

Page 112: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

骨格追跡の実装

骨格追跡のデモを行います

AIRKinect2.1による開発

Page 113: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードとは?

AIRKinect2.1による開発

RGBカメラで取得した画像に、 ユーザー認識した画像だけを、 切り抜く機能。 ニアモードにも対応。

Page 114: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードの実装

AIRKinect2.1による開発

Page 115: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードの実装

Kinectクラスの取得。

KinectSettingにユーザーマスク

モードを設定。解像度も設定する。

AIRKinect2.1による開発

Page 116: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードの実装

KinectクラスにUserのマスク

イメージ更新イベントを登録。

AIRKinect2.1による開発

Page 117: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードの実装

KinectクラスにUserのマスク

イメージ更新イベントを登録。

UserEvent.USER_MASK_IMAGE_UPDATE

AIRKinect2.1による開発

Page 118: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードの実装

Kinectをスタート。

AIRKinect2.1による開発

Page 119: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

マスクモードの実装

Kinectをスタート。

マスクモードのデモを行います

AIRKinect2.1による開発

Page 120: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドとは?

AIRKinect2.1による開発

ポイントクラウドとは点群 とも呼ばれ、3次元座標の 集合です。 Kinectから得たRGBカメラ と深度カメラ情報から 解析して、ByteArrayで 返却されます。

Page 121: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

AIRKinect2.1による開発

Page 122: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

Kinectクラスの取得。

KinectSettingにポイントクラウド

使用可とする。解像度も設定する。

AIRKinect2.1による開発

Page 123: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

KinectクラスにPointCloudの

更新イベントを登録。

AIRKinect2.1による開発

Page 124: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

KinectクラスにPointCloudの

更新イベントを登録。

PointCloudEvent.POINT_CLOUD_UPDATE

AIRKinect2.1による開発

Page 125: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

Kinectをスタート。

AIRKinect2.1による開発

Page 126: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

Kinectをスタート。

ポイントクラウドのデモを

行います

AIRKinect2.1による開発

Page 127: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

開発

ポイントクラウドの実装

Kinectをスタート。

ポイントクラウドのデモを

行います

AIRKinect2.1による開発

Page 128: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect作品

ペイントするアプリ

Kinect + Flash + Natzke

Ribbons

AIRKinect事例(動画)

Page 129: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect作品

ゲームアプリ

羽を動かして遊ぶゲームアプリ

料理するゲームアプリ

ボクシングゲームアプリ

ヒーローアプリ

AIRKinect事例(動画)

Page 130: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

AIRKinect作品

as3NUIチームのデモ

サンタなりきり

モンスターなりきり

AIRKinect事例(動画)

Page 132: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

参考ページ

airkinect-2-examples(source) github

https://github.com/AS3NUI/airkinect-2-

examples

ANE-LAB (Google Code)デモアプリはここにあります。

http://goo.gl/hi8OM

AIRKinectをはじめる人は…

Page 133: Flex 勉強会 第 166 回@仙台 「AIRKinectについて」 by tokufxug

ご清聴ありがとうございました。