Toon posts:

[MAX / DX] Lisyncing in DirectX met morphs uit 3D studio

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goeiemiddag,

Sinds kort ben ik bezig met 3D modeling & programmeren in DirectX. Ik heb een paar kleine dingetjes al in elkaar gezet en 1 van m'n huidige projectjes is mijn Nexus screensaver (gebaseerd op de AI van Warzone 2100).

Het hoofd heb ik gemoddeld voor de Joan of Arc tutorial en het reageert op beweging die wordt gedetecteerd via een webcam, waardoor het hoofd zo wordt gedraaid dat het je altijd aankijkt (tenzij iemand achter je rond is aan het rennen :) ). Het beeld van de webcam wordt ook als reflectie in de ogen gebruikt. Hieronder een plaatje van deze screensaver, met mijn lelijke bakkes en met en zonder DirectX gloei effect:

Afbeeldingslocatie: http://www.netforge.nl/rommel/wx-nexus-glow.gif

Om het af te maken wou ik nou nog gebruik maken van de Microsoft Speech SDK om het hoofd ook echt te laten praten. De Speech SDK heb ik al uitgeplozen en tekst to speech kan ik nu makkelijk coden, met lipsyncing van een 2D plaatje. De SDK geeft via meme's (of zoiets) door welke klank er wordt geproken, waarop je de afbeelding kunt aanpassen. Voor 2D is dit makkelijk genoeg, maar om dit in 3D te kunnen doen heb ik 2 vraagjes (m'n vraagjes zijn wat lang geworden, zie onderaan na "Dus..." voor een beknopte versie :+ ).

1. Hoe gebruik je Morph targets (of andere techniek) om de mond naar klanken te vormen?

Ik ben een n00b op het gebied van 3D moddeling (programmeren gaat me iets beter af), dus ik heb geen idee hoe ik hiermee zou moeten beginnen. Bij het googlen heb ik wel een aantal tutorials gevonden die hiervoor Morph targets gebruiken, maar ik kreeg het zelf niet voor elkaar met m'n Joan of Arc hoofd. Heeft iemand misschien een goede tutorial liggen hoe je dit aanpakt, want ik heb dus echt geen flauw idee...

Daarnaast moet ik de verschillende morphs ook kunnen opslaan als animatie keyframes. Ik weet niet of dit extra moeilijk is, maar het klinkt niet gemakkelijk met mijn beperkte 3D studio vaardigheden ;)

2. Hoe kun je deze (Morph) animaties gebruiken in DirectX?

Dit lijkt me de moelijkste stap in het hele verhaal. Ik zie niet hoe je Morphs zou kunnen gebruiken in een DirectX app als je gebruikt maakt van de standaard D3DX Mesh objecten (.x files). De enige voor de hand liggende manier is om de Morphs te exporteren als animaties, maar dat lijkt me de verkeerde aanpak. In principe zou je dan voor elke morph naar morph overgang een animatie moeten hebben, wat met zo'n 12 memes neerkomt op 132 animaties (12 starts x 11 targets, toch?).

Een ander nadeel hiervan is dat je meestal midden in een morph animatie zult moeten overschakelen op een andere animatie, omdat je van de Speech SDK zo'n 20 meme hints per seconde te verwerken krijgt. De oplossing hiervoor zou waarschijnlijk zijn om helemaal niet met animaties te werken, maar om de memes simpelweg als verschillende statische keyframes te exporteren. Zo zou je dezelfde 'switch' techniek kunnen gebruiken als in 2D, alleen nu met de keyframes in plaats van met afbeeldingen. Dit is denk ik de makkelijkste oplossing.

De mooiste manier zou zijn om zelf op de een of andere manier de morphs in DirectX te definieren en de animaties met een vertex shader uit te voeren. Voor zo ver ik hier info over heb gevonden is dit ongeveer dezelfde techniek die gebruikt wordt voor hardware skinning, maar hierover is maar weinig info beschikbaar. Dus ik denk dat ik voor de simpele 'image switch' techniek ga, maar dan heb ik wel m'n morphs nodig.


Dus... heeft iemand a) een goede MAX morph tutorial voor lipsyncing, liefst met info over het exporteren ervan en b) weet iemand misschien hoe dit in echte spellen wordt aangepakt, want dat vraag ik me nu toch wel af :)

Alvast bedankt!

[ Voor 4% gewijzigd door Verwijderd op 17-09-2005 12:50 ]


Verwijderd

Topicstarter
*bump*

Niemand?