MAura
CombatCombate

Ten combat techniques, one at a time. Diez técnicas del combate, una a una.

Each video shows one technique of the combat system in slow motion and puts it next to what happens without it. They are recorded from the engine, in the CombatLab test bench, with a Lua script directing the scene; the numbers on screen are read from the engine as it runs.Cada vídeo enseña una técnica del sistema de combate a cámara lenta y la pone al lado de lo que pasa sin ella. Están grabados del propio motor, en el banco de pruebas CombatLab, con un guion en Lua que dirige la escena; los números que salen en pantalla se leen del motor mientras corre.

01 · AnimationAnimación

Root motionRoot motion

Movement is taken from the clip itself and handed to physics. The character moves exactly as far as the animation steps, so the feet do not slide, and a wall still stops it because the motion enters the controller as a push.El desplazamiento sale del propio clip y se le pasa a la física. El personaje avanza exactamente lo que pisa la animación, así que los pies no patinan, y un muro lo sigue parando porque el movimiento entra en el controlador como un empuje.

Without itSin él
The code moves the character and the feet slideEl código mueve al personaje y los pies resbalan
With itCon él
Each footprint stays where the foot landsCada huella se queda donde pisa
In the engineEn el motor
A flag per controller and per clipUn flag por controlador y por clip
02 · CombatCombate

Motion warpingMotion warping

When an attack starts, the step the clip carries is scaled so the swing ends at the requested distance from the target: stretched when it is far, cancelled when it is right on top, and capped so it never turns into a teleport.Al empezar un ataque, el paso que trae el clip se escala para que el golpe acabe a la distancia pedida del blanco: se estira si está lejos, se anula si lo tiene encima y tiene un tope para que nunca sea un teletransporte.

Without itSin él
From 2.8 m the swing stops 1.6 m shortDesde 2,8 m el golpe se queda a 1,6 m
With itCon él
It ends 1 m away and landsAcaba a 1 m y conecta
In the dataEn los datos
warp = { distance, max }warp = { distance, max }
03 · AnimationAnimación

Animation eventsAnimation events

Named marks inside the clip (hit_start, hit_end, combo_open...) that the engine fires as events in clip time. The blade opens when the animation says so, not a fixed number of seconds after the button press.Marcas con nombre dentro del clip (hit_start, hit_end, combo_open...) que el motor dispara como eventos en tiempo de clip. El filo se abre cuando lo dice la animación, no a tantos segundos de pulsar.

With a timerCon temporizador
Speed the swing up and the blade opens lateSi el golpe va más rápido, el filo se abre tarde
With marksCon marcas
The mark follows the motion at any speedLa marca sigue al gesto a cualquier velocidad
In the engineEn el motor
animmarks.lua per game, anim:<name> eventsanimmarks.lua por juego, eventos anim:<nombre>
04 · AnimationAnimación

Animation layers & bone masksCapas y máscaras por hueso

A clip can play as a layer from one bone up, on top of locomotion. On the move, the attack only drives the torso and arms while the legs keep walking; standing still, the swing goes back to full body so it keeps its reach.Un clip puede sonar como capa desde un hueso hacia arriba, encima de la locomoción. En movimiento, el ataque solo mueve el torso y los brazos y las piernas siguen andando; parado, el golpe vuelve a ser de cuerpo entero para no perder alcance.

Full bodyCuerpo entero
The attack replaces the body and the character plantsEl ataque sustituye al cuerpo y el personaje se planta
LayeredCon capa
It attacks without stoppingAtaca sin dejar de andar
In the dataEn los datos
mask = { bone, feather }mask = { bone, feather }
05 · AnimationAnimación

Foot IKFoot IK

An analytic two-bone solver per leg (law of cosines, no iteration) takes each foot to the ground below it, and the hips drop as far as the lower foot needs. The foot keeps the orientation the animation gave it.Un solver analítico de dos huesos por pierna (ley del coseno, sin iterar) lleva cada pie al suelo que tiene debajo, y la cadera baja lo que pide el pie más bajo. El pie conserva la orientación que le dio la animación.

