Equipar objetos en el personaje

Un RPG no es nada sin esta característica, todos queremos ver cómo nos queda esa armadura de escamas de dragón, la nueva túnica de mago, la espada de fuego, o lo que sea. Los jugadores  de RPGs somos muy pacotilleros. Un RPG que no tenga esto, mejor que busque una forma de obviar todo el sistema de ítems, que es la base de los CRPG tradicionales.
Ayer hice unas pruebas para ver cómo implementar lo anterior en Ogre. La idea es muy sencilla: adjuntar los objetos a huesos del esqueleto. La prueba rápida consistión en ponerle un yelmo al personaje, para ello utilicé el hueso "head", al cual le adjunté una malla cargada previamente en una Entity. Mediante la función attachObjecToBone podemos adjuntar una entidad al esqueleto de otra, simplemente indicándole el hueso al cual queremos unirla. Las entidades adjuntas siguen la animación del hueso, según me comentó alguien en el IRC que afirma haberle puesto una espada en la mano al robot de los demos de Ogre. Sí, sabemos que el robot no tiene manos, pero era una prueba de concepto.
Ahora bien, podemos emplear para ello el esqueleto normal, o también podemos crear huesos específicos para colocar objetos. De hecho, creo que el escudo es uno de estos casos, aunque en teoría sería posible adjuntarlo a la mano y utilizar el parámetro offset para indicar la posición. A grosso modo, esta es la idea y creo que es aplicable en cualquier otro motor, no solo Ogre.

Comentarios