うにてぃブログ

UnityやUnreal Engineの記事を書いていきます

【Unity】MediaPipeUnityPlugin の設定とビルド手順

Mediapipe は、Google によって開発された OSS のコンピュータビジョンライブラリです。顔認識、手のトラッキング、ポーズ推定など、リアルタイムでビジュアルタスクを処理するための強力なツールを提供します。
この Mediapipe を Unity で利用するために、MediaPipeUnityPlugin という便利なライブラリが提供されています。このライブラリを使用することで、Mediapipe を Unity 環境に簡単に組み込むことができます。

MediapipeUnityPluginのインストール

まず、MediapipeUnityPlugin をインストールする必要があります。GitHubリリースページから、最新の unitypackage ファイルをダウンロードしてインポートします。
この記事作成時点では、MediaPipeUnity.0.16.0.unitypackage を使用しています。

インポート後、必要なライブラリがUnityプロジェクトに追加されます。これで、Mediapipe を Unity プロジェクトで使用する準備が整いました。

サンプルの確認

インポートが完了したら、サンプルを試してみましょう。
サンプルは、Assets/MediaPipeUnity/Samples/Scenes に含まれており、様々な機能を実際に動作させて確認することができます。

  • Object Detection(物体検出)
  • Image Segmentation(画像セグメンテーション)
  • Hand Landmark Detection(手のランドマーク検出)
  • Face Detection(顔検出)
  • Face Landmark Detection(顔のランドマーク検出)
  • Pose Landmark Detection(ポーズランドマーク検出)

ビルドの際の問題と解決方法

サンプルをインポートした後、そのままビルドを行うと、再生しても何も表示されません。

ログを見てみると以下のログが表示されています

LocalResourceManager is only supported on UnityEditor.To avoid this error, consider switching to the StreamingAssetsResourceManager and copying the required resources under StreamingAssets, for example.

このログは、Mediapipe がリソースを読み込むための設定がローカルリソースに依存していることが原因です。これを解決するためには、設定を変更してリソースを StreamingAssets に移動する必要があります。

AssetLoaderTypeの変更

Assets/MediaPipeUnity/Samples/Scenes/AppSettings.asset の AssetLoaderType を StreamingAssets に変更します

必要なリソースをStreamingAssetsに移動

次に、MediaPipeUnityPlugin-all-stripped.zipをダウンロードし、Assets/StreamingAssets をプロジェクトに移動します。

これで、ビルド後に Mediapipe が正しく動作するようになります。