Without itSin él
On a 16 cm kerb one foot hangs in the airEn un bordillo de 16 cm un pie queda en el aire
With itCon él
Each foot lands on its own levelCada pie pisa su nivel
CostCoste
One ray per footUn rayo por pie
06 · CombatCombate

Weapon sweepBarrido del arma

The blade is a segment swept from one frame to the next with substeps. Even when the tip travels more than a metre between two frames there is no gap for a hit to slip through, and each enemy counts only once per swing.La hoja es un segmento que se barre de un fotograma al siguiente con subpasos. Aunque la punta recorra más de un metro entre dos fotogramas, no queda ningún hueco por el que se escape un golpe, y cada enemigo cuenta una sola vez por gesto.

Frame by frameFotograma a fotograma
At 30 fps a thin post falls into a gapA 30 fps un poste fino cae en un hueco
SweptBarrido
The whole path is covered: it hitsCubre todo el recorrido: toca
In LuaEn Lua
set_blade{ a, b, radius }set_blade{ a, b, radius }
07 · CombatCombate

Hit stopHit stop

On contact the whole world runs at 1/20 for a few frames and the camera kicks towards the blow. Heavy hits stop longer and shake harder. The stop is counted in real time and the game stays deterministic.Al conectar, el mundo entero va a 1/20 durante unos fotogramas y la cámara da un empujón hacia el golpe. Los golpes fuertes paran más y sacuden más. La parada se cuenta en tiempo real y el juego sigue siendo determinista.

StopParada
0.06 s at 1/20 (×1.8 when heavy)0,06 s a 1/20 (×1,8 el fuerte)
CameraCámara
A 0.10 m kick that dies out on its ownSacudida de 0,10 m que se apaga sola
In LuaEn Lua
hit_stop() and camera_impulse{}hit_stop() y camera_impulse{}
08 · CombatCombate

Hit reactions & poiseReacciones y aplomo

Health, damage, immunity and poise live in the engine. The side the hit comes from picks the reaction clip, and when poise runs out the next hit is a stagger instead of a flinch.La vida, el daño, la inmunidad y el aplomo viven en el motor. El lado por el que llega el golpe elige el clip de reacción, y cuando el aplomo se agota el siguiente golpe es un tambaleo y no una reacción.

SidesLados
Front, back, left and rightDelante, detrás, izquierda y derecha
LevelsNiveles
Flinch, stagger, deathReacción, tambaleo, muerte
In LuaEn Lua
set_health{} and health()set_health{} y health()
09 · CombatCombate

Action systemAction system

Attacks are a data table: clip, phases from marks, chain, cancels, input buffer and i-frames. The same machine drives the player and the enemies; the script only decides the policy.Los ataques son una tabla de datos: clip, fases por marcas, cadena, cancelaciones, buffer de entrada e invulnerabilidad. La misma máquina mueve al jugador y a los enemigos; el script solo decide la política.

ChainsCadenas
A combo window marked in the clipUna ventana de combo marcada en el clip
BufferBuffer
0.35 s: no press is lost0,35 s: no se pierde ninguna pulsación
CancelsCancelaciones
Only during recoverySolo en la recuperación
10 · AnimationAnimación

Morph targets & facesMorph targets y cara

Blend shapes evaluated on the GPU, and in the ray tracing too. On top of them, the face: expressions with smooth transitions, automatic blinking and speech from text with one viseme per letter. The three layers add up without clashing.Blend shapes evaluadas en la GPU, y también en el trazado de rayos. Encima, la cara: expresiones con transición suave, parpadeo automático y habla desde texto con un visema por letra. Las tres capas se suman sin pisarse.

MorphsMorphs
72 on a SideKick head, ARKit names72 en una cabeza SideKick, nombres de ARKit
ExpressionsExpresiones
12 presets12 preajustes
SpeechHabla
From text, no audio neededDesde texto, sin audio

Note: the SideKick characters and the Synty characters seen in these videos are not included with MAura. They are sold separately and have to be downloaded from Synty's website.Nota: los personajes SideKick y los de Synty que salen en estos vídeos no vienen incluidos en el motor. Se venden aparte y hay que descargarlos desde la web de Synty.

Everything the engine doesTodo lo que hace el motor See the demosVer las demos