Share via


Inspelning av indataanimering – MRTK2

MRTK har ett inspelningssystem där huvudflytt och handspårningsdata kan lagras i animeringsfiler. Inspelade data kan sedan spelas upp med hjälp av indatasimuleringssystemet.

Inspelning av indata är ett användbart verktyg i olika situationer:

  • Skapa automatiserade tester för interaktion, manipuleringar, lösare osv. Det kan vara tidskrävande att skapa förflyttning av kontrollanter och händer för dessa tester. Inspelning av indata direkt kan påskynda processen och tillhandahålla verkliga data.
  • Lär ut användningen av UX-element via animeringar. Att visa användarna hur de interagerar med knappar och andra objekt kan jämna ut inlärningskurvan.
  • Felsöka oväntat beteende som kan uppstå vid regelbunden användning. Inspelningssystemet stöder ett "rullande buffert"-koncept som tillåter inspelning av senaste indata i bakgrunden. Se Inspelningstjänsten för indata.

Inspelnings- och uppspelningstjänster

Två indatasystemtjänster tillhandahålls för att registrera respektive spela upp indata.

Inspelningstjänst för indata

InputRecordingService tar data från huvudkameratransformering och aktiva handkontrollanter och lagrar dem i en intern buffert. När dessa data begärs serialiseras de sedan till binära filer för lagring och senare uppspelning.

Inspelningsdiagram

Om du vill börja spela in indata anropar du StartRecording funktionen. StopRecording pausar inspelningen (men tar inte bort de data som registrerats hittills, använd DiscardRecordedInput för att göra detta om det behövs).

Som standard är storleken på inspelningsbufferten begränsad till 30 sekunder. Detta gör att inspelningstjänsten kan fortsätta spela in i bakgrunden utan att samla in för mycket data och sedan spara de senaste 30 sekunderna när det behövs. Tidsintervallet kan ändras med hjälp av RecordingBufferTimeLimit egenskapen eller så kan inspelningen vara obegränsad med hjälp av UseBufferTimeLimit alternativet .

Data i inspelningsbufferten kan sparas i en binär fil med hjälp av funktionen SaveInputAnimation .

Mer information om det binära filformatet finns i Specifikation för filformat för indataanimering.

Indatauppspelningstjänst

InputPlaybackService läser en binär fil med indata för animering och tillämpar sedan dessa data via InputSimulationService för att återskapa de registrerade rörelserna.

uppspelning av uppspelningsdiagram för

Om du vill börja spela upp indataanimering bör den läsas in från en fil med hjälp av funktionen LoadInputAnimation .

Anropa Spela upp, Pausa eller Stoppa för att styra animeringsuppspelningen.

Den aktuella animeringstiden kan också styras direkt med egenskapen LocalTime .

Varning

Loopa eller återställa indataanimering eller inställning LocalTime direkt genom att rensa tidslinjen kan ge oväntade resultat när scenen manipuleras! Endast indatarörelserna registreras, eventuella ytterligare ändringar, till exempel rörliga objekt eller vända växlar, återställs inte. Se till att läsa in scenen igen om oåterkalleliga ändringar har gjorts.

Redigeringsverktyg för inspelning och uppspelning av indataanimering

Det finns ett antal verktyg i Unity-redigeraren för inspelning och undersökning av indataanimering. Dessa verktyg kan nås i fönstret verktyg för indatasimulering, som kan öppnas från menyn Mixed Reality Toolkit > Utilities > Input Simulering.

Anteckning

Inspelning och uppspelning av indata fungerar endast i uppspelningsläge.

Fönstret för indatainspelning har två lägen:

  • Inspelning för inspelning av indata under uppspelningsläget och spara den i animeringsfiler.

    När du ggggar på inspelningsknappen InputRecordingService är aktiverad för att spela in indata. När du kryper bort inspelningsknappen visas ett val av sparad fil och den inspelade indataanimeringen sparas till det valda målet.

    Buffertens tidsgräns kan också ändras i det här läget.

  • Uppspelning för att läsa in animeringsfiler och sedan återskapa indata via indatasimuleringssystemet.

    En animering måste läsas in i det här läget först. När du har spelat in indata i inspelningsläget läses den resulterande animeringen in automatiskt. Du kan också klicka på knappen "Läs in" för att välja en befintlig animeringsfil.

    Knapparna för tidskontroll från vänster till höger är:

    • Återställ uppspelningstiden till början av animeringen.
    • Spela upp animering kontinuerligt med tiden.
    • Steg framåt ett tidssteg.

    Skjutreglaget kan också användas för att rensa igenom tidslinjen för animering.

Varning

Loopa eller återställa indataanimering eller rensa tidslinjen kan ge oväntade resultat när scenen manipuleras! Endast indatarörelserna registreras, eventuella ytterligare ändringar, till exempel rörliga objekt eller vända växlar, återställs inte. Se till att läsa in scenen igen om oåterkalleliga ändringar har gjorts.