Mi chiamo Kevin e sono programmatore / designer presso Klei. Ho scritto un sacco di cose di animazione che abbiamo usato nella serie Shank, Mark of the Ninja e Don't Starve.
I nostri animatori lavorano in Flash. Abbiamo un concetto di "costruzione" di un personaggio che è un insieme di simboli di parti del corpo con viste multiple. A seconda della fedeltà di un determinato gioco, ci sono più o meno parti del corpo con più o meno "vista". Penso che Shank avesse circa 30 parti del corpo con 1-2 dozzine di viste ciascuna, mentre Wilson di Don't Starve ne aveva circa una dozzina con solo lo stesso numero di viste. Gli script JSFL personalizzati vengono utilizzati per analizzare le linee temporali dei simboli flash, quindi creare le immagini pertinenti come una serie di file PNG ad alta risoluzione, insieme a un mucchio di metadati che vengono inseriti in un XML.
Data la creazione di un personaggio, i nostri animatori creano un nuovo simbolo radice in un altro file per contenere un pezzo di animazione per quel personaggio. In quella linea temporale, creano il personaggio fuori dai simboli di costruzione e lo spostano, lo interpolano, ecc. Per creare singole animazioni (che sono delimitate usando le etichette dei frame). Lo script esportatore esporta queste linee temporali in XML, prendendo nota della trasformazione 2d di ogni pezzo di costruzione e della vista che mostra.
Con tutte queste informazioni esportate in XML e PNG, eseguiamo una serie di script Python per convertirli in dati di runtime. Uno script ridimensiona, atlanti e taglia tutte le trame e le converte in (uno o più) formati compressi specifici della piattaforma. Un altro script elabora i dati di animazione XML in un formato binario più efficiente per il caricamento.
In fase di esecuzione, è davvero solo una questione di mostrare i giusti simboli di costruzione con le giuste trasformazioni e vista.
La costruzione di questo sistema ha richiesto molto tempo ed è stata perfezionata quando lo abbiamo spostato da un gioco all'altro. Ci sono molti dettagli che sto esaminando (come il modo in cui gestiamo la stratificazione e lo scambio di costumi runtime), ma questo è il contorno generale.
Naturalmente, la tecnologia che utilizziamo è probabilmente l'aspetto meno importante del "Klei Look". La parte più importante è che abbiamo un sacco di animatori davvero bravissimi. :)
Spero comunque che questo aiuti. Se hai altre domande su Don't Starve, puoi fermarti ai nostri forum, dove di solito sono abbastanza felice di parlare con il negozio.