Creación de animaciones por código en Unity

Meleagant

Pues eso, la única documentación que he conseguido encontrar explica cómo crear animaciones en el editor de Unity, pero lo que quiero es crearlas dinámicamente por código, para que si tengo 10 animaciones que son iguales, pero cambia el color, o lo que sea, simplemente asignarles proceduralmente el nombre de los frames correspondientes, en lugar de hacer las 10 manualmente (y son muchas más).

Supongo que alguien más se habrá visto en esta situación, a ver si podéis echarme un cable :f5:

txandy

#1 creo que para esas cosas se utiliza el Animation Override Controller, pero sigue siendo visual :\

1 respuesta
mr_badger

No creo que pueda ayudarte, pero cuando hablas de animaciones a que te refieres exactamente? Sprites animados, animacion 3d con bones?

1 respuesta
13500

Puedes crear una animación normal, pero que salte un evento a mitad de la misma para modificar el parámetro que quieras

FernandoA

No me queda nada claro que es lo que quieres, depende de con que estés trabajando exactamente como dice #3. Prueba a mirar ésto por si te sirve:
AnimationClip.SetCurve

Pero como ya dije, depende. Si usas Animator ésto no te va a valer y deberás hacer como dijo #2, una animación con el movimiento en una capa y otra con el cambio de color en otra, si no me equivoco.

Meleagant

Muchas gracias a todos por las respuestas.

Lo que quiero es, si tengo 1 personaje con las siguientes animaciones:

  • Andar hacia arriba
  • Andar hacia abajo
  • Andar hacia la derecha
  • Saltar
  • Bailar la jota aragonesa

Cada una de esas animaciones viene definida por una serie de sprites, a saber:

character_walk_left_1, character_walk_left_2, ...

Ahora pensad que hay muchos personajes, cada cual con las mismas animaciones, pero con distintos sprites. Entonces los sprites se llamarian algo asi como:

character[type]walk_left_1, character[type]walk_left_2, ...

Como son muchas animaciones, y muchos tipos de personajes, hacerlo a mano es un incordio, aparte de que me parece una mala práctica, porque si en el futuro queremos añadir más personajes, tenemos que volver a hacerlo a mano, cuando precisamente para eso está la programación.

AnimationClip es más o menos lo que necesito, pero lor lo que he podido indagar, existe una clase llamada ObjectReferenceKeyframe que no aparece en la documentación ni se menciona por ninguna parte, y es la que hay que usar para crear los frames del AnimationClip.

Aquí un post donde se habla de esta clase fantasma:

http://answers.unity3d.com/questions/595877/object-reference-keyframe-.html

FernandoA

Pues ahí lo lamento pero ya no puedo ayudarte mucho. De animaciones en 2d con Unity ni idea, y mucho menos en base a sprites. Quizás haya alguien que te pueda decir algo del tema. De todos modos tiene pinta de que vas por buen camino, aunque eso si, buscando información sobre eso es verdad que poco hay.

Usuarios habituales

  • FernandoA
  • Meleagant
  • 13500
  • mr_badger
  • txandy

Tags