Technische geheimen achter de cast van interactieve personages van 'Cosmonious High' PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Technische geheimen achter 'Cosmonious High's' cast van interactieve personages

Technische geheimen achter de cast van interactieve personages van 'Cosmonious High' PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Kosmisch hoog bevat 18 karakters van zes soorten, allemaal gemaakt door een team zonder toegewijde animators. Dat betekent heel veel code om realistisch gedrag en interactiviteit van Owlchemy-kwaliteit te creëren! Het 'karaktersysteem' in Kosmisch hoog is een groep van ongeveer 150 scripts die samen veel ontwerp- en animatieproblemen met betrekking tot personages oplossen. Of het nu gaat om hoe ze zich verplaatsen, naar dingen kijken, interactie hebben met objecten of reageren op de speler, het is allemaal zeer modulair en bijna volledig procedureel.

Deze modulariteit stelde een team van contentontwerpers in staat om elke afzonderlijke dialoogregel in het spel te creëren en te animeren, en de personages zich levendig en betrokken te voelen, zelfs als ze niet in het midden van een gesprek waren. Dit is hoe het werkt.

Gastartikel door Sean Flanagan & Emma Atkinson

Kosmisch hoog is een game van de ervaren VR-studio Owlchemy Labs over het bijwonen van een buitenaardse middelbare school die absoluut vrij is van storingen! Sean Flanagan, een van Owlchemy's technische artiesten, creëerde het kernkaraktersysteem van Cosmonious High naast vele andere inspanningen. Emma Atkinson maakt deel uit van het Content Engineering-team, dat gezamenlijk verantwoordelijk is voor het implementeren van elke verhalende reeks die je tijdens het spel ziet en hoort.

De codekant

Bijna alle code in het karaktersysteem is herbruikbaar en wordt gedeeld door alle soorten. De karakters in Kosmisch hoog zijn een beetje zoals modulaire poppen - gebouwd met veel van dezelfde onderdelen eronder, maar met unieke kunst en inhoud erop die ze individualiseren.

Helemaal bovenaan kan de tekensysteemcode worden opgesplitst in: modules en chauffeurs.

Modules

Elk personage in Kosmisch hoog haalt zijn gedrag uit zijn set van karaktermodules. Elke karaktermodule is verantwoordelijk voor een specifiek domein van problemen, zoals bewegen of praten. In code betekent dit dat elk type teken wordt gedefinieerd door de modules die we eraan toewijzen. Tekens zijn niet vereist om elke module op dezelfde manier of helemaal niet te implementeren (bijv. de intercom kan niet zwaaien.)

Enkele van onze meest gebruikte modules waren:

KarakterLocomotion - Verantwoordelijk voor voortbeweging. Het specificeert het voortbewegingsgedrag op hoog niveau dat alle karakters gemeen hebben. De daadwerkelijke beweging komt van elke implementatie. Alle 'geaarde' personages - de Bipid en Flan - gebruiken CharacterNavLocomotion, waarmee ze rond de scène Nav Mesh bewegen.

KarakterPersoonlijkheid - Verantwoordelijk voor hoe personages op de speler reageren. Deze module heeft één voet in het inhoudsontwerp - de belangrijkste verantwoordelijkheid is het huisvesten van de reacties die personages hebben wanneer spelers naar hen zwaaien, samen met eventuele gespreksopties. Het bevat ook een paar 'automatische' reacties die in de hele cast voorkomen, zoals automatisch ontvangen (alles vangen wat je gooit) en automatisch staren (terugkerend oogcontact).

KarakterEmotie - Houdt de huidige emotie van het personage bij. Andere componenten kunnen emotieverzoeken toevoegen aan en verwijderen uit een interne stapel.

KarakterVision – Houdt de huidige visiedoelstelling(en) van het personage bij. Andere componenten kunnen visieverzoeken toevoegen aan en verwijderen uit een interne stapel.

KarakterToespraak – Hoe karakters praten. Deze module werkt rechtstreeks samen met Seret, onze interne dialoogtool, om VO-audioclips in de wachtrij te plaatsen en af ​​te spelen, inclusief alle bijbehorende bijschriften. Het onthult een paar gebeurtenissen voor het afspelen van VO, onderbreking, voltooiing, enz.

Het is belangrijk op te merken dat animatie een aparte zorg is. De Emotion-module laat een personage niet glimlachen, en de Vision-module laat het hoofd van een personage niet draaien - ze slaan alleen de huidige emotie- en visiedoelen van het personage op. Animatiescripts referentie deze modules en zijn verantwoordelijk voor het omzetten van hun gegevens in een zichtbare prestatie.

drivers

De modules die een personage gebruikt, geven samen aan wat dat personage kan doen, en kan dat gedrag zelfs implementeren als het universeel genoeg is (zoals spraak en persoonlijkheid). Het grootste deel van het gedrag van personages is echter niet op zo'n hoog niveau vast te leggen. Het vuile werk wordt overgedragen aan andere scripts - gezamenlijk bekend als chauffeurs—die het echte 'vlees' van het karaktersysteem vormen.

Ondanks hun beperktere focus, worden stuurprogramma's nog steeds geschreven om zo herbruikbaar mogelijk te zijn. Enkele van de belangrijkste stuurprogramma's, zoals CharacterHead en CharacterLimb, vertegenwoordigen onzichtbaar een deel van een personage op een manier die losstaat van een specifiek tekentype. Wanneer je het hoofd van een personage vastpakt met Telekinesis, een personage iets laat gooien of een personage vertelt om een ​​mocap-clip af te spelen, doen die twee scripts het eigenlijke werk van het verplaatsen en roteren van elk frame naar behoefte.

Drivers kunnen losjes worden onderverdeeld in: logische stuurprogramma's en animatie stuurprogramma's.

Logische stuurprogramma's zijn als hoofd en ledematen - ze doen zelf niets zichtbaars, maar ze vangen en voeren een herbruikbaar deel van het karaktergedrag uit en onthullen alle belangrijke informatie. Animatiestuurprogramma's referentie logische stuurprogramma's en gebruiken hun gegevens om karakteranimatie te maken - botten verplaatsen, meshes verwisselen, IK oplossen, enz.

Animatiestuurprogramma's zijn meestal ook specifieker voor elk tekentype. Iedereen met ogen gebruikt bijvoorbeeld een paar instanties van CharacterEye (een logische driver), maar een Bipid animeert hun eye shader met BipedAnimationEyes, een Flan met FlanAnimationEyes, enz. Door de taak van 'een oog' in twee delen te splitsen, zoals dit mogelijk voor unieke animatie per soort die allemaal wordt ondersteund door dezelfde logica.

Ga verder op pagina 2: De inhoudskant »

De post Technische geheimen achter 'Cosmonious High's' cast van interactieve personages verscheen eerst op Weg naar VR.

Tijdstempel:

Meer van Weg naar VR