ミーハーのブログ

ミーハーだからを免罪符に適当なことを言う。

Kinectで遊ぼう

この記事はあくあたん工房クリスマスアドベントカレンダー9日目の記事です. 面白い記事ばかりなので他の記事もぜひご覧ください.

adventar.org

はじめに

記事を書くにあたってなんかネタ無いかなと探していたところ,ちょうど研究室にkinectが転がっていたのでこいつで遊んでみることにします.

kinectといえばモーションキャプチャモーションキャプチャといえばVtuberみたいなとこがあるので(?)今回はkinectを使って3Dモデルを動かしてみようと思います.

環境

PC環境

使用機材

実践

Unity5をインストールする

Unity5は古いものなので,UnityHubでインストールせずにインストーラーからインストールしましょう.

unity3d.com

僕は最初UnityHubで入れてみたところエディタが全く起動せず時間が溶けました.

Unity Pro パッケージをダウンロードする

以下のリンクからUnity Proパッケージをダウンロードしてください.

developer.microsoft.com

Unityにパッケージをインポートする

さきほどダウンロードしたパッケージをUnityにインポートします. [Assets→Import Package→Custom Package...]からKinect.2.0.1410.19000.unitypackageを選択してインポートします.

Kinectの座標とUnityの座標を合わせる

ここで,Kinectの座標とUnityの座標を合わせるためにインポートしたパッケージ内のスクリプトを書き換えるのですが,今回は割愛します.

モデルをインポートする

今回はモデルとしてユニティちゃんを使おうと思います. 以下のリンクからダウンロードし,ダウンロードしたUnityChan_1_2_1.unitypackageを上記と同様にインポートします.

unity-chan.com

ユニティちゃんとkinectから得られるボーンの座標データを同期させる

UnityのProjectビューにある先ほどインポートした[UnityChan]フォルダから,[Prefabs | unitychan]をHierarchyビューへ追加します.

次に,モデルに設定されている各関節のGameObjectを取得し,Kinectから得た骨格データと対おいうさせるスクリプトを書きます(今回は時間の都合で割愛...). ここでモデルを設定することでボーンのみのデータに肉付けを行うことができます.

最後に空のGameObjectを作成し,さきほど作成したスクリプトを設定します.これが骨格データを可視化したものになります.

そして,モデルとしてユニティちゃんを設定してやることで骨組みだけだったGameObjectが肉付けされ,ユニティちゃんを動かしている見た目になります.

完成!!

f:id:rideonyan:20201209224608g:plain
結果

さいごに

時間がなくて大事そうな部分を全部省略してしまいましたが,無事ユニティちゃんになることができてよかったです. 6年も前のハードなのにかなり精度良くモーショントラッキングができていた事には驚きました. 表情認識もできるそうなのでまだまだ面白い使い方ができそうです.

もしお持ちの方はぜひ遊んでみてください!

参考書籍

KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版

今回参考にした部分がwebで連載されていた

Kinectでユニティちゃんを動かす

*1:すでに生産が終了しており,現在はAzure Kinectというものが販売されている