Xtion2を使って、ゲーム開発環境「Unity」上で実際に画面上の3Dモデルを動かす手順についてご紹介します。

チャレンジ&ナレッジ最終更新日: 20190221

深度センサー Xtion2 を使って画面上の3Dモデルを動かす

  • このエントリーをはてなブックマークに追加

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⇔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/

「ドライバーとツール」内「Windows 10 64-bit」を選択し「すべて表示する」をクリック

「ASUS-Xtion2_nuitrack-win64」が含まれている「バージョン:2018/04/23」をダウンロードします。

「バージョン:2018/04/23」をダウンロード

ダウンロードしたファイルに含まれている「OpenNI-Win64-1.5.7-Dev.msi」をダブルクリックしてインストールします。

「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-windows-x64.exe」をダウンロード

画面の指示に従ってインストールを進めます。

「次へ」をクリック「次へ」をクリック

インストール先を指定して「次へ」をクリックインストール先を指定して「次へ」をクリック

「次へ」クリックしてインストールを開始「次へ」クリックしてインストールを開始

上記表示が出たら「完了」をクリック上記表示が出たら「完了」をクリック

Nuitrackのインストールが終わったら、「コントロールパネル」を開き、「システムとセキュリティ」→「システム」→「システムの詳細設定」を開きます。

「システムのプロパティ」ウィンドウが開いたら「詳細設定」タブ右下の「環境変数」ボタンをクリックします。

コントロールパネルで「システムとセキュリティ」を選択コントロールパネルで「システムとセキュリティ」を選択

「システムとセキュリティ」の「システム」をクリック「システムとセキュリティ」の「システム」をクリック

「システムの詳細設定」をクリック「システムの詳細設定」をクリック

「詳細設定」タブ右下「環境変数」をクリック「詳細設定」タブ右下「環境変数」をクリック

「環境変数」ボタンをクリックすると表示される「環境変数」ウィンドウで「新規」ボタンをクリックし、「新しいユーザー変数」画面で「変数名:NUITRACK_HOME」「変数値:C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack」を入力し、「OK」ボタンをクリックしてユーザー環境変数を追加します

変数名と変数値を入力変数名と変数値を入力

続いて、すでに存在する変数「Path」に、「C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack¥bin」を追加します。

ユーザー環境変数のところにある「Path」を選択して「編集」ボタンをクリックユーザー環境変数のところにある「Path」を選択して「編集」ボタンをクリック

右上「新規」ボタンをクリックして「C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack¥bin」と入力後「OK」をクリック右上「新規」ボタンをクリックして
「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」をクリック右上「新規」ボタンをクリックして
「C:¥Program Files¥Nuitrack¥nuitrack¥nuitrack¥bin」と入力後「OK」をクリック

次のページで利用規約を確認しチェックボックスをオンにした後、「Windows用のインストーラーをダウンロードする」をクリックします。

インストーラーが起動すると、下図のような画面が表示されるので「Next」をクリックします。

個人で非商用利用の場合は「Personal」の「無料ダウンロード」をクリック個人で非商用利用の場合は「Personal」の「無料ダウンロード」をクリック

インストーラーが起動したら「Next」をクリックインストーラーが起動したら「Next」をクリック

インストールが完了したら「Finish」をクリックして閉じるインストールが完了したら「Finish」をクリックして閉じる

インストール完了後、Xtion2をパソコンに接続してUnityを起動すると、下図のような画面が表示されます。
「UnityID」の登録が必要となりますので、「create one」をクリックします。

※Google、FacebookのIDでもサインインが可能です

最初に起動して表示された画面で「create one」をクリック最初に起動して表示された画面で「create one」をクリック

必要事項を入力して「Create a Unity ID」をクリック必要事項を入力して「Create a Unity ID」をクリック

登録確認メールが入力したメールアドレス宛に届きますので、メール文面のリンクをクリックして認証した上で、下記画面で「Continue」をクリックします。

メールのリンクをクリックして認証した後、「Continue」をクリックメールのリンクをクリックして認証した後、「Continue」をクリック

ライセンス管理画面が表示されます。利用中のプランを選択して「Next」をクリックします。

内容に関する確認画面が表示されますので内容を確認して選択後、「Next」をクリックします。

内容を確認して選択後、「Next」をクリック

次の画面で「StartUsing Unity」ボタンをクリックして、プロジェクト作成画面へ進みます。

「StartUsing Unity」ボタンをクリックして、プロジェクト作成画面へ進む

