Elastiskt system – MRTK2
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
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:
- Anrop till metoden Initialize on manipulation start (Initiera vid manipulering) startar och uppdaterar systemet med den aktuella värdtransformeringen.
- 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.
- 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.
Elastisk omfattning för quaternion
Quaternion-utrymmen definierar ett fyrdimensionellt rotationsutrymme där den dämpade harmoniska oscillatorn är fri att rotera.
- 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
.