Van MetaHuman Creator tot VR klare NPC in Unreal Engine 5

Project: VR Agressietraining Unreal Engine 5
Opdrachtgever: Kudding & Partners
Deel 3: De MetaHuman setup

1. Introductie

Dit is het derde deel in een reeks case studies over de technische realisatie van een VR agressietraining in Unreal Engine 5 met MetaHuman-technologie. Het eerste deel beschreef de opnamedag: de technische setup voor het vastleggen van facial- en body motion capture data. Het tweede deel behandelde het omzetten van die ruwe video naar bruikbare animatiedata, de retargeting naar een MetaHuman skeleton en het opschonen tot productieklare animaties.

Dit artikel gaat over het opzetten van de MetaHuman zelf. Hoe maak je een NPC die er niet alleen realistisch uitziet, maar die ook dreigend overkomt in een VR omgeving? Hoe zorg je ervoor dat een MetaHuman, met al zijn visuele complexiteit, soepel draait op een VR-headset? En welke technische keuzes maak je wanneer de standaard MetaHuman configuratie niet geschikt blijkt voor virtual reality?

Het klinkt als een relatief eenvoudige stap: maak een karakter in de MetaHuman Creator en zet het in je project. In de praktijk bleek het een proces met subtiele maar belangrijke beslissingen, van bewuste ontwerpkeuzes voor het uiterlijk tot het oplossen van visuele artefacten die pas in VR zichtbaar werden.

2. Het ontwerp: een bewuste keuze

Metahuman Cnematic preview

De MetaHuman voor dit project is niet zomaar een willekeurig karakter. Het uiterlijk is bewust gekozen in samenwerking met Kudding & Partners om een dreigende, grote man neer te zetten. Dit is geen esthetische keuze, maar een didactische. De VR-training simuleert situaties waarin deelnemers geconfronteerd worden met escalerend agressief gedrag. Het uiterlijk van de NPC draagt bij aan de geloofwaardigheid van die dreiging.

Een MetaHuman die er neutraal of vriendelijk uitziet zou de spanning uit de scenario’s halen. De deelnemer moet het gevoel hebben dat de situatie écht kan escaleren, zelfs voordat de NPC iets zegt of doet. Dat begint bij het eerste visuele contact: de fysieke verschijning. Een groot, breed postuur en een kaal hoofd dragen bij aan een intimiderende eerste indruk, precies wat nodig is voor de fase van het trainingsmodel waarin deelnemers leren vroege signalen van dreiging te herkennen.

3. MetaHuman Creator in Unreal Engine

3.1 In-engine creatie

De MetaHuman is volledig aangemaakt binnen Unreal Engine 5. Sinds versie 5.4 is de MetaHuman Creator geïntegreerd in de engine zelf, wat betekent dat het volledige creatieproces, van gezichtsstructuur tot huidskleur tot lichaamsbouw, zonder externe tools of webapplicaties verloopt. Dit houdt de workflow compact: één omgeving voor zowel het ontwerpen van het karakter als het bouwen van de VR-applicatie.

Als startpunt is een bestaand preset-gezicht uit de MetaHuman-bibliotheek gebruikt. Van daaruit zijn de gezichtskenmerken aangepast om het gewenste dreigende uiterlijk te bereiken: een bredere kaakstructuur, diepliggende ogen, een zwaarder voorhoofd. Het lichaam is ingesteld op een groot, breed postuur. De kleding komt uit de standaard gratis MetaHuman outfitbibliotheek, een bewuste keuze om het karakter herkenbaar en alledaags te houden. De dreiging moet uit de lichaamstaal en het uiterlijk komen, niet uit opvallende kleding.

3.2 MetaHuman Identity

Tijdens het opzetten van de MetaHuman is de MetaHuman Identity functie gebruikt. MetaHuman Identity is een feature binnen het MetaHuman framework die een koppeling legt tussen een gezicht en de MetaHuman animatie pipeline. Het is onderdeel van de aanbevolen workflow bij het werken met MetaHuman Performance, de tool waarmee in deel 2 de facial capture video’s zijn omgezet naar gezichtsanimatie.

In de praktijk is MetaHuman Identity in dit project geen kritisch onderdeel gebleken. De Identity is aangemaakt als standaard stap in de workflow, omdat het werd aanbevolen in de documentatie bij het opzetten van MetaHuman Performance. De facial animation pipeline functioneert hiermee naar behoren. Voor projecten waarin de MetaHuman het gezicht van een specifiek persoon moet representeren, een acteur of een publiek figuur, wordt de Identity belangrijker omdat het de nauwkeurigheid van de gezichtsanimatie mapping verbetert. In dit project, waar het NPC-gezicht bewust afwijkt van de acteur, was het effect minder uitgesproken.

4. Van MetaHuman naar VR-klare NPC

