Kinectで遊ぼう
この記事はあくあたん工房クリスマスアドベントカレンダー9日目の記事です. 面白い記事ばかりなので他の記事もぜひご覧ください.
はじめに
記事を書くにあたってなんかネタ無いかなと探していたところ,ちょうど研究室にkinectが転がっていたのでこいつで遊んでみることにします.
kinectといえばモーションキャプチャ,モーションキャプチャといえばVtuberみたいなとこがあるので(?)今回はkinectを使って3Dモデルを動かしてみようと思います.
環境
PC環境
使用機材
実践
Unity5をインストールする
Unity5は古いものなので,UnityHubでインストールせずにインストーラーからインストールしましょう.
僕は最初UnityHubで入れてみたところエディタが全く起動せず時間が溶けました.
Unity Pro パッケージをダウンロードする
以下のリンクからUnity Proパッケージをダウンロードしてください.
Unityにパッケージをインポートする
さきほどダウンロードしたパッケージをUnityにインポートします.
[Assets→Import Package→Custom Package...]からKinect.2.0.1410.19000.unitypackage
を選択してインポートします.
Kinectの座標とUnityの座標を合わせる
ここで,Kinectの座標とUnityの座標を合わせるためにインポートしたパッケージ内のスクリプトを書き換えるのですが,今回は割愛します.
モデルをインポートする
今回はモデルとしてユニティちゃんを使おうと思います.
以下のリンクからダウンロードし,ダウンロードしたUnityChan_1_2_1.unitypackage
を上記と同様にインポートします.
ユニティちゃんとkinectから得られるボーンの座標データを同期させる
UnityのProjectビューにある先ほどインポートした[UnityChan]フォルダから,[Prefabs | unitychan]をHierarchyビューへ追加します.
次に,モデルに設定されている各関節のGameObjectを取得し,Kinectから得た骨格データと対おいうさせるスクリプトを書きます(今回は時間の都合で割愛...). ここでモデルを設定することでボーンのみのデータに肉付けを行うことができます.
最後に空のGameObjectを作成し,さきほど作成したスクリプトを設定します.これが骨格データを可視化したものになります.
そして,モデルとしてユニティちゃんを設定してやることで骨組みだけだったGameObjectが肉付けされ,ユニティちゃんを動かしている見た目になります.
完成!!
さいごに
時間がなくて大事そうな部分を全部省略してしまいましたが,無事ユニティちゃんになることができてよかったです. 6年も前のハードなのにかなり精度良くモーショントラッキングができていた事には驚きました. 表情認識もできるそうなのでまだまだ面白い使い方ができそうです.
もしお持ちの方はぜひ遊んでみてください!
参考書籍
KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版