Beperkingsbeheer — MRTK2

Met beperkingsbeheer kan een set beperkingsonderdelen worden toegepast op een transformatie. Onderdelen van het type TransformConstraint die aan het spelobject zijn gekoppeld, kunnen in aanmerking worden genomen. Standaard verzamelt beperkingsbeheer automatisch alle onderdelen van beperkingen die zijn gekoppeld aan het gameobject en past deze toe op verwerkte transformaties. Gebruikers kunnen er echter voor kiezen om de lijst met toegepaste beperkingen handmatig te configureren en alleen een subset van gekoppelde beperkingen toe te passen.

Momenteel ondersteunen de volgende MRTK UX-elementen beperkingsbeheer:

Eigenschappen en velden van de controle

Beperkingsbeheer kan in twee modi worden uitgevoerd:

  • Selectie van automatische beperking
  • Handmatige selectie van beperking

Selectie van automatische beperking

Automatische selectie

De standaardmodus van beperkingsbeheer, automatische selectie van beperkingen, biedt een lijst met alle gekoppelde beperkingsonderdelen en gaat naar knoppen en een knop Beperking toevoegen.

Beperking toevoegen aan gameobject

Met deze knop kan een beperkingsonderdeel rechtstreeks vanuit de controlecontrole voor beperkingsbeheer worden toegevoegd. Alle beperkingstypen in een project moeten hier zichtbaar zijn. Zie transformatiebeperkingen voor meer informatie.

Ga naar onderdeel

Alle beperkingen die voor het object worden gevonden, worden hier weergegeven met de knop Ga naar onderdeel . Met deze knop schuift de inspector naar het geselecteerde beperkingsonderdeel, zodat het kan worden geconfigureerd.

Handmatige selectie van beperking

Handmatige selectie

Als beperkingsbeheer is ingesteld op de handmatige modus, worden alleen beperkingen verwerkt die zijn gekoppeld in de lijst met beperkingen en toegepast op de transformatie. De lijst die wordt weergegeven, bevat alleen de door de gebruiker geselecteerde beperkingen en gaat naar knoppen of opties om vermeldingen te verwijderen of toe te voegen. Wanneer de handmatige modus voor de eerste keer wordt ingeschakeld, vult beperkingsbeheer de lijst met alle beschikbare onderdelen in als uitgangspunt voor het selecteren van gekoppelde beperkingsonderdelen.

Vermelding verwijderen

Hiermee verwijdert u de vermelding uit de handmatig geselecteerde lijst. Houd er rekening mee dat met deze optie het beperkingsonderdeel niet uit het gameobject wordt verwijderd. Onderdelen met beperkingen moeten altijd handmatig worden verwijderd om ervoor te zorgen dat andere onderdelen die naar dit onderdeel verwijzen, niet per ongeluk worden verbroken.

Vermelding toevoegen

Als u invoer toevoegt, wordt een vervolgkeuzelijst geopend met alle beschikbare onderdelen voor beperkingen die nog niet in de handmatige lijst staan. Door op een van de vermeldingen te klikken, wordt dat onderdeel toegevoegd aan de handmatige beperkingsselectie.

Nieuwe beperking toevoegen

Met deze optie wordt een onderdeel van het geselecteerde type toegevoegd aan het gameobject en wordt het zojuist gemaakte beperkingsonderdeel toegevoegd aan de lijst met handmatige beperkingen.

Transformatiebeperkingen

Beperkingen kunnen worden gebruikt om manipulatie op de een of andere manier te beperken. Sommige toepassingen vereisen bijvoorbeeld rotatie, maar ook dat het object rechtop blijft staan. In dit geval kan een RotationAxisConstraint worden toegevoegd aan het object en worden gebruikt om de rotatie te beperken tot de y-asrotatie. MRTK biedt een aantal beperkingen, die allemaal hieronder worden beschreven.

Het is ook mogelijk om nieuwe beperkingen te definiëren en deze te gebruiken om uniek manipulatiegedrag te creëren dat voor sommige toepassingen nodig kan zijn. Hiervoor maakt u een script dat de abstracte TransformConstraintConstraintType eigenschap en de abstracte ApplyConstraint methode overleed en implementeert. Wanneer u een nieuwe beperking aan het object toevoegt, moet deze manipulatie beperken op de manier die is gedefinieerd. Deze nieuwe beperking moet ook worden weergegeven in de automatische selectie van beperkingsbeheer of vermelding toevoegen in de handmatige modus.

Alle beperkingen van MRTK delen de volgende eigenschappen:

Handtype

Hiermee geeft u op of de beperking wordt gebruikt voor één hand, tweehandig of beide soorten manipulatie. Omdat deze eigenschap een vlag is, kunnen beide opties worden geselecteerd.

  • Eén hand: Beperking wordt gebruikt tijdens bewerking met één hand als deze optie is geselecteerd.
  • Tweehandig: Beperking wordt gebruikt tijdens tweehandige bewerkingen als deze optie is geselecteerd.

Nabijheidstype

Hiermee geeft u op of de beperking wordt gebruikt voor manipulatie in de buurt, ver weg of beide soorten manipulatie. Omdat deze eigenschap een vlag is, kunnen beide opties worden geselecteerd.

  • Near: Beperking wordt gebruikt tijdens bijna-manipulatie als deze optie is geselecteerd.
  • Ver: Beperking wordt gebruikt tijdens verre bewerkingen als deze optie is geselecteerd.

