🐮
【サンプル動作確認】MediaPipeによるAndroidスマホでのハンドトラッキング【Unity】
この記事のゴール
- サンプルプロジェクトをビルドしたアプリを起動して、カメラ映像からハンドトラッキングを実行する
環境および環境構築
- Windows 10 Pro
- 用意してもらっているAndroid用Pluginを使用するだけならHomeでもいいと思います(未確認)
- Unity 2021.3.3f1
- リポジトリのREADMEに記載されているUnityバージョンを使用しました。
- Xperia 1iii(AndroidOSが搭載されたスマートフォン実機)
- Android 12
- Xperia 1 Ⅲ | Xperia公式サイト
手順
環境構築から実機での動作確認までの手順を記載します。
Unity インストール
-
下記のUnity公式ページよりUnity2021.3.3f1の必要なファイルをDLする
- Unity LTS Releases
- Unity Editor Windows(X86-64)
- Android Build Support
-
DLしたインストーラを使用してUnityをインストールする
-
UnityHubを起動し、インストールのタブをクリックし「リストに追加」からインストールしたUnityのバージョンを追加(Unity Hubに登録)する。
プロジェクトファイル ダウンロード
- リポジトリのリリースページより必要なファイルをDLする
- homuler/MediaPipeUnityPlugin/releases
- com.github.homuler.mediapipe-0.10.1.tgz
- Source code(zip) または Source code(tar.gz)
- DLした各ファイルを解凍する
プロジェクトファイル 準備
- 解凍したSource Code(フォルダ名:MediaPipeUnityPlugin-0.10.1)のPackages/com.github/homuler.mediapipe以下に、もう一方の解凍したcom.github.homuler.mediapipe-0.10.1.tgz(フォルダ名:package)のpackage以下のファイルをコピーする
- UnityHubにMediaPipeUnityPlugin-0.10.1を追加する
- プロジェクトを起動し、Assets/StreamingAssets以下にPackages/MediaPipe Unity Plugin/Runtime/Resources以下の28つのファイル(.bytes、.txt)をコピーする
実機確認
- PCと実機を接続しビルドする
- アプリが起動したら、実機画面右上のメニューをタップしHandTrackingを選択する
- カメラに手を写し、ハンドトラッキングの挙動を確認する
MediaPipeについて
- Googleの提供するOSSのMLソリューション
- ハンドトラッキング以外にもリアルタイムでいろんなことができる(下記参照)
- 今回使用したリポジトリはhomuler氏が提供している、UnityからMediaPipe API(C++)を呼び出すためにC#に移植することを目標としたプロジェクトおよびネイティブプラグイン
おわりに
最近、SONYからmocopiが発表されたこともあり、自分の中でスマホVRが熱く、スマホ+mocopi+スマホゴーグルでボディトラッキング&ハンドトラッキングを行い、トラッキングしたデータををスマホVR上のいろいろに反映できたら面白いかなと思っています。
Androidスマホで使用できる軽量なハンドトラッキングソリューションを探した結果、MediaPipe(MediaPipeUnityPlugin)に行き着きました。
VR界隈では、スマホVRはオワコンみたいな空気...というかそもそもVRやるならスタンドアロンVR(Quest2などの6DoFVRHMD)からスタートが一般的かと思いますが、そもそも「世間一般」では、スマホVRすら一度も経験していない人がメジャーで、VRを流行らせるならスマホVRからかと思っています。自分の中のモチベとしてそういうこともあって、この記事の内容を調べ投稿しました。
わかりにくいところは加筆修正+画像追加等していきます。
Discussion