A Motion használata

Ennek az adatszolgáltatónak a használhatja a Motion Controllert.

A Motion Data Provider lehetővé teszi a VR-hoz használható kézkövetést, és hasznos lehet gyors prototípus-készítéshez a szerkesztőben. Az adatszolgáltató konfigurálható úgy, hogy egy headsethez csatlakoztatott Motion Controllert használjon, vagy egy asztali arccal felfelé helyezve.

LeapMotionIntroGif

Ez a szolgáltató a szerkesztőben és az eszközön is használható az önálló platformon. Az UWP-platformon szerkesztőben is használható, UWP-buildben azonban NEM.

MRTK-verzió A Motion Unity-modulok támogatott verziói
2.6.x 4.5.0, 4.5.1
2.7.x 4.5.0, 4.5.1, 4.6.0, 4.7.0, 4.7.1, 4.8.0

A Motion Motion (by Ultraleap) kézkövetés használata az MRTK-ban

  1. AZ MRTK és a Motion Motion Unity-modulok importálása

    • Telepítse a legfrissebb Motion SDK-t, ha még nincs telepítve
    • Importálja a Microsoft.MixedReality.Toolkit.Foundation csomagot a Unity-projektbe.
    • Töltse le és importálja a Motion Unity-modulok legújabb verzióját a projektbe
      • Csak a Unity-modulokon belül importálja a Core-csomagot
  2. A Leap Motion Unity-modulok integrálása az MRTK-val

    • Miután a Unity-modulok a projektben vannak, lépjen a Mixed RealityToolkit Leap MotionIntegrate Leap Motion Unity-modulokhoz

    Megjegyzés

    A Unity-modulok AZ MRTK-be való integrálása 10 szerelvénydefiníciót ad hozzá a projekthez, és hivatkozásokat ad hozzá a Microsoft.MixedReality.Toolkit.Providers.LeapMotion szerelvénydefinícióhoz. Győződjön meg arról, Visual Studio be van zárva.

    LeapMotionIntegration

  3. A Motion Data Provider hozzáadása

    • Új Unity-jelenet létrehozása
    • Adja hozzá az MRTK-t a jelenethez a Mixed Reality ToolkitAdd to Scene and Configure (Eszközkészlet hozzáadása a jelenethez és konfigurálás) elemhez
    • Válassza ki a MixedRealityToolkit játékobjektumot a hierarchiában, majd válassza a Másolás és testreszabás lehetőséget az alapértelmezett vegyes valóságú profil klónozásához.

    LeapMotionProfileClone

    • Válassza ki a bemeneti konfigurációs profilt

    1. bemeneti konfigurációs profil

    • A módosítás engedélyezéséhez válassza a Klónozás lehetőséget a bemeneti rendszerprofilban.

    LeapMotionInputProfileClone

    • Nyissa meg a Bemeneti adatszolgáltatók szakaszt, válassza a lap tetején található Adatszolgáltató hozzáadása lehetőséget. A lista végén egy új adatszolgáltató lesz hozzáadva. Nyissa meg az új adatszolgáltatót, és állítsa a Típusta Következőre: Microsoft.MixedReality.Toolkit.LeapMotion.Input LeapMotionDeviceManager

    Leap Add-adatszolgáltató

    • Válassza a Klónozás lehetőséget az alapértelmezett Motion-beállítások módosításához.

    LeapDataProviderPreClone

    • A Leap Motion Data Provider tartalmazza a LeapControllerOrientation tulajdonságot, amely a Motion Motion Controller helye. LeapControllerOrientation.Headset A azt jelzi, hogy a vezérlő egy headsethez van csatlakoztatva. LeapControllerOrientation.Desk Azt jelzi, hogy a vezérlő az asztalra van helyezve. Az alapértelmezett érték a következő: LeapControllerOrientation.Headset .

    • Minden vezérlő tájolása tartalmaz eltolási tulajdonságokat:

      • A headset tájolásának eltolási tulajdonságai tükrözik a LeapXRServiceProvider összetevő eltolási tulajdonságait. A LeapVRDeviceOffsetMode három lehetőséggel rendelkezik: Alapértelmezett, Manuális fejeltolás és Átalakítás. Ha az eltolási mód Alapértelmezett, akkor a rendszer nem alkalmaz eltolást a Motion Controllerre. A Manuális eltolási mód három tulajdonság módosítását teszi lehetővé: LeapVRDeviceOffsetY , LeapVRDeviceOffsetZ és LeapVRDeviceTiltX . A tengelyeltolás tulajdonságértékei ezután alkalmazva vannak az alapértelmezett vezérlőelhelyezésre. Az Átalakítás eltolási módja tartalmazza a Transform tulajdonságot, amely egy új forrást LeapVRDeviceOrigin ad meg a Leap Motion Controller számára.

      • Az Asztali tájolás tartalmazza azt a tulajdonságot, amely meghatározza az asztali ugró kéz rögzített pozícióját. Az eltolás a fő kamera pozíciója alapján van kiszámítva, és az alapértelmezett érték (0,-0,2, 0,35), hogy a kéz megjelenik-e a kamera előtt és előtt.

        Megjegyzés

        A profil eltolási tulajdonságai az alkalmazás indításakor egyszer vannak alkalmazva. Az értékek futásidőben való módosításához szerezze be a Motion Motion Szolgáltatót a Eszközkezelő:

        LeapMotionDeviceManager leapMotionDeviceManager = CoreServices.GetInputSystemDataProvider<LeapMotionDeviceManager>();
        LeapXRServiceProvider leapXRServiceProvider = leapMotionDeviceManager.LeapMotionServiceProvider as LeapXRServiceProvider; 
        
    • EnterPinchDistance A ExitPinchDistance és a a csippentés/légi koppintás kézmozdulat-észlelés távolsági küszöbértékei. A csippentés kézmozdulatot az index-ujjlenyomat csúcsa és a ujjlenyomat-tipp távolságának mérésével számítjuk ki. Ha egy bemeneti eseményt le kell állítania, az alapértelmezett EnterPinchDistance érték 0,02. A bemeneti esemény (a csippentésből való kilépés) esetén az indexelőalja és a ujjlenyomat-tipp közötti alapértelmezett távolság 0,05.

    LeapControllerOrientation: Headset (alapértelmezett) LeapControllerOrientation: Desk
    LeapHeadsetGif LeapDeskGif
    LeapHeadsetInspector LeapDeskInspector
  4. A Motion Data Provider tesztelése

    • Miután a Motion Data Provider hozzá lett adva a bemeneti rendszerprofilhoz, nyomja le a Play billentyűt, mozgassa a kézzel a Motion Controller előtt, és a kéz közös ábrázolása látható.
  5. A projekt létrehozása

    • Lépjen a Fájl build Gépház
    • A Motion Data Provider használata esetén csak az önálló buildek támogatottak.
    • A különálló buildek Windows Mixed Reality használatának utasításaiért lásd: BUILDING and deploying MRTK to WMR Headsets (Standalone) (MRTKkiépítése és üzembe helyezése WMR-headsetek (önálló) ).