FaceUserConstraint

Face-gebruiker beperken

Wanneer deze beperking is gekoppeld aan een object, wordt de rotatie beperkt, zodat het object altijd wordt geconfronteerd met de gebruiker. Dit is handig voor latten of panelen. De eigenschappen voor FaceUserConstraint zijn als volgt:

Gezicht weg

Objectgezichten weg van de gebruiker, indien waar.

FixedDistanceConstraint

Beperking Vaste afstanden

Met deze beperking wordt de afstand tussen het gemanipuleerde object en een andere objecttransformatie bij het starten van de manipulatie hersteld. Dit is handig voor gedrag, zoals het bevestigen van de afstand van het gemanipuleerde object tot de hoofdtransformatie. De eigenschappen voor FixedDistanceConstraint zijn als volgt:

Transformatie van beperking

Dit is de andere transformatie waartoe het gemanipuleerde object een vaste afstand heeft. Standaard ingesteld op de cameratransformatie.

FixedRotationToUserConstraint

Vaste draaiing

Met deze beperking wordt de relatieve rotatie tussen de gebruiker en het gemanipuleerde object opgelost terwijl het wordt gemanipuleerd. Dit is handig voor latten of panelen, omdat het ervoor zorgt dat het gemanipuleerde object altijd hetzelfde gezicht toont aan de gebruiker als aan het begin van de manipulatie. De FixedRotationToUserConstraint heeft geen unieke eigenschappen.

FixedRotationToWorldConstraint

Vaste draaiing naar de wereld

Met deze beperking wordt de globale rotatie van het gemanipuleerde object opgelost terwijl het wordt bewerkt. Dit kan handig zijn in gevallen waarin er geen rotatie moet worden uitgevoerd door manipulatie. De FixedRotationToWorldConstraint heeft geen unieke eigenschappen:

MaintainApparentSizeConstraint

Schijnbare grootte behouden

Wanneer deze beperking is gekoppeld aan een object, ongeacht hoe ver het object zich van de gebruiker bevindt, behoudt het dezelfde schijnbare grootte voor de gebruiker (dat wil dus dat het dezelfde verhouding van het gezichtsveld van de gebruiker in beslag neemt). Dit kan worden gebruikt om ervoor te zorgen dat een leisteen of tekstpaneel leesbaar blijft tijdens het bewerken. De MaintainApparentSizeConstraint heeft geen unieke eigenschappen:

MoveAxisConstraint

Verplaatsingsas van beperking

Deze beperking kan worden gebruikt om te herstellen langs welke assen een gemanipuleerd object kan worden verplaatst. Dit kan handig zijn voor het bewerken van objecten over het oppervlak van een vlak of langs een lijn. De eigenschappen voor MoveAxisConstraint zijn als volgt:

Bewegingsbeperking

Hiermee geeft u op welke assen beweging moet voorkomen. Deze assen zijn standaard globaal in plaats van lokaal, maar dit kan hieronder worden gewijzigd. Omdat deze eigenschap een vlag is, kan een willekeurig aantal opties worden geselecteerd.

  • X-as: de beweging langs de x-as is beperkt als deze optie is geselecteerd.
  • Y-as: de beweging langs de y-as wordt beperkt als deze optie is geselecteerd.
  • Z-as: de verplaatsing langs de z-as is beperkt als deze optie is geselecteerd.

Lokale ruimte gebruiken voor beperking

Beperkt de lokale transformatieassen van het gemanipuleerde object, indien waar. Standaard onwaar.

RotationAxisConstraint

As met beperkingsrotatie

Deze beperking kan worden gebruikt om te bepalen welke assen een gemanipuleerd object kan worden gedraaid. Dit kan handig zijn om een gemanipuleerd object rechtop te houden, maar bijvoorbeeld nog steeds y-asrotaties toe te staan. De eigenschappen voor RotationAxisConstraint zijn als volgt:

Beperking bij draaien

Hiermee geeft u op welke assen worden voorkomen dat de draaiing ongeveer. Standaard zijn deze assen globaal in plaats van lokaal, maar dit kan hieronder worden gewijzigd. Omdat deze eigenschap een vlag is, kan een willekeurig aantal opties worden geselecteerd.

  • Y-as: draaiing rond de y-as is beperkt als deze optie is geselecteerd.
  • Z-as: draaiing rond de z-as is beperkt als deze optie is geselecteerd.
  • X-as: de draaiing rond de x-as is beperkt als deze optie is geselecteerd.

Lokale ruimte gebruiken voor beperking

Beperkt de lokale transformatieassen van het gemanipuleerde object, indien waar. Standaard onwaar.

MinMaxScaleConstraint

Min. max. constatint

Met deze beperking kunnen minimum- en maximumwaarden worden ingesteld voor de schaal van het gemanipuleerde object. Dit is handig om te voorkomen dat gebruikers een object te klein of te groot schalen. De eigenschappen voor MinMaxScaleConstraint zijn als volgt:

Minimaal schalen

De minimale schaalwaarde tijdens het bewerken.

Maximum schalen

De maximale schaalwaarde tijdens manipulatie.

Ten opzichte van de beginstatus

Indien waar, worden de bovenstaande waarden geïnterpreteerd als relatief ten opzichte van de eerste schaal van de objecten. Anders worden ze geïnterpreteerd als absolute schaalwaarden.