Dela via


Elastiskt system – MRTK2

Elastiskt system

MRTK levereras med ett elastiskt simuleringssystem som innehåller en mängd olika utökningsbara och flexibla underklasser som erbjuder bindningar för 4-dimensionella quaternionfjädrar, 3-dimensionella volymfjädrar och enkla linjära fjädersystem.

För närvarande kan följande MRTK-komponenter som stöder Elastics Manager utnyttja elastiska funktioner:

Elastics Manager

Elastiskt system2

Elastics Manager-processerna överförde transformeringar och matar in dem i det elastiska systemet.

Du kan aktivera elastiska komponenter för anpassade komponenter med två steg:

  1. Anrop till metoden Initialize on manipulation start (Initiera vid manipulering) startar och uppdaterar systemet med den aktuella värdtransformeringen.
  2. Fråga ApplyHostTransform när en elastisk beräkning ska utföras på den uppdaterade måltransformeringen.

Observera att elastics fortsätter att simuleras när manipuleringen avslutas (via elastics manager-uppdateringsloopen). Om du vill blockera beteendet kan elastics auto update EnableElasticsUpdate anges till false.

Som standard har elastics manager-komponenten inte elastics aktiverat för någon transformeringstyp när den läggs till i ett spelobjekt. Fältet Manipulation types using elastic feedback måste aktiveras för specifika transformeringstyper för att skapa elastisk konfiguration och utrymme för den valda typen.

Elastiska konfigurationer

På samma sätt som gränskontrollkonfigurationer levereras Elastic Manager med en uppsättning konfigurationsobjekt som kan lagras som skriptbara objekt och delas mellan olika instanser eller prefabriceringar. Konfigurationer kan delas och länkas antingen som enskilda skriptbara tillgångsfiler eller kapslade skriptbara tillgångar i prefabs. Ytterligare konfigurationer kan också definieras direkt på instansen utan att länka till en extern eller kapslad skriptbar tillgång.

Elastics Manager-inspektören anger om en konfiguration delas eller infogas som en del av den aktuella instansen genom att visa ett meddelande i egenskapskontrollen. Dessutom kan delade instanser inte redigeras direkt i själva elastics manager-egenskapsfönstret, utan i stället måste tillgången som den länkar till vara direkt modfierad för att undvika oavsiktliga ändringar i delade konfigurationer.

Elastics Manager erbjuder alternativ för konfigurationsobjekt för följande transformeringstyper, som vart och ett representeras av ett elastiskt konfigurationsobjekt:

  • Elastisk översättning
  • Rotation elastisk
  • Skala elastiskt

Elastiskt konfigurationsobjekt

En elastisk konfiguration definierar egenskaper för ett dämpat harmoniskt oscillator differentiellt system. Följande egenskaper kan justeras men har redan en uppsättning standardvärden i MRTK:

  • Massa: massa för det simulerade oscillatorelementet.
  • HandK: handfjäderkonstant.
  • EndK: fjäderkonstant för ändlock.
  • SnapK: fjäderkonstant för fästpunkt.
  • Dra: drag/spjällfaktor, proportionell mot hastighet.

Elastiska utrymmen

Inställningarna för elastiska utrymmen varierar beroende på typen av manipulering. Översättning och skala representeras av elastiska volymomfång och rotation representeras av en elastisk quaternion-omfattning.

Elastisk volymvolym

Volymutrymmen definierar ett tredimensionellt utrymme där den dämpade harmoniska oscillatorn är fri att flytta.

Elastiska volymsträckar

  • StretchBounds: representerar de lägre gränserna för det elastiska utrymmet.
  • UseBounds: om stretchgränsen ska respekteras av systemet. Om det är sant tillämpas slutkraften när den aktuella iterationen för målpositionen ligger utanför stretchgränsen.
  • SnapPoints: pekar inom det utrymme som systemet fästs mot.
  • RepeatSnapPoints: upprepar fästpunkterna till oändligheten. Befintliga fästpunkter fungerar som en modulo där de faktiska fästpunkterna mappas till närmaste heltalsmultlar för varje snappunkt.
  • SnapRadius: avståndet där fästpunkter börjar tvinga våren.

Fäst rutnät för elastisk volym

Elastisk omfattning för quaternion

Quaternion-utrymmen definierar ett fyrdimensionellt rotationsutrymme där den dämpade harmoniska oscillatorn är fri att rotera.

Exempel på elastisk rotation

  • SnapPoints: eulervinklar som systemet fäster mot.
  • RepeatSnapPoints: upprepar fästpunkterna. Befintliga fästpunkter fungerar som en modulo där de faktiska fästpunkterna mappas till närmaste heltalsmultlar för varje snappunkt.
  • SnapRadius: båge-vinkel vid vilken fästpunkter börjar tvinga våren i euler grader.

Elastisk exempelscen

Du hittar exempel på elastiska konfigurationer i scenen ElasticSystemExample .

Elastisk exempelscen