2009-04-01 23 views
6

¿Cuáles son las diferentes maneras de manejar animaciones para juegos en 3D? ¿Programa de alguna manera las animaciones en el modelador y, por lo tanto, el archivo, que las leye y las implementa en el juego, o crea funciones de animación para animar sus vectores estáticos?Programación de animaciones 3D?

¿Dónde hay algunos buenos tutoriales para la parte de programación de esto? Google solo me dio el lado del modelador.

+0

Esto también puede ser útil (un sistema óseo básico para modelar): http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System – hithere

Respuesta

18

En entornos de producción, los animadores utilizan herramientas especializadas como 3DS Max de Autodesk para generar animaciones con fotogramas clave de modelos 3D. Para cada animación de cada modelo, el animador construye una serie de poses para el modelo llamado fotogramas clave, que luego se exportan al formato de datos del juego.

El juego carga estos fotogramas clave y, para animar el modelo en un momento determinado, selecciona los dos fotogramas clave más cercanos e interpola entre ellos para obtener una animación suave, incluso con un número reducido de fotogramas clave.

Los modelos animados generalmente se construyen con una jerarquía ósea. Hay un hueso raíz, que controla la ubicación y la orientación del modelo en el mundo del juego. Todos los demás huesos se definen en relación con algunos huesos parentales para crear un árbol. Cada vértice del modelo está vinculado a un hueso particular, por lo que el modelo se puede controlar con un número mucho menor de parámetros: las posiciones relativas, las orientaciones y las escalas de cada hueso.

Smooth skinning es una técnica utilizada para mejorar la calidad de las animaciones. Con un desollado suave, un vértice no está ligado a un solo hueso, pero puede unirse a múltiples huesos (por lo general, se establece un límite estricto, como 4, los vértices rara vez necesitan más de 3) con los pesos correspondientes. Esto hace que el trabajo del animador sea más difícil, ya que tiene que trabajar mucho más con vértices cerca de las articulaciones, pero el resultado es una animación mucho más suave con menos distorsión alrededor de las articulaciones.

Alternativamente, algunos juegos usan animación de procedimiento, por el cual los datos de animación se construyen en tiempo de ejecución. Las posiciones y orientaciones de los huesos se calculan de acuerdo con algún algoritmo, como inverse kinematics o ragdoll physics. Por supuesto, hay otras opciones disponibles, pero deben ser codificadas por los programadores.

En lugar de animar los huesos y usar la cinemática de avance para determinar la ubicación de todos los vértices del modelo, otra opción es simplemente generar la posición de cada vértice por sí solo. Esto permite animaciones más complejas que no están vinculadas por jerarquías óseas, pero por supuesto es mucho más complicado y mucho más difícil de hacer bien.

3

¿Maneras diferentes de manejar la animación en juegos?

Para los personajes, por lo general:

  1. esquelético Deformación
  2. Blend da forma a
  3. mallas A veces incluso completamente animados (LA Noire hizo.)
  4. En la reciente Tomb Raider se utiliza un cómputo trabajo para simular miles de splines para el cabello, y los vértices están controlados por estas splines con un sombreado de vértices.

A menudo, estos son impulsados ​​por la animación fotograma clave que se interpola en tiempo de ejecución, y, a veces nos agregar código para conducir las influencias (huesos, pesos, etc.) blendshape procesalmente.

Para algunos objetos simples que se mueven rígidamente, a veces el diseño tendrá control de animación sobre todo el objeto sin tener que deformarlo. A veces, se puede hacer que cosas simples como los arbustos se muevan utilizando algo parecido a las formas de fusión en las que tienes una pose de malla completa en algunos extremos y te mezclas de esos extremos.

En cuanto a los tutoriales ... bueno ... ¿Está interesado en escribir los cálculos de la animación usted mismo o está más interesado en obtener un personaje animado en su juego y centrarse en la jugabilidad?

Para simplemente hacer la jugabilidad, Unity es una plataforma bastante buena para jugar.

Si no está sin embargo interesados ​​en comprender las matemáticas para animaciones o juegos en general, esto es lo que había leído sobre como imprimación:

  • Las matrices utilizadas para las transformaciones 3D (asegúrese de que entiende la conmutativa , asociativas y distributivas leyes, y aprender lo que representa cada fila y columna - que son más simples de lo que parecen)
  • cuaterniones para las rotaciones (menos intuitivos, pero estrechamente acoplados a un eje y la rotación)

y Don' t deja fuera el conceptos básicos:

  • vectorial Dot Product
  • vectorial Cruz Producto

también como hace 10 años escribí una biblioteca de animación simple, que es bastante simple, libre de la mayoría de los conceptos más anticipadas por lo que es no es un mal lugar para buscar si quieres tener una idea básica de cómo funciona: http://animadead.sf.net

¡Buena suerte!