Kéz megrekedés

A Leap Motion Data Provider használatának első lépései azonosak az MRTK articulated Hand közös lekérésének lépéseivel. További információ: Kézkövetés.

Ha az MRTK egy Unity-jelenetben van, és a Motion Motion Data Provider hozzá van adva bemeneti adatszolgáltatóként az Input System-profilhoz, hozzon létre egy üres játékobjektumot, és csatolja a következő példaszkprogramot.

Ez a szkript egy egyszerű példa arra, hogyan lehet lekérni a motion hand-beli együttes test testesületét. A sphere a bal oldali Ugró kéz után, míg a kocka a jobb Oldali Ugró kéz után áll.

using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Input;
using Microsoft.MixedReality.Toolkit.Utilities;
using System.Collections.Generic;
using UnityEngine;

public class LeapHandJoints : MonoBehaviour, IMixedRealityHandJointHandler
{
    private GameObject leftHandSphere;
    private GameObject rightHandCube;

    private void Start()
    {
        // Register the HandJointHandler as a global listener
        CoreServices.InputSystem.RegisterHandler<IMixedRealityHandJointHandler>(this);

        // Create a sphere to follow the left hand palm position
        leftHandSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        leftHandSphere.transform.localScale = Vector3.one * 0.03f;

        // Create a cube to follow the right hand palm position
        rightHandCube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        rightHandCube.transform.localScale = Vector3.one * 0.03f;
    }

