Source SDK

Source SDK

Not enough ratings
$animation "animaciones para un modelo" - Motor source
By H-H-G-M
versión traducida de la guía de valve $animation
https://developer.valvesoftware.com/wiki/$animation

El $animation del comando QC se utiliza para $sequences con las características avanzadas. La convención de nomenclatura es confusa, y probablemente está relacionada con $animation que se sobrecargan en algún momento entre Source y GoldSrc, lo que requiere $sequence que crear.
   
Award
Favorite
Favorited
Unfavorite
Sintaxis
A diferencia de $sequence, $animation solo tiene un modo. Las opciones pueden estar en la misma línea o definirse en una clase como form, con una apertura { y cierre }.

  • $animation <name> <skeletal animation smd> <options>

Consejo: Anexar _a al final de $animation nombres para evitar confusiones con $sequences.

Opciones
Bucle
Hace el bucle de secuencia desde el primer fotograma.
fixuploop <int|pre-loop frame> <int|post-loop frame>
Encuentra la diferencia entre el último y el primer fotograma de la animación y los ajusta para mezclarlos suavemente a través del contorno.
startloop <int|local frame>
Restablece el fotograma inicial de una animación en bucle. Esto es útil al crear secuencias que tienen varias animaciones y las animaciones deben ejecutarse todas juntas en fase, pero las animaciones de origen no coinciden del todo.
fudgeloop
Las animaciones en bucle, al menos las que tienen movimiento, necesitan el primer y último fotogramas para que coincidan con la posición <ideally> así como para tener movimiento. La razón de esto es que studiomdl necesita indicar al motor exactamente hasta dónde mover el modelo entre el "último" fotograma clave único y el "primero" fotograma clave al calcular esos últimos fotogramas de interpolación. Dado que este último pequeño 1/30 o 1/10 de una segunda distancia probablemente no es exactamente la misma distancia que el fotograma clave anterior ni es probablemente exactamente la misma distancia que el movimiento promedio por fotograma, saltarse la definición de la superposición puede causar un enganche o una diapositiva del pie durante la reproducción si studiomdl adivina mal.
Si por alguna razón seria el animador no puede crear la última superposición de fotogramas, esta opción indica a studiomdl que asuma que el movimiento es el movimiento promedio por fotograma visto hasta ahora en la animación y que necesita crear el propio fotograma por superpuesto.
Movimiento mundial
walkframe <int|frame> <LX LY LZ LXR LYR LZR>
Hace que el modelo se mueva por el mundo, tal como se define por el movimiento de su hueso radicular.
1. marco es el marco en el que finalizar el movimiento en la dirección dada. A menos que el modelo cambie de dirección a mitad de camino a través de la animación, probablemente debería establecerse en la última.
 LX, LY etc. are the axes from which to extract movement. R stands for 'rotation'.
There can be up to 64 chained walkframes per $animation.
<string|motion extract axis>
Las animaciones de movimiento son más fáciles de crear si el modelo realmente avanza, pero para la reproducción en el juego debe "caminar sobre el terreno". Este comando resuelve el problema quitando la traducción de hueso raíz de una animación. Los ejes aceptados son:
 X, Y, and Z
 LX, LY and LZ - el hueso raíz se mueve a lo largo del eje hasta que la animación se completa a medias y, a continuación, vuelve a su posición original.
Consejo: Puede extraer movimiento de cualquier combinación de ejes. Sólo pon un espacio entre cada uno.
Blending “mezcla”
subtract <$animation/$sequence name> <int|frame>
resta literalmente esta animación de otra. La animación restada debe ser utilizada por un $sequence "delta",momento en el que se agregará a (en lugar de reemplazar) la pose existente. Esta es una manera de mezclar secuencias juntas; ver $weightlist para el otro.
nombre presubtract <$animation/$sequence>
Resta el primer fotograma de la animación especificada. Para hacer: Seguramente lo mismo que restar<anim> 0?
lineardelta
splinedelta
Resta una mezcla lineal o spline (curva s) de los fotogramas primero y último.

Alineación

