Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
-
Upload
tetsuya-mori -
Category
Engineering
-
view
375 -
download
8
Transcript of Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた-
2015.06.23 (Tue) / Unity 勉強会 #32株式会社キッズスター
システムデベロプメントチーム リーダー 森 哲哉
こんばんは!
「またお前か」 でお馴染みの もんりぃです!
今日は
meets
というコトで
Natural User
Interface
のおはなしです
おしながき
おしながき
• Kinect って?
• Unity × Kinect の準備
• Unity × Kinect の開発
• おまけ
さて、本題
の、前に
自己紹介
whoami
• “森 哲哉” と申します
• a.k.a: もんりぃ / T: @monry / F: monry84
• 30歳 / ♂ / O型 / 天秤座 / 既婚
• 趣味は「お酒」と「合唱」です
whoami• 大学を (自主的に) 卒業後、ベンチャーを転々
• Web のフロントエンド、サーバサイドが得意
• Unity 歴 2 年くらい
• インフラ (AWS) も、ちょいちょいやってます
• Cocos2d-JS も触ってます
jobs• “株式会社キッズスター” って会社で働いてます
• 未就学児~小学生のお子さまをお持ちのファミリーをターゲットにした、知育/教育に関わるアプリ・サービスを展開しております
• 「IID 世田谷ものづくり学校」という、元中学校に入居しております
office
office
apps
なりきり!! ごっこランド
パズル&テイルズおかしのくにを つくるのじゃ!!
なりきり!! アイスクリーム 屋さんごっこ
なりきり!! ママごっこ
お弁当をつくろう!
おかしの家を つくろう!
ハンバーガー やさんごっこ
飛行機を 組み立てよう!
i18n i18n i18n
i18n
ゆかいな お花屋さん
App Sto
re / Goo
gle Play
カテゴリランキング1位
多数獲得!!!きかんしゃ トーマスと
パズルで あそぼう!
キョロちゃん 大冒険
events
events
今度こそ、本題
Kinect って?
Kinect って?
• Microsoft が開発した NUI デバイス
• 複数のセンサーを搭載
• v1 と v2 がある
Kinect って?
Kinect って?
今なら何と!
Kinect って?
¥16,178-(2015/06/22 現在)
Kinect って?
更に!!
Kinect って?
別売りの Windows PC アダプタ (¥5,378-) も付けて…
Kinect って?
¥21,556-(2015/06/22 現在)
Kinect って?
(きゃー) (やす~い!)
Kinect って?
お求めはコチラから! 本体
アダプタ
Unity × Kinect の準備
準備• 大まかな流れは以下の通り
1. Kinect 買う
2. マシン要件確認
3. SDK インストール
4. Unity Package 取得
準備
• Kinect 買う
• 買いましょう。
• 届くのをソワソワしながら待ちましょう。
準備• ハードウェア要件
• OS: Windows 8 (64bit) 以降
• 端子: USB 3.0
• CPU: Intel Core i7 3.1GHz 以上
• GPU: DirectX 11
• RAM: 4GB 以上
準備
セレブ向けですね!
準備
なお、GPU の絡みで Parallels Desktop とかの VM では動きません!
準備
準備
• SDK インストール
• Kinect for Windows SDK 2.0
• Kinect Studio とか色々指示に従ってインスコ
• Visual Gesture Builder とか大事
準備• Unity Package 取得
• Unity で Kinect に繋ぐためのスクリプトと DLL が含まれてる
• これが、地味に見付けづらい!
• コチラにあります。
Unity × Kinect の開発
開発
• 「最低限動かしてみたい!」って場合は
• Kinect v2 with MS-SDK (Unity 5.0.1 以上)
• FreeKinectV2 Bone (Unity 4.5.5 以上)
• 辺りを使えば楽に出来るんじゃないかな?
開発先ずは基本
KinectSensor sensor = KinectSensor.GetDefault(); if (!sensor.IsOpen) { sensor.Open();}
これで、センサーとの接続を確立
開発Color Camera のデータを取得
FrameDescription frameDescription = sensor.ColorFrameSource .CreateFrameDescription(ColorImageFormat.Rgba);
byte[] data = new byte[ frameDescription.BytesPerPixel * frameDescription.LengthInPixels ];
ColorFrame frame = reader.AcquireLatestFrame(); if (null != frame) { frame.CopyConvertedFrameDataToArray(data, ColorImageFormat.Rgba); frame.Dispose(); frame = null;}
これで data に画像データが格納される
開発IR Camera / IR Projector から骨格情報を取得
BodyFrameReader reader = sensor.BodyFrameSource.OpenReader(); BodyFrame frame = reader.AcquireLatestFrame();
Windows.Kinect.Body[] data = new Windows.Kinect.Body[sensor.BodyFrameSource.BodyCount];
if (null != frame) { frame.GetAndRefreshBodyData(data); frame.Dispose(); frame = null;}
これで data に認識可能人数分の骨格データが入る ただし、認識していないデータは null
開発
と、言うのもアレなので Visual Gesture Builder
のおはなしを
開発• Visual Gesture Builder って?
• Kinect の骨格認識を用いたジェスチャーの機械学習補助ツール
• Kinect SDK 2.0 に付随
• まだ Preview 版 (Stable まだー?)
開発
• Visual Gesture Builder の使い方
• 先ずは Kinect Studio でストリームを記録
• KSConvert.exe で xrf → xef への変換
• Visual Gesture Builder で学習
開発• Visual Gesture Builder の使い方
• 学習結果のデータベース (.gbd) を出力
• Unity Package に含まれるMicrosoft.Kinect.VisualGestureBuilder .VisualGestureBuilderDatabaseを使って読み込む
• 後は頑張るw
開発
Visual Gesture Builder の使い方については
この動画が詳しいです。
おまけ
おまけ
• AR ライブラリと組み合わせると死ねる
• Color Sensor は WebCam 扱いにならない
• DLL の取り回しが非常に厄介
• 私は metaio と組み合わせようとして爆死
おまけ
• Visual Gesture Builder は Preview 版
• Continuous ジェスチャの学習時にフレーム挿入になるような操作をするとクラッシュ!
• そもそも xrf → xef の変換マンドクセ
おまけ• BootCamp 行けます!
• MacBook Air (13-inch, Mid 2012)
• CPU: 1.8 GHz Intel Core i5
• GPU: Intel HD Graphics 4000 1024 MB
• RAM: 8GB
おまけ• しかし!
• 一定時間以上稼働させると、突然 Kinect が沈黙する事象が発生
• 熱暴走なのか、MBA との組み合わせの問題なのかは謎
• Surface Pro 3 で動かした場合は無問題
おまけ• 「マイクロソフト、Kinect for Windows v2 の 販売を終了」
• 「マジかよ!!!」
• とか思ったけど、"Kinect v2" と Windows 用アダプタの同梱セットの販売を終了しただけ
• 普通に Xbox One 用の Kinect とアダプタを 買いましょう
Any Questions ?
Thank you foryour attention !!