Zephyrnet-logo

Sneller en gemakkelijker rijke VR-interacties ontwikkelen met UltimateXR

Datum:

Rijke interacties tussen de gebruiker en de virtuele wereld zijn een belangrijk aspect van wat VR zo aantrekkelijk maakt, maar het creëren en afstemmen van dergelijke interacties is een uitdagende en tijdrovende taak voor ontwikkelaars. Toolsets zoals UltimateXR kunnen het iteratieproces voor VR-interacties versnellen, waardoor games en ervaringen meer interactiviteit en onderdompeling krijgen.

Gastartikel door Enrique Tromp

Enrique is medeoprichter en CTO van VRMADA, een technologiebedrijf dat wereldwijd enterprise VR-oplossingen levert. Met een sterke passie voor computergraphics en digitale kunst, omvat zijn carrière 20 jaar in simulatie, videogames en live interactieve ervaringen. Tegenwoordig houdt hij ervan om uitdagende VR-projecten aan te gaan en te ontwikkelen UltiemeXR, een gratis en open-source VR-framework. Je kunt zijn nieuwste werk volgen op Twitter @entromp.

Drie jaar geleden had ik de gelegenheid om het belang van plezierige interacties in VR-toepassingen te bespreken in dit Weg naar VR gast artikel. Ik heb enkele voorbeelden laten zien die zijn ontwikkeld bij VRMADA, waar we VR gebruiken voor bedrijfstraining en simulatie. Een van de kerngedachten is dat goede, natuurlijke interacties essentieel zijn voor een efficiënte assimilatie van procedures waarop de training betrekking heeft. In VR-videogames verbeteren geweldige interacties de gameplay en kunnen sommige mechanica echt leuk en bevredigend maken.

Sinds ongeveer 2016 heb ik een groot deel van mijn leven geïnvesteerd in het bouwen van een raamwerk en toolset die de technologische basis van het bedrijf zijn geworden. Het belangrijkste doel was om een ​​schaalbaar systeem te creëren waarmee onze ontwikkelaars jarenlang VR-applicaties kunnen maken. Gedurende deze jaren moesten we applicaties ontwikkelen met zeer verschillende eisen, interacties en doelen, van serieuze training tot entertainment. Deze verschillen waren essentieel om het raamwerk op natuurlijke wijze te laten convergeren naar een systeem dat is voorbereid om in zeer verschillende scenario's te werken.

We hebben onlangs besloten om het raamwerk en de tools beschikbaar te maken voor het publiek, gratis en open source voor iedereen. Het resultaat is UltiemeXR voor Eenheid. We hopen het binnenkort ook naar andere platforms te porten (Unreal, Web...?).

In dit artikel zal ik enkele van de functies in UltimateXR bespreken die van cruciaal belang zijn geweest bij het succesvol verbeteren van onze VR-interacties en tegelijkertijd de doorlooptijden verkorten.

Geïntegreerde Hand-pose Editor

Het schrijven van handhoudingen is een belangrijk proces bij het ontwikkelen van objectmanipulatie en andere mechanica waarbij tussen verschillende houdingen moet worden geschakeld.

In het begin exporteerden we handanimaties rechtstreeks vanuit ons 3D-programma naar keuze (3dsMax, Maya, Blender, enz.), maar we realiseerden ons al snel dat het een groot knelpunt werd. We hebben besloten om een ​​volwaardige editor voor handhoudingen binnen Unity te ontwikkelen waarmee we handhoudingen rechtstreeks vanuit de wereldeditor kunnen aanpassen.

Naast de standaard bewerkingsopties, zijn enkele functies waarvan ik denk dat ze de sleutel zijn geweest bij het verlagen van de doorlooptijden:

  • Ondersteuning voor aangepaste widgets om snel vingerbotten te draaien, maar laat de ontwikkelaar ook de ingebouwde Unity-transformatiehandvatten gebruiken. Ze kunnen beide door elkaar worden gebruikt.
  • Ondersteuning voor vaste en gemengde houdingen (hierover later meer).
  • Ondersteuning voor hand-pose presets die direct kunnen worden gebruikt of als een snel startpunt voor nieuwe poses.
  • Ondersteuning voor het uitwisselen van poses tussen rigs afkomstig van toepassingen die verschillende coördinatensystemen gebruiken.

