Source SDK

Source SDK

Not enough ratings
Blend sequence "secuencia"
By Oitnemood
versión traducida de la guía oficial de valve de blend sequence aquí el link
https://developer.valvesoftware.com/wiki/Blend_sequence

blend sequence
Es una secuencia de blend es un $sequence que puede moverse sin problemas entre $animations en función de uno o dos valores deslizantes de "escala de blend". Esto permite que el estado de la animación se controle fácilmente mediante código.
Caminar y apuntar en dirección casi siempre están determinados por secuencias de blend.
   
Award
Favorite
Favorited
Unfavorite
Creación de secuencias de blend
El número ideal de animaciones en una secuencia de blend depende de cuán preciso sea el movimiento y de la cantidad de variación que haya a lo largo de las escalas de mezcla. Valve usa nueve para sus mezclas para caminar (véase el ejemplo siguiente). Con mezclas que producen una pose fija en lugar de una animación se puede salir con la suya para cada extremo, pero puede encontrar más fácil trabajar con una tercera animación central para la posición cero.
Una vez que tenga sus animaciones, simplemente enumere dentro del bloque keyvalue de la secuencia en el orden deseado. Se distribuirán uniformemente a lo largo de la escala de blend.



  • blend <nombre de cadena> <float min> <máximo de float >

Define un controlador de mezcla. Si blendwidth se define, el primer controlador se mueve hacia arriba/hacia abajo a través de la mezcla “blend” y el segundo (si está presente) izquierda/derecha.

  • blendwidth <ancho int>

Cuántas columnas de animaciones contiene la mezcla (blend). El número de filas se determina automáticamente.

  • blendcenter <secuencia de cadenas>

Define la secuencia que se utilizará en el centro de la mezcla. (0 0) Esta puede ser cualquier secuencia en la mezcla.

  • blendref <secuencia de cadenas>

Define la secuencia que se utilizará para alinear la mezcla. Esta puede ser cualquier secuencia en la mezcla (blend).

  • calcblend <nombre de cadena> <cadena de fijación> <XR YR ZR>

Blend Ejemplo

En este ejemplo se crea una mezcla (blend) de caminar de 9 vías, adecuada para su uso con CBasePlayerAnimState. Los juegos anteriores de Valve utilizan mezclas de 8 vías; comprueba si los modelos existentes de tu juego tienen move_x/move_y (9 vías) o move_yaw (8 vías) para determinar qué debes crear. Consulte los modelos de HL2 de ejemplo del SDK para obtener un ejemplo de 8 vías.

// Defina los nueve walk_* $animations por encima de este comando (¡utilice walkframe!)

  • $sequence walk {
  • walk_SW walk_S walk_SE
  • walk_W walk_C walk_E
  • walk_NW walk_N walk_NE // saltos de línea son sólo para legibilidad

  • blendwidth 3
  • blend move_x -1 1
  • blend move_y -1 1

  • addlayer look // blends dirección de mirada / puntería en la parte superior de la dirección del paseo
  • }

Calculo de blend Ejemplo
En este ejemplo se crea una secuencia delta de blend de aspecto de 9 vías. usando el caldo

  • // Defina los nueve look_* $animations por encima de este comando con resta

  • $sequence look {
  • lookDR lookD lookDL
  • lookR "anims\referencepose.smd" lookL
  • lookUR lookU lookUL

  • blendwidth 3
  • calcblend head_yaw "anim_attachment_head" YR
  • calcblend head_pitch "anim_attachment_head" ZR
  • delta

  • }

El valor de salida de los rangos deslizantes de blend ahora debe basarse en la rotación relativa del archivo adjunto definido.
Animación para secuencias de blend.
No hay nada particularmente especial en las animaciones individuales que componen una secuencia de blend. Sin embargo:
1. Es importante que cada animación sea de la misma longitud y se reproduce en la misma velocidad de fotogramas
2. Utilice walkframe si la animación está pensada para el movimiento
3. En el paquete de modelado, asegúrese de que los fotogramas clave del hueso raíz estén configurados en interpolación lineal (es decir, una línea recta) para evitar que la velocidad "se tambalee"
1. Para garantizar que la velocidad coincida con la animación 1:1, tenga en cuenta los fotogramas totales de una animación. Por ejemplo, un ciclo de carrera de 18 fotogramas que mueve 200 unidades dará como resultado una velocidad de 333,33