alignto <goal_animation>
Esto cambiará la animación actual para que la posición raíz del primer marco <local> coincida con la posición raíz <X y el eje Y solamente> del primer fotograma (local) de otra animación. Esto es útil cuando las animaciones no se inician en el origen, o cuando se corta solo una pequeña pieza de una animación de origen más larga y se necesita una forma rápida de alinearla con un origen compartido.
align <reference_animation> <X Y Z XR YR ZR> <reference_frame> <to_match_frame>
Esto es similar a alignto, excepto que puede especificar cómo deben coincidir las dos animaciones y que el <to match frame> de la animación está alineado con el marco <reference> de la animación <reference>. Esto es útil al alinear animaciones con movimiento vertical.
alignboneto <bone_name> <goal_animation>
Igual que alignto, pero coincidirá con el hueso especificado en lugar de la raíz.
match <animation>
Hace que el primer fotograma de la animación coincida con el primer fotograma de la animación especificada y, a continuación, aplica la diferencia entre los dos fotogramas a todos los fotogramas de subsecuencia. Esto se utiliza principalmente para corregir animaciones que se supone que deben comenzar en una pose común, pero no por alguna razón incontrolable.
walkalignto <frame> <reference animation> <LX LY LZ LXR LYR LZR>
Al igual que walkframe, pero en extrae el movimiento de tal manera que en <frame>, el modelo está alineado con la animación de referencia <especificada>. Esto es útil cuando se intenta extraer el movimiento dentro de una animación que se usa para la transición entre dos animaciones existentes.
walkalign <frame> <reference animation> <LX LY LZ LXR LYR LZR> <reference frame> <to match frame>
Al igual que walkalignto, pero el movimiento se calcula de tal forma que el marco <to match> coincide con el marco <reference> de la animación <reference>. Esto es útil cuando el último fotograma que se utiliza para extraer movimiento no coincide del todo con una animación de objetivo, pero sí lo hace un fotograma posterior.
rotateto <angle>
Busca la dirección actual de movimiento <utiliza el primer movimiento si hay varias piezas>, a continuación, gira la animación para que el movimiento resultante esté en la dirección especificada.
Utilidad
weightlist <string|$weightlist name>
Esto copia una lista predefinida de pesos óseos en la animación actual. Puede hacerlo en cualquier número de veces por animación, lo que puede ser útil ya que las opciones posteriores restan, coinciden y fijan opciones solo funcionan en huesos con pesos > 0. La última opción de lista de peso especificada es la que utiliza el sistema de animación al realizar la fusión. Las secuencias que utilizan varias animaciones deben hacer que todas sus animaciones de origen usen la misma lista de peso o que los resultados no estén definidos.
Todas las animaciones tienen el valor predeterminado en una lista de peso que asume que todos los huesos tienen un peso de 1,0. Sólo los huesos con un peso > 0 tendrán alguna influencia sobre la animación. Listas de peso especificadas por QC:
 $weightlist no_hands "Bip01" 1.0 "Bip01 L Hand" 0.0 "Bip01 R Hand" 0.0
 $weightlist head_n_arms "Bip01 Spine 2" 1.0
cmdlist <string|$cmdlist name>
Vínculos a una $cmdlist de opciones de $animation compartidas.
frames <int|start> <int|end>
Seleccione un rango de fotogramas del SMD que desea utilizar. marco también se acepta.
noanimation
Hace el aditivo de animación, elimina toda la animación, cero sale de la lista de peso y establece una marca para que en tiempo de ejecución el motor se salte todo el procesamiento de la si es lo único que contribuye a la secuencia. Esto es útil para secuencias mezcladas donde la posición "cero" no debe tener ningún efecto en el modelo.
derivado <escala>
Convierte la animación en la derivada de sí misma simplemente restando el fotograma anterior de cada fotograma de la animación. El derivado se puede escalar automáticamente para compensar cualquier problema de fps.
fps <scale>
La velocidad de la animación (predeterminado suele ser 30).
comprimir <omitir>
Convierte una animación en una versión fps inferior de sí misma usando solo cada fotograma Nth. Convierte automáticamente los valores fps especificados en un nuevo equivalente.
numframes <frames>
Obliga a una animación a ser un número especificado de fotogramas, ya sea recortando la animación o duplicando el último fotograma hasta que se haya rellenado con suficiente.
Desconocido
noautoik
autoik
Para hacer: Relacionado con la cinemática inversa,pero más allá de eso...