Meng poses met auteursmanipulatie met behulp van gemeenschappelijke grijphoudingen

Tijdens de ontwikkeling realiseerden we ons dat veel objecten worden gegrepen met behulp van gemeenschappelijke poses uit een bekende set. Het enige verschil was dat de greep meer open of gesloten was, afhankelijk van de grootte van het object.

We hebben besloten om een ​​nieuw posetype te creëren, de blend-pose genaamd, die wordt gedefinieerd door een start- en een eindhouding en elke pose daartussenin kan aannemen. Om verschillende objectgroottes te ondersteunen, zou de starthouding een volledig open pose zijn, in staat om het grootst mogelijke object te grijpen, en de eindhouding zou een volledig gesloten pose zijn, in staat om het kleinst mogelijke object te grijpen. Elk object met een tussenmaat kan dezelfde pose gebruiken, maar met een andere mengwaarde die wordt bestuurd door een schuifregelaar.

De standaard cilindrische grijper gebruiken op twee verschillende objecten

Terwijl vaste houdingen normaal gesproken worden gebruikt voor handgebaren en ad-hoc grepen, waren gemengde houdingen uitermate nuttig om grepen te ontwikkelen die door veel verschillende objecten konden worden hergebruikt.

Menghoudingen zijn ook nuttig gebleken voor objecten waarbij de greep kan veranderen, zoals bij het overhalen van de trekker van een pistool of het indrukken van een knop op een interactief apparaat terwijl u het vasthoudt.

Aanpasbare handen

Het creëren van een andere set handen voor elke software die we hebben ontwikkeld, zou een zeer tijdrovende taak zijn geweest. In het specifieke geval van twee entertainmenttoepassingen hebben we een aangepaste rig gebruikt; maar voor de meeste van onze trainingstoepassingen hebben we altijd vastgehouden aan dezelfde kernwaarden. Dit heeft ons in staat gesteld om houdingen, zoals handgebaren of de gebruikelijke gemengde houdingen die in de vorige sectie zijn besproken, opnieuw te gebruiken.

We wilden toch de mogelijkheid hebben om handen er in elke toepassing anders uit te laten zien. Daarvoor hebben we een rig gemaakt die kan schakelen tussen huid en handschoenen en een van de twee kan aanpassen. Dit heeft het voordeel dat je houdingen kunt hergebruiken, terwijl je toch een ander uitziende set handen kunt hebben in nieuwere projecten.

De visuele kant wordt ook vaak bepaald door de eisen van de klant of een ontwerpdocument voor een videogame. Bij bepaalde trainingstoepassingen begin je met blote handen en een van de eerste stappen is het dragen van veiligheidsartikelen zoals handschoenen. Dit betekent al dat je huidkenmerken laat zien of besluit ze te verbergen met bijvoorbeeld een ghost shader.

Met een VR-toepassing kunt u ook uw huidskleur en handgrootte aanpassen. Ondersteuning voor meer dan één handgrootte kan erg belangrijk zijn, omdat in sommige scenario's waarin u uzelf voorstelt, zoals een realistische VR-app voor samenwerking of een trainingstoepassing, het hebben van een andere handgrootte de onderdompeling kan verbreken.

Verschillende skin shader variaties: grote handen bovenaan, kleine handen onderaan

Om te voorkomen dat slechts één maat wordt ondersteund (wat in veel toepassingen een grote mannenhand is), hebben we ervoor gekozen om twee handmaten te ondersteunen: grote handen en kleine handen. Volwassen handen kunnen meestal in een van deze twee worden gegroepeerd.

In de toekomst kunnen we de mogelijkheid toevoegen om de handgrootte procedureel te wijzigen, maar voor nu vind ik dit de beste afweging tussen inclusiviteit, flexibiliteit en vereiste inspanning.

Ga verder op pagina 2: GrabbableObject Editor Flexibiliteit »

spot_img

Laatste intelligentie

spot_img