LoginSignup
0
0

Azure Kinectを使ってUnityでBodyTrackingする

Last updated at Posted at 2024-04-18

Azure Kinectを使ってBodyトラッキングし、Unity上のCubeを右手と左手で操作するところまでいきます。
kinect.gif

前提

  • Windows10
  • Unity2021.2.4f1 / Unity2022.3.0

手順

1. 環境のセットアップ

  1. Azure Kinect DK を設定する
  2. Body Tracking SDK を設定する

2. Unity

2.1 必要なファイルのダウンロード

  1. Sample Unity Body Tracking Application@Azure Kinect Samplesにアクセスして以下3つのファイルをダウンロードする
    1. MoveLibraryFiles.bat
    2. app.config
    3. packages.config

2.2 設定

  1. プロジェクト作成
  2. Assetsフォルダと同じところに前準備でダウンロードしたファイルを配置
  3. Riderでソリューションを開いて、NuGetのリストアを実施。やり方はこちら
  4. コマンドプロントからMoveLibraryFiles.batを実行

2.3 動作確認

  1. 4つのスクリプトをダウンロードします。
    1. Azure-Kinect-Samples
      1. Body.cs
      2. Constants.cs
      3. CustomColors.cs
    2. AzureKinectTester.cs
      1. 上記3つはMSのリポジトリのものですが、こちらは上記リポジトリに合ったものを動作確認用に簡略化したものです。
  2. テストシーンを作成します。
    1. AzureKinectTesterを作成
      2024-04-18_16h33_27.png
    2. その配下にCubeを配置して、右手と左手を作ります。
      2024-04-18_16h34_01.png
  3. UnityEditorから実行すると、BodyTrackingが正常に動作していれば、Kinectに手を振れば、Unity上の右手と左手も動くはずです。
    2024-04-18_16h35_26.png

エラー対応

Lightweight.dllが重複しています

エラー

error CS1703: Multiple assemblies with equivalent identity have been imported: 'C:\path\Assets\Plugins\System.Reflection.Emit.Lightweight.dll' and 'C:\Program Files\Unity\Hub\Editor\Version\Editor\Data\NetStandard\compat\2.1.0\shims\netstandard\System.Reflection.Emit.Lightweight.dll'. Remove one of the duplicate references.

対応方法

Pluginsのほうを削除して解消。

Kinectが起動できない

エラー

AzureKinectBodyTrackingCreateException: result = K4A_RESULT_FAILED

対応方法

TrackerConfiguration.DefaultだとGPUを利用するが、環境によってはCUDAが使えないのでエラーになる。CPUを利用する設定にすることで解消。

        var tra = new TrackerConfiguration()
        {
            ProcessingMode = TrackerProcessingMode.Cpu,
            SensorOrientation = SensorOrientation.Default
        };

System.Memory が二カ所にあります

エラー

Assets\Scripts\AzureKinect\SkeletalTrackingProvider.cs(89,50): error CS0433: The type 'MemoryMarshal' exists in both 'System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'

対応法

Pluginsのほうを削除して解消。

備考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0