見出し画像

Sonyのモーションキャプチャー「mocopi」をつかってみた(前編)〜Unityで動かすまで

はじめに

こんにちは、デザイニウムのCGクリエイターの秋山です。
早速ながら、弊社にもモーションキャプチャー「mocopiがやってきました。

mocopiとは

「mocopi」は、ソニーの独自アルゴリズムを用いた小型&軽量なセンサーとスマートフォン(専用アプリ)のみをつかって、どこでもリアルタイムにモーションキャプチャーやVRへモーションを取り込むことができるデバイスです。

いろいろ試している最中ですが、すぐ試せてどこでも持ち運べるので、様々なモーション、環境で試すことができます。こんな動きも取れるかな?と試したくなるような、とても遊びがいのあるデバイスです。

ただ、初めから使用用途を決めている人はともかく、そうでない人は使い道に迷うかもしれません。「自分はVTuberでもないし、かと言ってVRChatをバリバリ遊ぶわけでもないし、ましてや踊ってみたとかもしないし…?」なんて思うかも。

しかし「Unityと組み合わせれば今まで手軽にできなかったモーションキャプチャを使ったコンテンツが作れそうなんだよなぁ」という可能性を感じるプログラマーやCGクリエイターは多いはずです。私も正直その一人。そこで「一体何をどうやれば、何が出来るんだ?」という疑問を抱える人に向けて、自分はこういうことをしてみたよ!という知識を共有しようと思います。

この記事から、なにか使えるものがあれば参考にしていただいて、ここからさらにmocopiを使った新しい何かが見れたら嬉しいです。

なお今回、記事は前後編にわけて構成します。前編(本記事)では「mocopiをUnityで動かすまで」、後編では「mocopiを動かしたら分かったこと&作例集」をご覧いただければと思います。
もうmocopiをセットアップ済みで動いているから問題ないよという方は、下記は読まずに後編の記事へ進んでいただいて問題ありません。
また、この記事ではWindowsでのセットアップ方法を説明しますが、ところどころ確認方法が違うだけでMacでも大筋は変わらないかと思いますので参考になればと思います。

mocopiアプリの設定

それでは、まずお持ちのmocopiを使える状態にしていきましょう。
アプリを入れて連携するところまでは公式のこちらの動画がありますので省略します。

これだけ丁寧な解説があるので間違えないかと思いきや、私の場合は手首につける型番を左右逆で登録してしまいました。これによって、毎回Rと書かれたマーカーを左手首に装着し、Lと書かれたマーカーを右手首につける羽目になりました。
結局面倒になってアプリを削除→再インストール・再登録する羽目になったので、最初に焦らず丁寧にやって終わらせましょう。

PC上でのセットアップ

ここからはPCを使ったセットアップになります。
大まかには、
①必要なデータをダウンロード
②UnityProjectsにインポート
③PCとアプリで設定を合わせて実行
という過程になります。

1. mocopi SDKをダウンロード

Sonyさんが公式で用意されているSDKとアプリケーションをダウンロードします。
必要なものは以下の2つです。

2. Unityで新しいプロジェクトを作成

テンプレートを3Dにして、あとは任意のフォルダに好きなプロジェクト名を入力しましょう。
(ちなみに私のUnityのバージョンは2021.3.16f1ですが、このバージョンである必要はありません)

3.Unityにmocopi Receiver Plugin for Unityをインポートする。

UnityProjectsが出来たら、mocopi Receiver Pluginをインポートします。
ファイルはUnityPackage形式になっています。ですので、UnityProjectsを開いた状態でダウンロードフォルダにあるファイルをダブルクリックすれば、下記画像のようなウィンドウが出てきます。
右下のImportを押して、UntiyProjects内に展開しましょう。

4.mocopiReceiverのサンプルシーンを開く

インポートしたSDK内にはサンプルシーンが用意されています。それを動かせば手っ取り早く試せるのでまずはそれを開いてみましょう。
Assets > MocopiReceiver > Samples > ReceiverSample > Scenesの中に、ReceiverSampleというSceneデータがあるので、それを開きます。
下画像のように、黒いタイツをまとったような人形がシーンに現れたらOKです。

5.Receiver Pluginのポート番号を確認する

ポート番号とは、簡単にいえば、Unityと骨格情報をやり取りする玄関の場所のことを指します。後々設定することになりますが、この番号はPC側とアプリ側で揃える必要があります。