Een MetaHuman die er goed uitziet in de editor is niet automatisch geschikt voor VR. Virtual reality stelt specifieke eisen aan zowel visuele kwaliteit als performance. Twee problemen manifesteerden zich pas toen de MetaHuman daadwerkelijk in de VR-headset werd bekeken: jitter in de haren en baard, en een te hoge renderbelasting.

4.1 Het jitter-probleem: Groom assets in VR

MetaHumans gebruiken standaard Groom assets voor haar, wenkbrauwen en gezichtshaar. Groom assets zijn gebaseerd op Unreal Engine’s haarsimulatie systeem: duizenden individuele haarstrengen die fysiek reageren op beweging, zwaartekracht en wind. Op een gewoon scherm ziet dit er indrukwekkend uit. In VR ontstond een ander beeld.

Bij het opzetten van de Groom assets viel op dat de haren en baard van de NPC zichtbaar trilden, een subtiel maar storend visueel artefact dat in VR veel prominenter is dan op een gewoon scherm. De oorzaak ligt in de combinatie van factoren die specifiek zijn voor VR-rendering. Ten eerste: VR rendert twee keer per frame, één keer per oog. Kleine inconsistenties in de haarsimulatie tussen de twee renders worden door het brein opgepikt als trillingen. Ten tweede: de framerate-eisen van VR (minimaal 72 fps, bij voorkeur 90 fps) maken het lastig om de haarsimulatie voldoende stabiel te houden zonder dat de physics-solver concessies doet.

De oplossing was het vervangen van de Groom assets door card based hair. Card-based hair gebruikt getextureerde polygonen (kaarten) in plaats van individuele strengels. Het resultaat is visueel minder gedetailleerd dan Groom haar, maar volledig stabiel: geen physics-simulatie, geen jitter, en aanzienlijk lichter om te renderen.

Unreal Engine biedt binnen de MetaHuman-configuratie de optie om te schakelen tussen Groom assets en card-based hair. Het was dus geen kwestie van custom assets bouwen, maar van het activeren van de juiste optie. De visuele kwaliteit van de card-based hair bleek voor deze toepassing meer dan voldoende. De NPC staat op relatief korte afstand van de deelnemer (de scenario’s spelen zich af in een parkeergarage), maar het detailverlies ten opzichte van Groom-haar is in de praktijk nauwelijks merkbaar. De stabiliteit daarentegen is direct voelbaar: geen trillingen meer, een solide visuele presentatie.

4.2 Performance-optimalisatie

MetaHumans zijn van nature visueel complex: een hoge polycount, gedetailleerde huidshadowing, meerdere skeletal mesh-componenten (body, face, outfit) en een groot aantal morph targets voor gezichtsanimatie. Unreal Engine biedt een ingebouwd optimalisatiesysteem voor MetaHumans waarmee de visuele complexiteit in stappen kan worden teruggebracht. De opties variëren van Cinematic (maximale kwaliteit, bedoeld voor offline rendering) tot Low (minimale kwaliteit, geschikt voor mobiele apparaten).

Aanvankelijk was de MetaHuman ingesteld op High optimalisatie. De redenering was dat VR-deelnemers de NPC van dichtbij bekijken en dat de visuele kwaliteit direct bijdraagt aan de geloofwaardigheid van de training. In de praktijk bleek High echter te zwaar voor een stabiele VR-ervaring.

De switch naar Medium optimalisatie loste het performance-probleem op zonder merkbaar verlies aan visuele kwaliteit. Het verschil tussen High en Medium is in VR nauwelijks zichtbaar, met name omdat de deelnemer de NPC nooit van extreem dichtbij bestudeert; de focus ligt op gedrag en lichaamstaal, niet op poriën of haarzakjes. De Medium-instelling biedt een goede balans tussen visuele geloofwaardigheid en de stabiele framerate die VR vereist.

MetaHuman VR resultaat

5. De MetaHuman in de animatiepipeline

Met de MetaHuman visueel geconfigureerd en geoptimaliseerd voor VR, was de volgende stap het integreren in de animatiepipeline die in deel 2 is opgebouwd. De MetaHuman is niet één monolithisch karakter, maar een samenstelling van meerdere systemen die elk hun eigen animatiedata ontvangen.

5.1 Twee parallelle sporen

Zoals beschreven in deel 2 volgt de animatiedata twee gescheiden paden naar de MetaHuman:

Facial animation en audio worden aangestuurd via Level Sequences. Elke dialoogregel heeft een eigen Level Sequence die de gezichtsanimatie (afkomstig van de MetaHuman Performance-verwerking van de Rokoko Headcam-video’s) en de audiotrack bevat. Deze Level Sequence wordt direct op de MetaHuman’s skeletal mesh afgespeeld, volledig buiten de Animation Blueprint om. Dit betekent dat niets in het body animatiesysteem de gezichtsexpressies of lip sync kan beïnvloeden.

