NtKinectDLL and NtUnity: Tutorial

Kinect V2 のリアルタイム動画像を Unity でテクスチャとして利用する


2017.08.24: created by
Japanese English
目次へ

前提として理解しておくべき知識


Kinect V2 のリアルタイム動画像を Unity でテクスチャとして利用する

  1. UnityでNtKinectDLLを使う (基本設定)」で作成した Unityのプロジェクトを使います。UnityDLL01.zip をダウンロードして展開して下さい。 さらに、展開したフォルダの名前を UnityDLL03/ と変更して下さい。
  2. 新しいシーンを作成して、Assets/Scenes/ に Sample03.unity という名前で保存します。
  3. File -> New Scene
    
    File -> Save Scene as ... -> Sample03.unity
    
  4. ProjectのAssets/Scripts/の下に C# のスクリプトを生成します。
  5. 上部のメニューから「Assets」-> 「Create」 -> 「C# Script」 -> ファイル名は Sample03

    Sample03.cs
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Sample03 : MonoBehaviour {
      public GameObject target;
      NtUnity.Kinect nt;
      Texture2D texture;
      
      void Start () {
        nt = new NtUnity.Kinect();
        texture = new Texture2D(NtUnity.Kinect.rgbCols,
    			    NtUnity.Kinect.rgbRows,
    			    TextureFormat.RGBA32,false);
      }
      void Update () {
        nt.setRGB();
        texture.SetPixels32(nt.rgbImage);
        texture.Apply();
        target.GetComponent<Renderer>().material.mainTexture = texture;
        // rotate cube
        target.transform.rotation = Quaternion.AngleAxis(Mathf.Rad2Deg * Time.time,
    						     Vector3.up);
      }
      void OnApplicationQuit() {
        nt.stopKinect();
      }
    }
    
    
  6. Cube を新しく生成して Hierarchy に配置します。 HierarchyでそのCubeが選択された状態で、Inspectorウィンドウで Transform のSettings から Reset を選んで Position や Rotation を初期状態にして下さい。
  7. 上のメニューから -> GameObject -> 3D Object -> Cube
    






  8. 空のオプジェクトをHierarchy に配置して、名前を GameController に変更します。
  9. 上のメニューから -> GameObject -> Create Empty
    






  10. ProjectウィンドウのAssets/Scripts/Sample03.cs をHierarchyの GameController のComponentとして付加します。



  11. Hierarchy ウィンドウで GameController を選択すると Inspector ウィンドウに "Sample 03 (Scripts)" コンポーネントが表示されます。 その "Target" に Hierarchy の Cube を設定します。



  12. Hierarchy で Main Camera を選択して Transform の Position を (x,y,z)=(0,0,-1.5) に変更します。
  13. 実行すると、Kinect V2 が撮影した動画像が Cube のテクスチャとして表示されます。
  14. Cubeは 約6.3秒 (2π秒)でy軸回りに一周します。

    Runtime Video UnityDLL02.mp4



  15. Unity のサンプルプロジェクトはこちら UnityDLL03.zip


http://nw.tsuda.ac.jp/