これを確認するためには、ReceiverSampleのシーンの中にある、MocopiSimpleReceiverというゲームオブジェクトにアタッチされたスクリプトを参照してください。このスクリプトのAvatorSettingsの中にある、Element 0のトグルをクリックして広げると現れます。(画像内赤枠部分)

確認してもらいましたが、ここの数字は初期値で【12351】という数値になっています。何かポート番号で細かな管理をしていたり、こだわりがあったりしない限りは、この数値を変更する必要はありません。
ただし、Unity側ではこの12351という場所で骨格データをやり取りするのだということを覚えておいてください。
ここまでで、Unityのセットアップは完了です。

6.BVHSenderを起動

それではセットアップしたUnityProjectsで実際に骨格データを動かすことが出来るのか、まずはテストをしてみましょう。先述の通り、骨格データを送信してテストを行うために、BVH Senderというアプリケーションが用意されています。
1.の工程でダウンロードを行っていますので、まずはそれを開きましょう。
zipを解凍して開くと、下画像のようなデータ構成になっていますので、この中からBVHSender.exeを選択します。

こちらもUnityと似たように、黒いタイツの人形と、文字を入力するボックスが表示されていればOKです。

7. 必要な項目を入力

BVH Senderに動かす骨格データのサンプルと、Unityと通信するための設定を入力します。

・骨格データの指定
まずは画面右のMotionDataのBVHの項目にデータを指定します。
このデータはBVH Senderと一緒にダウンロードされています。BVH Sender.exeと同じディレクトリを見ると、Sample.bvhというデータがあります。これを使用します。BVHの入力欄の右に“・・・”という三点リーダのボタンをクリック。すると見慣れないUIですが、ファイルを指定する画面になるので、上記のSample.bvhを指定して右下のOpenを押してください。

・IPアドレスとポート番号の設定
次にUnityに骨格データを伝える場所を指定します。
ここではIPとポート番号を指定します。ポート番号は先程Unityで確認したように12351です。(12351以外に変更した場合はその数値を入力)
IPについては細かい説明は省略しますが、ローカルのIPアドレスを指定します。ではこのローカルIPアドレスはどこを見れば分かるかですが、WindowsのタスクバーからWi-Fiの設定画面を見ると、このようなウィンドウが出現します。そして、接続中のWi-Fi名の右にiを丸で囲んだアイコンがあります。これをクリックしてください。

すると、Windowsの設定ウィンドウが開き、接続中のWi-Fiについての説明が表示されます。この画面の下まで行くと、ipconfigのケースと同様にIPv4アドレスという項目があります。
ここの192.168.○○.○○の文字列をコピペして、BVH SenderBVH SenderのIPの欄に入力しましょう。

8.BVH SenderとUnityを連携させる

ここまで出来たら、動かす準備が完了です。まずは4.の手順で準備したUnityのサンプルシーンを実行しましょう(画面中央上の再生マークをクリック)
※ここではまだ何も起きません。
次に、BVH Senderのポート番号の下にあるStartボタンを押してみましょう。すると、Unityの画面に映る人形とBVH Senderに映る人形が同じ動作でアニメーションします。こうなったら成功ですので、Unityは実行停止・BVH SenderはStopして構いません。

※BVH Senderを起動してからUnityを実行すると、モーションの反映まで時間がかかるか、最悪の場合動きません。Unity→BVH Senderの順で実行・再生してください。

PCとスマートフォンの連携

ここまででPC側は準備が完了したので、いよいよ実際のモーションをスマートフォンを使って送信・連携していきましょう。説明はmocopiのセンサーを体に取り付け、スマートフォンアプリを起動した状態からスタートします。

1.モーションの送信設定に切り替える

mocopiのスマートフォンアプリの起動時はスマートフォン本体にモーションを映像として録画するモードになっていますが、これを映像としてではなく骨格データとして記録し、かつPCに送信するモードに変更します。変更点は二点です。

  • タブをモーションに切り替える(下画像①箇所をタップ)

  • 送信モードに切り替える(下画像②箇所をタップ)

2.PCとの接続設定

上画像③のアイコンをタップし、PC接続設定を選択するとBVH Senderと同様にIPアドレスとポート番号を入力する画面が現れます。ここの入力内容もBVH Senderと同じものを入力します。
一点だけBVH Senderと異なり、送信フォーマットという項目がありますが、ここは初期値のまま“mocopi(UDP)”を選択してください。

3.スマートフォンアプリとUnityを連動させる