    public void OnHandJointsUpdated(InputEventData<IDictionary<TrackedHandJoint, MixedRealityPose>> eventData)
    {
        if (eventData.Handedness == Handedness.Left)
        {
            Vector3 leftHandPalmPosition = eventData.InputData[TrackedHandJoint.Palm].Position;
            leftHandSphere.transform.position = leftHandPalmPosition;
        }

        if (eventData.Handedness == Handedness.Right)
        {
            Vector3 rightHandPalmPosition = eventData.InputData[TrackedHandJoint.Palm].Position;
            rightHandCube.transform.position = rightHandPalmPosition;
        }
    }

Unity-szerkesztő munkafolyamat tippje

A Motion Data Provider használata nem igényel VR-headsetet. Az MRTK-alkalmazások módosításait tesztelheti a szerkesztőben a Leap kézzel, headset nélkül.

A Leap Motion Hands ugrik fel a szerkesztőben, anélkül, hogy be lenne csatlakoztatva egy VR-headset. Ha a LeapControllerOrientation beállítása LeapControllerOrientationakkor a Motion Motion vezérlőt az egyik kézzel kell tartania úgy, hogy a kamera előre ugrik.

Megjegyzés

Ha a fényképezőgépet WASD-kulcsokkal mozgatja a szerkesztőben, és a headsetet használja, a kéz nem fogja követni LeapControllerOrientation a kamerát. LeapControllerOrientation A kéz csak akkor követi a kamera mozgását, ha egy VR-headset be van csatlakoztatva, amíg a headset be van LeapControllerOrientationLeapControllerOrientation A Leap-kéz a szerkesztőben követi a kamera mozgását, ha a Desk LeapControllerOrientation (Asztal) van LeapControllerOrientation

A ugrómozgás eltávolítása a Project

  1. Navigáljon a Mixed RealityToolkit Leap MotionSeparate Leap Motion Unity-moduljaihoz
    • Ebben a lépésben a Unity frissíthető hivatkozásként a Microsoft.MixedReality.Toolkit.Providers.LeapMotion.asmdef fájlban
  2. A Unity bezárása
  3. Zárja Visual Studio, ha meg van nyitva
  4. Nyissa Fájlkezelő, és keresse meg az MRTK Unity-projekt gyökerét
    • A UnityProjectName/Library könyvtár törlése
    • A UnityProjectName/Assets/Plugins/LeapMotion könyvtár törlése
    • Törölje a UnityProjectName/Assets/Plugins/LeapMotion.meta fájlt
  5. Unity újbóli megnyitása

A Unity 2018.4-ben észreveheti, hogy a hibák a kódtár és a Motion Core-eszközök törlése után is megmaradnak a konzolon. Ha a rendszer újból naplózza a hibákat az újbóli megnyitás után, indítsa újra a Unityt.

Gyakori hibák

A Motion nincs integrálva az MRTK-val

Annak tesztelése, hogy a Leap Motion Unity-modulok integrálva vannak-e az MRTK-val:

  • Navigáljon Mixed Reality Eszközkészlet > segédprogramjainak > ugrómozgás-ellenőrző integrációs állapota lapra
    • Ez megjelenít egy előugró ablakot, amely azt jelzi, hogy a Motion Unity-modulok integrálva vannak-e az MRTK-val.
  • Ha az üzenet szerint az eszközök nem integrálva vannak:
    • Győződjön meg arról, hogy a Leap Motion Unity-modulok a projektben vannak
    • Győződjön meg arról, hogy a hozzáadott verzió támogatott. A támogatott verziókat a lap tetején található táblázat tartalmazza.
    • Próbálja Mixed Reality Toolkit Utilities > Leap Motion Integrate Leap Motion > Unity-moduljait

A több résztvevős HLAPI-szerelvény másolása sikertelen volt

A Leap Motion Unity Core-adategység importálja ezt a hibát naplózhatja:

Copying assembly from 'Temp/com.unity.multiplayer-hlapi.Runtime.dll' to 'Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll' failed

Megoldás

Leap Motion Example Scene

A példajelenet a DefaultLeapMotionConfiguration profilt használja, és megállapítja, hogy a Unity-projekt megfelelően lett-e konfigurálva a Motion Data Provider használatára.

A példa jelenet az MRTK/Examples/Demos/HandTracking/ könyvtár Microsoft.MixedReality.Toolkit.Examples csomagját tartalmazza.

Lásd még