Body animation loopt via de Animation Blueprint als Animation Montages. In deel 2 is beschreven hoe de body motion capture data van QuickMagic AI is geretarget naar het MetaHuman-skeleton, opgeschoond via de Control Rig en Curve Editor, teruggebaked naar Animation Sequences en omgezet naar Animation Montages. Deze Montages worden door de StateTree getriggerd per dialoogbeat en bevatten uitsluitend lichaamsbeweging.

5.2 De scheiding als ontwerpprincipe

Deze strikte scheiding tussen face en body is niet toevallig, maar een bewust ontwerpprincipe. De gezichtsanimatie en audio moeten altijd volledig en ononderbroken afspelen. De deelnemer moet elke dialoogregel horen en de bijbehorende emotie op het gezicht zien. Het lichaam daarentegen is het onderdeel dat in toekomstige iteraties van het project reactief wordt: het kan reageren op de lichaamstaal van de deelnemer.

Door de face animation via Level Sequences buiten de Animation Blueprint te houden, is er geen risico dat toekomstige wijzigingen aan het body animatiesysteem de gezichtsanimatie beïnvloeden. Dit maakt het systeem robuust en uitbreidbaar.

6. Overzicht: van concept tot VR-klare MetaHuman

De complete workflow van MetaHuman-creatie tot integratie in de VR-applicatie:

StapActieDetails
1OntwerpBewuste keuze voor dreigend uiterlijk in overleg met Kudding & Partners
2MetaHuman CreatorIn-engine creatie op basis van preset-gezicht, aanpassingen aan gezichtsstructuur en lichaamsbouw
3MetaHuman IdentityAangemaakt als onderdeel van de MetaHuman Performance-workflow
4OutfitStandaard gratis MetaHuman-outfit, bewust alledaags gehouden
5Groom → Card-based hairGroom assets vervangen door card-based hair om jitter in VR te elimineren
6Performance-optimalisatieVan High naar Medium optimalisatie voor stabiele VR-framerate
7Animatie-integratieFace + audio via Level Sequences, body via Animation Montages in AnimBP

7. Reflectie

7.1 De kloof tussen editor en headset

De grootste les van de MetaHuman-setup was het verschil tussen hoe iets eruit ziet in de Unreal Engine editor en hoe het eruit ziet en presteert in een VR headset. De Groom assets die op scherm prachtig bewogen, werden in VR een bron van visuele storing. De High optimalisatie die in de editor nauwelijks merkbaar was in performance, kostte in VR cruciale frames.

Dit is een patroon dat in VR ontwikkeling steeds terugkomt: test vroeg en test in de headset. Wat in de editor acceptabel is, kan in VR onacceptabel zijn, en andersom kan wat in de editor er minder uitziet, in VR prima voldoen. De Medium optimalisatie is hier het beste voorbeeld van: visueel nauwelijks onderscheidbaar van High wanneer de deelnemer de NPC in een realistische context bekijkt, maar met een merkbaar stabielere framerate.

7.2 Ontwerp als deel van de training

Het uiterlijk van de MetaHuman is geen cosmetische bijzaak. In een VR agressietraining draagt de visuele verschijning van de NPC direct bij aan het leereffect. De bewuste keuze voor een dreigend uiterlijk, in samenwerking met Kudding & Partners, maakt het verschil tussen een oefening die spanning oproept en een die de deelnemer onberoerd laat. Dit is een punt dat in puur technische projecten gemakkelijk over het hoofd wordt gezien: het ontwerp van een karakter is niet alleen een artistieke beslissing, maar een functionele.

7.3 Card based hair als pragmatische keuze

De overstap van Groom assets naar card based hair is een voorbeeld van een pragmatische keuze die in de context van het project de juiste was. Groom assets zijn technologisch indrukwekkend en voor film of cinematics de betere optie. Maar voor een VR toepassing waarin stabiliteit en framerate prioriteit hebben, en waarin de deelnemer de NPC niet bestudeert als een portret maar observeert als een dreigend persoon, is card based hair de betere keuze. Het gaat niet om de mooiste pixel, maar om de meest geloofwaardige ervaring.

7.4 De MetaHuman als platform

Wat in deze case study naar voren komt is dat een MetaHuman niet een afgerond karakter is dat je uit een bibliotheek pakt, maar een platform dat je configureert voor je specifieke toepassing. De standaard MetaHuman configuratie is ontworpen voor de breedst mogelijke inzetbaarheid. Voor een VR-agressietraining moet je bewuste keuzes maken: welk optimalisatieniveau, welk type haar, welke outfit, welke gezichtsstructuur. Elk van deze keuzes heeft zowel een technische als een inhoudelijke dimensie.

Dit is deel 3 in een reeks case studies over de technische realisatie van een VR agressietraining in Unreal Engine 5. De volgende delen behandelen: StateTree en scenario logica, hand tracking implementatie, en het realtime NPC gedragssysteem.