これでスマートフォンアプリ側の準備も整いました。
1.で設定を行った画面に戻ります。それからPC側でUnityのシーンを実行します。この状態でスマートフォンアプリの画面下の緑色のボタンを押すとカウントダウンの後にPC側にモーションの送信が開始されます。

ここでスマートフォン画面に表示されているモーションがPC画面にも表示されていれば成功です!
ですが、ここでもまだ動かない場合があります。ただ、BVH Senderで問題なく動いていた場合、ここでの原因はおおよそ限られています。その原因はファイアウォールまたはセキュリティソフトが外部の端末からのデータ送信をブロックしてしまっているためです。
ここは皆さんの使用しているPCの環境や設定によって違うので、全部を解説するといことはできないのですが、“ポート開放 やり方”であったり、“(セキュリティソフト名) ファイアウォール 除外”で出てくる内容だと思うので、もしこの場面で動かなくなったら検索して対応してもらえればと思います。

独自のUnityシーンでアバターを動かしたい場合

ここまで出来たら、サンプルシーンではなく独自で制作したシーンを使ってアバターを動かしたいと考えるかと思います。
その場合、シーン内に
① Mocopi Simple Receiverのスクリプトがアタッチされたオブジェクト
② Mocopi Avatorスクリプトをアタッチし、Humanoidが設定されたキャラクターのモデル

が必要です。①はMocopiReceiver > Resources > Prefabに入っているので、それをシーンにD&Dしてください。
②については、まずMocopi AvatorスクリプトはMocopiReceiver > Runtimeの中にあります。そしてキャラクターモデルについてですが、黒い人形を使う場合はMocopiReceiver > Samples > ReceiverSample > Modelsの中にあります。
これをもしオリジナルのモデルで行う場合、独自でキャラクターモデルを用意する必要があります。このモデルの作成方法はUnity向けのキャラクター制作方法と同じなので、ネット上のリファレンスを参考にしながら作成してください。
①と②を用意したら、①のMocopiSimpleReceiverのAvatarSettingsの要素内にMocopiAvatorをセットできる欄があります。ここに②をD&Dすると、キャラクターにモーションが紐付けられて動くようになります。

その他

センサーの取得を終了してアプリを閉じる時

ひと通り試し終わったり、必要なモーションをキャプチャしたりして終わった時に、センサーを外してアプリをバックグラウンドに送っただけだとセンサーはまだスマートフォンと連携をし続けたままの状態になります。
この状態だと、無駄に電池を食い続ける状態となるため、次回起動時に電源が切れていて使えない、といった状態になります。
モーションの収録終了時には前述の「PCとスマートフォンの連携」PCとスマートフォンの連携の手順2.で、メニューを押した際に現れる項目の中から「スタートメニューに戻る」→「停止する」を選んでください。
そうすると緑色の発光をしていたセンサーが青色の発光に変わり、一定時間後に発光が消えてセンサーが停止します。
このように、センサーは自動的には停止せず、スマートフォン側から停止を指示しない限りは動き続けてしまうので、必ずこの停止をしてから終了するようにしましょう。

終わりに

今回は「mocopiをUnityで動かすまで」をご紹介しました。
mocopiを持っていて、まだUnityで動かせていないという人向けの内容でしたので、ここではそう多くの人が興味を持って見る内容ではなかったかもしれませんが、これでみなさんもmocopiを使えるようになったはずです。

次の後編では「mocopiを動かしたら分かったこと&作例集」お伝えしたいと思います。そこではmocopiを持っていようが、持っていまいが、読み進められる内容にしますので、後編もお付き合いいただければと思います。
以上、デザイニウム秋山がお送りしました。またお会いしましょう~。

編集後記

こんにちは!広報のマリコ(@marikocco)です。今回は普段からUnityをつかっているCGクリエイターならではの目線でmocopi x Unityの解説でしたが、いかがでしたか?今までなかったお手頃価格のデバイスということで、発売時からとても話題になっていたので、気になっていた方や実際にお持ちの方も多いのではないでしょうか?(xRKaigiのブースでも大人気でした!)今は公式サイトで1-2週間程度で手に入るようです(3/10現在)
個人的には、カラフルでカワイイデザインで手軽に試せそうな雰囲気もポイントが高いです😍後半の記事では、応用編としてさらに詳しい検証結果もあるのでお楽しみに❗

The Designium
Official website
Twitter (フォローお待ちしてます✨)
Facebook
Youtube




この記事が気に入ったらサポートをしてみませんか?