Elastisch systeem — MRTK2

Elastisch systeem

MRTK wordt geleverd met een elastisch simulatiesysteem met een grote verscheidenheid aan uitbreidbare en flexibele subklassen, dat bindingen biedt voor 4-dimensionaleriëntatieveren, 3-dimensionale volumeveren en eenvoudige lineaire veersystemen.

Op dit moment kunnen de volgende MRTK-onderdelen die de elastics manager ondersteunen gebruikmaken van elastics-functionaliteit:

Elastics Manager

Elastisch systeem2

De elastische beheerprocessen die zijn doorgegeven, worden getransformeerd en ingevoerd in het elastics-systeem.

Het inschakelen van elasticiteit voor aangepaste onderdelen kan in twee stappen worden uitgevoerd:

  1. Het aanroepen van de methode Initialize bij manipulatie start, waarbij het systeem wordt bijgewerkt met de huidige hosttransformatie.
  2. Query's uitvoeren op ApplyHostTransform wanneer een elastische berekening moet worden uitgevoerd op de bijgewerkte doeltransformatie.

Houd er rekening mee dat elastische gegevens blijven simuleren zodra de manipulatie is beëindigd (via de updatelus van Elastics Manager). Als u het gedrag wilt blokkeren, kan het automatisch bijwerken van Elastics EnableElasticsUpdate worden ingesteld op false.

Als het onderdeel Elastics Manager wordt toegevoegd aan een gameobject, zijn standaard geen elastische onderdelen ingeschakeld voor transformatietypen. Het veld Manipulation types using elastic feedback moet worden ingeschakeld voor specifieke transformatietypen om elastische configuraties en gebieden voor het geselecteerde type te maken.

Configuraties voor elastische gegevens

Net als bij configuraties voor het beheren van grenzen, wordt elastisch beheer geleverd met een set configuratieobjecten die kunnen worden opgeslagen als scriptbare objecten en kunnen worden gedeeld tussen verschillende exemplaren of prefabs. Configuraties kunnen worden gedeeld en gekoppeld als afzonderlijke scriptbare assetbestanden of geneste scriptbare assets binnen prefabs. Verdere configuraties kunnen ook rechtstreeks op het exemplaar worden gedefinieerd zonder koppeling naar een externe of geneste scriptbare asset.

De controle voor Elastics Manager geeft aan of een configuratie wordt gedeeld of inlined als onderdeel van het huidige exemplaar door een bericht weer te geven in de eigenschappencontrole. Bovendien kunnen gedeelde exemplaren niet rechtstreeks in het eigenschappenvenster van Elastics Manager worden bewerkt, maar in plaats daarvan moet de asset waarnaar deze is gekoppeld, rechtstreeks worden aangepast om onbedoelde wijzigingen in gedeelde configuraties te voorkomen.

Elastics Manager biedt configuratieobjectopties voor de volgende transformatietypen, die elk worden vertegenwoordigd door een elastisch configuratieobject:

  • Vertaalelastiek
  • Draaielastiek
  • Elastisch schalen

Elastisch configuratieobject

Een elastische configuratie definieert eigenschappen voor een gedempt harmonisch oscillator differentieelsysteem. De volgende eigenschappen kunnen worden aangepast, maar worden al geleverd met een set standaardwaarden in MRTK:

  • Massa: massa van het gesimuleerde oscillatorelement.
  • HandK: handveerconstante.
  • EndK: eindkapveerconstante.
  • SnapK: drukpuntveerconstante.
  • Drag: drag/demperfactor, proportioneel aan snelheid.

Elastische gebieden

De instellingen voor elastische gebieden variëren, afhankelijk van het type manipulatie. Vertaling en schaal worden vertegenwoordigd door volume elastische gebieden en rotatie wordt vertegenwoordigd door een decimalnion elastisch gebied.

Elastische omvang van volume

Volume-gebieden definiëren een driedimensionale ruimte waarin de gedempte harmonische oscillator vrij kan bewegen.

Elastische volume stretch bounds

  • StretchBounds: vertegenwoordigt de ondergrenzen van de elastische ruimte.
  • UseBounds: of de stretch-grenzen moeten worden gerespecteerd door het systeem. Indien waar, wanneer de huidige iteratie van de doelpositie zich buiten de stretch-grenzen bevindt, wordt de eindkracht toegepast.
  • SnapPoints: punten binnen de ruimte waarop het systeem wordt vastgemaakt.
  • RepeatSnapPoints: herhaalt de uitlijningspunten tot oneindig. Bestaande uitlijnpunten fungeren als een modulo waarbij de werkelijke uitlijningspunten worden toegewezen aan de dichtstbijzijnde gehele veelvouden van elk uitlijnpunt.
  • SnapRadius: afstand waarop de drukpunten beginnen met het forceren van de veer.

Raster voor elastische volume-uitlijning

De elastische omvang van Denion van Quaternion

De gebiedsdelen van Denion definiëren een vierdimensionale draairuimte waarin de gedempte harmonische oscillator vrij kan draaien.

Voorbeeld van elastische rotatie

  • SnapPoints: eulerhoeken waarop het systeem wordt uitgelijnd.
  • RepeatSnapPoints: herhaalt de uitlijningspunten. Bestaande uitlijnpunten fungeren als een modulo waarbij de werkelijke uitlijningspunten worden toegewezen aan de dichtstbijzijnde gehele veelvouden van elk uitlijnpunt.
  • SnapRadius: booghoek waarmee de veer in eulergraden wordt geforceerd.

Voorbeeldscène voor elastische gegevens

U vindt voorbeelden van elastische configuraties in de ElasticSystemExample scène.

Voorbeeldscène voor elastische gegevens