Buenas,
esta semana he retomado un editor de sprites que estaba haciendo y le he dado un pequeño avance...
como siempre se me ha ido la olla y me he metido en más de lo que que me había planteado...
mi intención era integrar un sistema esqueletal de transformaciones 2d, con interpoladores para posición, rotación y escalado, más unos interpoladores de color y de frame actual, y hacerlo independientemente del framework xna, y de estar forma crear un package con el spritesheet y las animaciones que le afecten de forma independiente.
Casi todo lo tenia hecho de un proyeto anterior... pero se me vino a la mente la idea de deformar un sprite usando el sistema esqueletal, es decir, si triangulizo un sprite, aplicarle las transformaciones a esos vertices por separado, vamos, haciendo blending de transformaciones por vertice.
El tema es que lo he implementado, pero no me termina de convencer, y creo que hay dos motivos:
1. Para interpolar uso las transformaciones absolutas de los bones, debería hacerlo de forma relativa
2. Asigno el mismo peso a todos los vertices influenciados por un bone.
No soy mucho ducho en editores 3D y no se como lo hacen, pero me imagino que tendrán que solucionarlo de una manera parecida.
Mi primer proposito es atacar el punto 1, pero no se como atacar el punto 2...
Aquí dejo un enlace a mi ultima build (http://www.charcostudios.com/files/asset_manager_2.rar)del proyecto. Tienes que clickar el botón de animaciones para mostrar la parte que estoy desarrollando actualmente.
Seguramente cascará.. y no se pueden añadir bones ni imágenes todavía... porque me he centrado en la funcionalidad.
En el árbol se pueden ver distintos tipo de bones:
Normales:
Imagen: Muestran un sprite.
Influencia: Es un bone que inlfuencia a una imagen y tiene un nodo shape asociado
Shape: Permite seleccionar los vertices de la imagen influenciados por el bone de influencia asociado al bone imagen.
En el shape es donde tengo que cambiar los pesos... pero no se me ocurre algo que pueda hacerse de forma gráfica...umm...
salvo alguna especie de puntos de fuerza con un radio de accion y un ratio de atenuacion....
Aunque intuyo que haciendo las influencias de forma relativa mejorará bastante.
También si alguien tiene un rasterizador de triangulos para winforms me vendría muy bien... :)
Bueno, he consultado con la almohada, y no he cambiado mucho, simplemente he organizado mejor las transformaciones, porque las otras ideas aunque a la hora de trabajar seguro que son mas intuitivas, a la hora de codificarlas añaden una complejidad que no me apetece desarrollar...
El caso es que hace lo que quería... he actualizado el enlace con la ultima versión... solo hay que rotar el "Bone 2" para ver la transformación de la malla del sprite.
Esta noche colgare un vídeo. ;)
Aunque lo que me sigue faltando es un rasterizador de triángulos 2d para winforms... que ya les vale a los chicos de ms.
Ahí va el vídeo ....
http://www.youtube.com/watch?v=-jmV73tl_7g
Dentro de lo que cabe hace lo que quería... la pena es que no es facil texturizar los triángulos en winforms... y de momento no me merece la pena ponerme a currarme un rasterizador... entre otras cosas porque a través del gdi y en software supongo que iría matado...
en fin ... ya se verá dijo el ciego...
Un saludo
Como te gustan las tools :) Muy chulo el video la verdad.
Qué chulo!!!! Se pueden hacer cosas muy interesantes con bones en 2D :P
@Vicente: Es lo mio... a ver si empujoncito a empujoncito consigo unificar todo... :)
@Xña: La verdad que si... :)
Saludos...
Pues se ve bastante bien, felicitaciones
Gracias...
Aquí ya se ve algo mejor todavía... ;)
http://www.youtube.com/watch?v=4RhAGEUFNmQ
Me sumo a todas la felicitaciones que te están llegando. Me gusta, estoy viendo como ha chocado el coche contra la cabina..
Puff... temo que para que un coche choque, si que falta mucho... ^_^'
Un saludo
Mola mucho si señor :) Tuitealo hombre con los tags de XNA que seguro que lo ve mas gente!
Es la puta ostia!!! se sale!!
Bueno, considera que por ahora es el coche invisible del señor invisible en la ciudad invisible contra la cabina que NO es invisible....uff, sin comas.
Esto es el generador de sprites, ¿no? El coche ya llegará con el juego...quien dice coche dice tipo enorme que juega a rugby y no se ha dado cuenta de que se ha salido del campo de juego.
En serio, se ve espectacular.
:o
Gracias por los ánimos... ;)
Cita de: jmtu en 18 de Enero de 2012, 07:36:33 AM
Esto es el generador de sprites, ¿no?
Si, es la siguiente evolución, la ide es facilitar el manejo de sprites al máximo, tanto para animación tradicional como para animación skeletal.
El lo que tiene no ser artista, que tengo que suplirlo con estas cosas... :D
Nueva iteracion con la parte de timeline para las transformaciones más pulida, y la parte de las hojas de sprites incorporada.
http://www.youtube.com/watch?v=0wiuhZeq1cs
Uau!!!! La verdad es que el editor me parece una auténtica pasada!!! No está nada mal eso que haces al final para crear las cjas de los sprites...
Feliciades!! :D
Que pasada! Mola mucho blau.
Por cierto me podrías decir que programa usas para capturar el vídeo?
:)
Para capturar uso el camtasia, y es muy recomendable...
asias :)
Joer se ve que te cagas! :)
Impresionado me hallo. Felicidades.