なんかいろいろしてみます

Dec 18, 2018 - 1 minute read - Dlib

隣にVTuber(HoloLens連携編)

隣にVTuber(VTuber認識編)で送信しているUDP通信をHoloLensで受信できるようにします.

動作環境

  • Windows10
    • Visual Studio 2017
    • Unity 2017.4.16f1
  • HoloLens RS4

プロジェクト

  • 以下のリポジトリのReceiveLandmarkプロジェクトがUnityプロジェクトになります.

https://github.com/akihiro0105/VTuberLandmarkWithDlibAndHoloLens

  • データはUDPのjson形式で送信されるので,HoloLensModuleUDPListenerManagerで受信処理を行っています.
 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940
    private UDPListenerManager udpListener;
    // Use this for initialization
    void Start ()
	{
        StartCoroutine(receiveUDP());
	}

    private IEnumerator receiveUDP()
    {
        var json = new JsonMessage();
        var eye = new Vector2(0, 0);
        var mouse = new Vector2(0, 0);
        udpListener = new UDPListenerManager(8080);
        udpListener.ListenerMessageEvent += (ms, address) =>
        {
            if (address!=SystemInfomation.IPAddress)
            {
                json = JsonUtility.FromJson<JsonMessage>(ms);
            }
        };
        while (true)
        {
            eye = Vector2.Lerp(eye, new Vector2(json.eye, 0), 0.5f);
            mouse = Vector2.Lerp(mouse, new Vector2(json.mouse, 0), 0.5f);
            proxy.text = "Eye : " + eye.x + " Mouse : " + mouse.x;
            yield return null;
        }
    }

    void OnDestroy()
    {
        udpListener.DisConnectListener();
    }

    [Serializable]
    public class JsonMessage
    {
        public float eye;
        public float mouse;
    }

まとめ

  • 基本システムはPC側の認識部分なのでHoloLens側はシンプル
  • Meetupでは表情認識の対象動画を限定したりVRMモデルやFinalIKとかを使ってるので次で詳細点をまとめていきます.