Raccomando anche Ogre. Ogre può farlo, fornisce tutto il necessario per quanto riguarda il supporto di mesh e animazione, ma non come soluzione drop-in. Devi scrivere molto codice per fare questo.
Per il nostro progetto abbiamo implementato qualcosa come te. Il personaggio principale e qualsiasi altro personaggio possono essere vestiti con diverse armi e armature e le immagini dell'avatar personaggio cambiano di conseguenza.
Come suggerimento iniziale su come procedere: nel tuo strumento di modellazione (Blender, Maya, 3ds max, ecc.) Modelli il tuo avatar e tutti i suoi vestiti che ti servono e li imponi allo stesso scheletro. Quindi esporta tutto individualmente nel formato mesh di Ogre.
In fase di esecuzione è possibile allegare le mesh di abbigliamento che l'utente sceglie per l'istanza dello scheletro in modo che formino insieme l'avatar. Questo non è difficile da fare tramite l'Ogre-API, ma per un accesso ancora più semplice a questo è possibile utilizzare lo strumento meshmerge dell'estensione MeshMagick. È stato sviluppato esattamente per questo scopo.
Se si desidera modificare altre caratteristiche come le caratteristiche del viso, anche questo è possibile, poiché Ogre supporta le animazioni di posa dei vertici fuori dalla scatola, in modo da poter preparare percorsi per determinate caratteristiche del viso e consentire all'utente di cambiare il volto cursori o qualcosa del genere. (ad esempio in Oblivion)
Una cosa da sapere per quanto riguarda Ogre: è un motore grafico 3d, non un motore di gioco. In questo modo è possibile disegnare oggetti sullo schermo e animare e illuminare e in qualsiasi modo modificare la grafica, ma non l'input, la fisica o il suono. Per questo devi usare altre librerie e integrarle. Sono disponibili diversi motori di gioco pre-raggruppati basati su Ogre.
Direi che una "raccolta di librerie" è di gran lunga il miglior design "motore". :) – jalf