プロジェクト作成画面ではプロジェクト名、保存場所、テンプレートの種類、組織名を入力します。テンプレートでは「3D」を、あとは任意の内容を入力し、「Create project」をクリックします。

必要事項を入力して「Create project」をクリック必要事項を入力して「Create project」をクリック

表示されたUnityのプロジェクト画面上部にある「Asset store」で「Nuitrack Skeleton Tracking」を検索し、「Download」ボタンをクリックした後「Import」ボタンをクリックします。

画面上部の「Asset Store」タブをクリック画面上部の「Asset Store」タブをクリック

「Nuitrack Skeleton Tracking」を検索して選択「Nuitrack Skeleton Tracking」を検索して選択

上図画面で「Download」ボタンをクリック上図画面で「Download」ボタンをクリック

ダウンロードが完了するとDownloadボタンが「Import」ボタンに変わるのでクリックダウンロードが完了するとDownloadボタンが「Import」ボタンに変わるのでクリック

インポートを行うと開いているプロジェクトが置き換わってしまう旨のダイアログが表示されるので、もしなにか作業途中のプロジェクトを開いている場合は閉じ、新たに空のプロジェクトを開いてインポートを行います。

そのまま開いて問題がない場合は下図「Import」ボタンをクリックします。

プロジェクトが完全に置き換わってしまう旨のダイアログが表示されるので確認の上「Import」ボタンをクリックプロジェクトが完全に置き換わってしまう旨のダイアログが表示されるので
確認の上「Import」ボタンをクリック

「Nuitrack SDK」配下にチェックが入っていることを確認して「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」をダブルクリック左下「Project」タブ内「Assets→Nuitrack SDK」をクリックし、
横並びになったフォルダ内で「Tutorials」をダブルクリック

「Tutorials」内の「First Project」をクリック「Tutorials」内の「First Project」をクリック

「First Project」内の「BasicSkeleton.unity」をダブルクリック「First Project」内の「BasicSkeleton.unity」をダブルクリック

下図のような画面が表示されたら、画面上部中央の「実行」ボタンを押します。

ここで実行ボタンを押しても何も起こらない場合は、先ほどクリックした画面左下「Project」タブの隣りにある「Console」タブをクリックして見てみると、赤いマークのついたエラーが表示されていると思います。

実行ボタンを押しても動かない場合は…実行ボタンを押しても動かない場合は…

下の画面の「Project」タブの隣の「console」を開くとエラーが出ている下の画面の「Project」タブの隣の「console」を開くとエラーが出ている

上図のようにエラーが出ている場合は、下図「Assets→NuitrackSDK→Motion Capture」を右クリックして「Delete」を選択し、ディレクトリーを削除した上で、もう一度実行ボタンをクリックします。

「Assets→NuitrackSDK→Motion Capture」を右クリックして「Delete」を選択「Assets→NuitrackSDK→Motion Capture」を右クリックして「Delete」を選択

上記操作後、もう一度下図実行ボタンを押す上記操作後、もう一度下図実行ボタンを押す

プログラムが実行されると、下図のようにGameビュー左上に赤い「Skeleton not found」の文字が出ます。

Gameビュー左上に「Skeleton not found」と赤い文字が表示されるGameビュー左上に「Skeleton not found」と赤い文字が表示される

上図の状態でXtion2が人の姿を捉えると、左上の表示が「Skeleton found」に変わり、人型のモデルが出現します。

Xtion2が人を捉えると赤い玉の人型モデルが表示されたXtion2が人を捉えると赤い玉の人型モデルが表示された

実際に動いている状態の動画

Xtion2で捉えた人が動くと、人の動きに合わせて画面内の3Dモデルが動きます。

実際に動いている状態の画面を動画にしてアップしてみました。

まとめ

実際に動いている様子を見てみると、人の身体に何も取り付けていないのに画面内の3Dモデルが身体の動きと同期して動き、不思議な感覚です。

今回はテストでシンプルな3Dモデルを動かしてみましたが、別の機会にもっと3Dキャラクターっぽい3Dモデルを用いて、Vチューバーのように動かしてみたいと思います!

ライタープロフィール 合同会社 4D Pocket
石郷祐介

大学卒業後、公設研究機関勤務を経て、「情報科学芸術大学院大学[IAMAS]」に入学。
専門学校講師を経て、企業の研究開発をコンセプトから開発まで支援する「合同会社4D Pocket」代表、エンジニアを養成するフリースクール「一般社団法人HOPTER TECH SCHOOL」代表理事、「名古屋文理大学」及び「名古屋造形大学」非常勤講師。

記事を
シェア