![](https://www.pc-koubou.jp/magazine/wp-content/uploads/2019/02/xtion2_unity_main-810x450.png)
![](https://www.pc-koubou.jp/magazine/wp-content/uploads/2019/02/xtion2_unity_main-480x320.png)
ASUSTeK COMPUTER INC.の深度センサー「Xtion2」を使うと、骨格検出のプログラムを組み合わせることで身体にセンサーを取り付けたり特殊なスーツなどを着用することなく、身体の動きを取り込むことが可能です。
今回はXtion2を使って、ゲーム開発環境「Unity」上で実際に画面上の3Dモデルを動かしてみたいと思います。
身体の動きと3Dモデルの動きを同期させるには
Xtion2と画像認識プログラムを組み合わせて人間を撮影することで、人の形を認識させるとともに、人の形から推測される骨格の位置を割り出す(=骨格検出)ことができます。
対象物は連続した画像、つまり動画として捉えられるため、人の形として認識されている間、人が動くと骨格も連動して動きます。
※Xtion2を用いた骨格検出については下記の記事も参考にしてください。
“深度センサー Xtion2 で人の骨格を検出する”
https://www.pc-koubou.jp/magazine/14520
また、今回3Dモデルを動かす環境として、ゲーム開発環境である「Unity」を使いますが、このUnityと連携可能な「Nuitrack」という人体認識プログラムがXtion2で使用可能な画像認識プログラム「OpneNI」をサポートしているため、Xtion2で捉えた人間の動きをUnity上の3Dモデルの動きと連動させることが可能になるのです。
OpenNI⇔Nuitrack⇔Unityが連携して3Dモデルを人の動きと連動させる
OpenNI/Nuitrackのセットアップ
まずOpenNIのセットアップから始めます。
下記公式サイトの「ドライバーとツール」内「Windows 10 64-bit」を選択し「すべて表示する」をクリックします。
“Xtion 2 Driver & Tools | 3Dセンサー | ASUS 日本 ”.2018.ASUSTeK Computer Inc.
https://www.asus.com/jp/3D-Sensor/Xtion-2/HelpDesk_Download/
「ASUS-Xtion2_nuitrack-win64」が含まれている「バージョン:2018/04/23」をダウンロードします。
ダウンロードしたファイルに含まれている「OpenNI-Win64-1.5.7-Dev.msi」をダブルクリックしてインストールします。
続いて、Nuitrack公式サイトから「nuitrack-windows-x64.exe」をダウンロードします。
“Nuitrack: Installation Instructions”.2019.3DiVi Inc.
http://download.3divi.com/Nuitrack/doc/Installation_page.html
画面の指示に従ってインストールを進めます。
Nuitrackのインストールが終わったら、「コントロールパネル」を開き、「システムとセキュリティ」→「システム」→「システムの詳細設定」を開きます。
「システムのプロパティ」ウィンドウが開いたら「詳細設定」タブ右下の「環境変数」ボタンをクリックします。
「環境変数」ボタンをクリックすると表示される「環境変数」ウィンドウで「新規」ボタンをクリックし、「新しいユーザー変数」画面で「変数名:NUITRACK_HOME」「変数値:C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack」を入力し、「OK」ボタンをクリックしてユーザー環境変数を追加します
続いて、すでに存在する変数「Path」に、「C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack¥bin」を追加します。
ユーザー環境変数のところにある「Path」を選択して「編集」ボタンをクリック
右上「新規」ボタンをクリックして
「C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack¥bin」と入力後「OK」をクリック
以上でOpenNIとNuitrackのセットアップは終わりです。
Unityのセットアップ
続いてUnityのセットアップを行います。
Unityの公式サイト内「Unity Store」ページで、右端の「Personal」内「無料ダウンロード」ボタンをクリックします。
“UnityStore”.2019.Unity Technologies.
https://store.unity.com/ja
※今回は個人的なテストとしてサンプルプログラムの動作を確認するためPersonalプランでダウンロードを行いますが、Unityの利用規約をよくご確認いただき、利用形態に合わせた適切な契約を行ってください
右上「新規」ボタンをクリックして
「C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack¥bin」と入力後「OK」をクリック
次のページで利用規約を確認しチェックボックスをオンにした後、「Windows用のインストーラーをダウンロードする」をクリックします。
インストーラーが起動すると、下図のような画面が表示されるので「Next」をクリックします。
個人で非商用利用の場合は「Personal」の「無料ダウンロード」をクリック
インストールが完了したら「Finish」をクリックして閉じる
インストール完了後、Xtion2をパソコンに接続してUnityを起動すると、下図のような画面が表示されます。 「UnityID」の登録が必要となりますので、「create one」をクリックします。
※Google、FacebookのIDでもサインインが可能です
最初に起動して表示された画面で「create one」をクリック
必要事項を入力して「Create a Unity ID」をクリック
登録確認メールが入力したメールアドレス宛に届きますので、メール文面のリンクをクリックして認証した上で、下記画面で「Continue」をクリックします。
メールのリンクをクリックして認証した後、「Continue」をクリック
ライセンス管理画面が表示されます。利用中のプランを選択して「Next」をクリックします。
内容に関する確認画面が表示されますので内容を確認して選択後、「Next」をクリックします。
次の画面で「StartUsing Unity」ボタンをクリックして、プロジェクト作成画面へ進みます。
プロジェクト作成画面ではプロジェクト名、保存場所、テンプレートの種類、組織名を入力します。テンプレートでは「3D」を、あとは任意の内容を入力し、「Create project」をクリックします。
必要事項を入力して「Create project」をクリック
表示されたUnityのプロジェクト画面上部にある「Asset store」で「Nuitrack Skeleton Tracking」を検索し、「Download」ボタンをクリックした後「Import」ボタンをクリックします。
「Nuitrack Skeleton Tracking」を検索して選択
ダウンロードが完了するとDownloadボタンが「Import」ボタンに変わるのでクリック
インポートを行うと開いているプロジェクトが置き換わってしまう旨のダイアログが表示されるので、もしなにか作業途中のプロジェクトを開いている場合は閉じ、新たに空のプロジェクトを開いてインポートを行います。
そのまま開いて問題がない場合は下図「Import」ボタンをクリックします。
プロジェクトが完全に置き換わってしまう旨のダイアログが表示されるので
確認の上「Import」ボタンをクリック
「Nuitrack SDK」配下にチェックが入っていることを確認して「Import」をクリック
これでUnityのセットアップも完了です。
※なお、Nuitrackについては無料ライセンスで試用する場合、3分間の利用時間の制限があります。
“Got questions? Nuitrack”.3DiVi Inc.
https://nuitrack.com/#rec43669110
3Dモデルを動かしてみる
続いてインポートした「Nuitrack Skelton Tracking」のサンプルプログラムを動かしてみます。
Unityの画面左下「Project」タブをクリックし、「Assets→NuitrackSDK→Tutorials→First Project」を開き、「BasicSkeleton.unity」を開きます。
左下「Project」タブ内「Assets→Nuitrack SDK」をクリックし、
横並びになったフォルダ内で「Tutorials」をダブルクリック
「Tutorials」内の「First Project」をクリック
「First Project」内の「BasicSkeleton.unity」をダブルクリック
下図のような画面が表示されたら、画面上部中央の「実行」ボタンを押します。
ここで実行ボタンを押しても何も起こらない場合は、先ほどクリックした画面左下「Project」タブの隣りにある「Console」タブをクリックして見てみると、赤いマークのついたエラーが表示されていると思います。
下の画面の「Project」タブの隣の「console」を開くとエラーが出ている
上図のようにエラーが出ている場合は、下図「Assets→NuitrackSDK→Motion Capture」を右クリックして「Delete」を選択し、ディレクトリーを削除した上で、もう一度実行ボタンをクリックします。
「Assets→NuitrackSDK→Motion Capture」を右クリックして「Delete」を選択
プログラムが実行されると、下図のようにGameビュー左上に赤い「Skeleton not found」の文字が出ます。
Gameビュー左上に「Skeleton not found」と赤い文字が表示される
上図の状態でXtion2が人の姿を捉えると、左上の表示が「Skeleton found」に変わり、人型のモデルが出現します。
実際に動いている状態の動画
Xtion2で捉えた人が動くと、人の動きに合わせて画面内の3Dモデルが動きます。
実際に動いている状態の画面を動画にしてアップしてみました。
まとめ
実際に動いている様子を見てみると、人の身体に何も取り付けていないのに画面内の3Dモデルが身体の動きと同期して動き、不思議な感覚です。
今回はテストでシンプルな3Dモデルを動かしてみましたが、別の機会にもっと3Dキャラクターっぽい3Dモデルを用いて、Vチューバーのように動かしてみたいと思います!
パソコン工房ではビジネス向けパソコンとしてSOLUTION∞やディープラーニング(Deep Learning)専用パソコンなど取り扱っております。
![](https://www.pc-koubou.jp/magazine/wp-content/uploads/2018/11/ishigo3-140x140.png)
石郷祐介
大学卒業後、公設研究機関勤務を経て、「情報科学芸術大学院大学[IAMAS]」に入学。
専門学校講師を経て、企業の研究開発をコンセプトから開発まで支援する「合同会社4D Pocket」代表、エンジニアを養成するフリースクール「一般社団法人HOPTER TECH SCHOOL」代表理事、「名古屋文理大学」及び「名古屋造形大学」非常勤講師。