ÍCORLa Hora
Subir a las Entrañas
CAPÍTULO IX · FASE 3 · VERTICAL SLICE Y TRÁILER

Blender en el pipeline de ÍCOR

Blender entra en el proyecto como banco de medida y como taller: mide los esqueletos y las animaciones de los tres héroes, descubre por qué el martillo del herrero salía al revés y modela tres piezas propias que ya están en el juego.

Blender en el pipeline de ÍCOR

Capítulo IX

Un circuito de ida y vuelta con el motor

Blender no sustituye a Unreal: el producto sigue siendo del motor. Lo que hace es medir lo que el motor no enseña y fabricar lo que el proyecto no tenía.

15
Animaciones medidas
5 por héroe, fotograma a fotograma
3
Esqueletos revisados
130, 115 y 125 huesos
1
Error corregido en el código
el martillo del herrero
3
Props propios
Clavo, brasero y lecho de brasas
  1. Exportar

    Un script del editor saca a FBX las mallas y las animaciones, y a JSON lo que el FBX no lleva: sockets, pose de referencia y banderas de root motion.

  2. Medir en Blender

    Scripts de Blender montan cada héroe con su armadura, recrean los sockets y miden pesos, deformación y pies en cada fotograma.

  3. Corregir

    Lo que sale mal se arregla en el proyecto: en el código del enganche o con piezas nuevas modeladas en Blender.

  4. Comprobar en el motor

    Otro script del editor vuelve a medir en Unreal y saca las capturas del antes y el después.

HerramientaQué hace
blender_exportar.py (editor)FBX de los tres héroes, sus 15 animaciones y el herrero; sockets y pose en JSON
heroes_analizar.py (Blender)Jerarquía, pesos, deformación, pies y root motion; un .blend por héroe
heroes_capturas_gui.py (Blender)Capturas del visor, del editor de gráficas y de la hoja de tiempos
herrero_martillo.py (Blender)Diagnóstico del martillo y cálculo del enganche bueno
props_icor.py (Blender)Modelado, UV, horneado PBR y FBX de los tres props
blender_importar_props.py (editor)Importación, material maestro, instancias y capturas en el motor

Todo es reproducible. Cada paso es un script versionado: el motor se usa de uno en uno a través de tools/motor.ps1, y Blender se lanza por línea de órdenes. Volver a medir un héroe tarda unos 20 s.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (esqueletos y pesos)

Tres esqueletos, hueso a hueso

La malla base de cada héroe se importa con su armadura y sus sockets del motor, que se recrean en Blender como ejes colgados de su hueso.

Aurel Gris en el golpe del ataque fuerte, con los huesos delante.
Aurel Gris en el golpe del ataque fuerte, con los huesos delante.
Hwan en el ataque fuerte.
Hwan en el ataque fuerte.
Ilse en el ataque fuerte.
Ilse en el ataque fuerte.
Aurel GrisHwanIlse
Huesos de la malla / del esqueleto130 / 180115 / 130125 / 160
Huesos que pesan vértices115103113
Profundidad de la jerarquía101010
Huesos del armasword_bottom → sword_top, escudo en el antebrazoweapon_r, weapon_l y una funda en la espaldaweapon_r y weapon_l, con dos cintas cada una
Sockets del motor302333
Huesos de tela y sueltos20718

La raíz. En el FBX, el hueso root pasa a ser el objeto armadura de Blender, y su animación sería la del objeto. En las 15 animaciones es constante: ninguna tiene root motion. En el juego, el desplazamiento lo pone el código.

El IK de los pies. ik_foot_l e ik_foot_r siguen a los pies con un error máximo de 0,11 cm: el IK de pies del motor puede apoyarse en ellos para adaptar las pisadas al terreno.

La tela no está animada. Ningún hueso de capa, faldón, pelo o cinta tiene curvas que cambien: el movimiento secundario es física en tiempo real. En un plano de Sequencer con la pista de animación sola, la tela queda rígida.

Huesos que sobran. Los dos faldones de cadera de Hwan no pesan ningún vértice de su armadura base: el esqueleto los comparte con otras armaduras.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (esqueletos y pesos)

Pesos de hombros, caderas y tela

Cada vértice de la malla pesa sobre uno o varios huesos. Blender lo enseña en color: en azul, el hueso no lo mueve; en rojo, lo mueve por completo.

Aurel: peso de clavículas y brazos (azul 0, rojo 1).
Aurel: peso de clavículas y brazos (azul 0, rojo 1).
Hwan: clavículas y hombros, con una mezcla muy amplia.
Hwan: clavículas y hombros, con una mezcla muy amplia.
Ilse: hombros y brazos.
Ilse: hombros y brazos.
Aurel: pelvis y muslos.
Aurel: pelvis y muslos.
Hwan: pelvis y muslos; el 40 % de sus vértices es rígido.
Hwan: pelvis y muslos; el 40 % de sus vértices es rígido.
Ilse: faldones, colas y cintas de las espadas.
Ilse: faldones, colas y cintas de las espadas.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (esqueletos y pesos)

Pesos en cifras · qué se estira y cuánto

Se mide cuántos huesos mueven cada vértice y se busca, en las cinco animaciones, el fotograma que más castiga cada zona.

Pintura de pesos del hombro derecho de Ilse en el visor de Blender.
Pintura de pesos del hombro derecho de Ilse en el visor de Blender.
AurelHwanIlse
Influencias máx. / media8 / 1,637 / 1,938 / 1,98
Más de 4 influencias2,0 %3,7 %1,8 %
Hombros mezclados81 %66 %92 %
Caderas mezcladas86 %53 %55 %
ZonaPeor fotogramaGiroEstiramiento p95 / p99Caras aplastadas
Aurel · hombroshabilidad, f45131°+20 % / +70 %26
Aurel · caderashabilidad, f49128°+14 % / +84 %21
Hwan · hombrosataque fuerte, f4170°+37 % / +119 %78
Hwan · caderashabilidad, f093°+21 % / +47 %21
Ilse · hombrosataque fuerte, f4156°+37 % / +127 %65
Ilse · caderasataque fuerte, f4149°+25 % / +56 %54

Lectura. Ningún vértice está sin peso y todos suman 1. Los hombros de Hwan e Ilse se estiran mucho en la carga del ataque fuerte, cuando el brazo pasa por detrás de la cabeza: son uno o dos fotogramas, invisibles a velocidad de juego. En el rodaje no se congela el plano en ellos ni se encuadra el hombro de cerca.

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) (análisis de animación)

Los pies · editor de gráficas y hoja de tiempos

La altura y la velocidad del talón y de la punta de cada pie se miden en cada fotograma y se guardan como curvas de Blender, con los apoyos marcados en la hoja de tiempos.

Editor de gráficas con la carrera de Aurel: altura de cada pie, velocidad de deslizamiento y escalones de apoyo (10 = apoya). Las líneas verticales son los marcadores de apoyo.
Editor de gráficas con la carrera de Aurel: altura de cada pie, velocidad de deslizamiento y escalones de apoyo (10 = apoya). Las líneas verticales son los marcadores de apoyo.
Hoja de tiempos de la carrera de Ilse, con un marcador en cada apoyo.
Hoja de tiempos de la carrera de Ilse, con un marcador en cada apoyo.

Cada marcador de la hoja de tiempos señala un apoyo. Con ellos se mide cuánto se desliza cada pie mientras apoya: eso es el patinaje.

0,11 cm
Error máximo del IK de pies
ik_foot_l e ik_foot_r frente a los pies
6
Ciclos de carrera medidos
Aurel, Hwan e Ilse, normal y rápida
< 2 %
Diferencia con el motor
velocidad natural, medida en Blender y en Unreal

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) (análisis de animación)

Los pies · huellas y velocidad natural

La trayectoria de los pies en el marco del suelo enseña si patinan: si no deslizan, los fotogramas de apoyo se apilan en un punto.

Aurel · carrera: trayectoria de los pies en un bucle. En rojo, los fotogramas de apoyo.
Aurel · carrera: trayectoria de los pies en un bucle. En rojo, los fotogramas de apoyo.
Hwan · carrera.
Hwan · carrera.
Ilse · carrera.
Ilse · carrera.
CicloVelocidad natural (Blender)MotorPasoCadencia
Aurel · carrera350 cm/s345114 cm3,1 pasos/s
Aurel · carrera rápida857 cm/s867228 cm3,8 pasos/s
Hwan · carrera500 cm/s493147 cm3,4 pasos/s
Hwan · carrera rápida657 cm/s671164 cm4,0 pasos/s
Ilse · carrera453 cm/s454136 cm3,3 pasos/s
Ilse · carrera rápida867 cm/s870268 cm3,2 pasos/s

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) (análisis de animación)

Qué patina y cuánto

El patinaje es lo que se desliza un pie mientras apoya. En el juego la capa de locomoción ajusta la cadencia; en Sequencer, la animación se ve tal cual.

Hwan · carrera rápida
6,8 cm
Aurel · carrera rápida
13,0 cm
Aurel · carrera
14,3 cm
Hwan · carrera
17,1 cm
Ilse · carrera
17,2 cm
Ilse · ataque fuerte
19,5 cm
Ilse · carrera rápida
22,9 cm
Aurel · ataque fuerte (arrastre)
24 cm
Hwan · habilidad (lanzamiento)
34,1 cm

Peor apoyo de cada animación (cm). La línea roja marca los 10 cm a partir de los que el deslizamiento se ve en un plano de pies. Los reposos derivan menos de 0,5 cm/s, y el ataque fuerte de Hwan y la habilidad de Ilse se quedan por debajo de 4 cm.

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) (análisis de animación)

Guía para el rodaje · velocidades y huellas de la carrera rápida

Qué velocidad darle al actor en Sequencer y qué animaciones delatan el deslizamiento.

CicloMover el actor aRitmo a velocidad de juego
Aurel · carrera350 cm/s1,49
Aurel · rápida857 cm/s0,89
Hwan · carrera500 cm/s1,12
Hwan · rápida657 cm/s1,26
Ilse · carrera453 cm/s1,30
Ilse · rápida867 cm/s1,00
  • Aurel, ataque fuerte: el pie derecho se arrastra 24 cm hacia atrás levantándose 3,3 cm.
  • Aurel, habilidad: en el despegue la punta izquierda atraviesa el suelo 27,5 cm (0,17–0,22 s), y el avance de 1,8 m lo pone el código: en Sequencer hay que mover el actor.
  • Hwan, lanzamiento: el pie derecho desliza 34 cm en los primeros 7 fotogramas.
  • Ilse, carrera rápida: desliza al aterrizar y al despegar; en el centro del apoyo, solo 7–9 cm/s.
Aurel · carrera rápida.
Aurel · carrera rápida.
Hwan · carrera rápida: la que menos patina (6,8 cm).
Hwan · carrera rápida: la que menos patina (6,8 cm).
Ilse · carrera rápida: desliza al aterrizar y al despegar (22,9 cm).
Ilse · carrera rápida: desliza al aterrizar y al despegar (22,9 cm).

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) (martillo)

El martillo del herrero, al revés

Ceferino, el herrero del Campamento del Mercader, martillaba con la cabeza del martillo colgando junto al meñique. Blender midió por qué y calculó el enganche bueno.

La causa. El enganche copiaba el giro de las tenazas y le sumaba 90° de pitch. Además, la animación es de otro esqueleto y el motor la remapea por nombre de hueso: la acción del FBX no sirve tal cual. Por eso se exportó la pose que el motor da al herrero en su malla, fotograma a fotograma, y Blender la horneó hueso a hueso (0,001 cm de error en la mano).

El cálculo. El centro y el eje del puño salen de los dedos en los 7 golpes de la animación. El mango se alinea con ese eje, la cabeza va del lado del pulgar, la boca (la cara plana, de 1.794 cm² frente a los 38 cm² de la cuña) mira al yunque y el pomo asoma 1,5 cm bajo el meñique. La escala baja de 0,4 a 0,221: a 0,4 el mango era más grueso que el hueco del puño.

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) (martillo)

El martillo · esquema, medidas y comprobación

El eje del puño y el mango, antes y después, con las medidas que lo demuestran.

Esquema en Blender, antes: el eje del puño en amarillo.
Esquema en Blender, antes: el eje del puño en amarillo.
Después: el mango coincide con el eje y la boca (blanco) baja.
Después: el mango coincide con el eje y la boca (blanco) baja.
MedidaAntesDespués
Mango frente al eje del puño140°0°
Centro del puño al mango8,5 cm0,07 cm
Cabeza hacia el pulgar−31 cm+22 cm
Boca frente a la vertical142°24°
Cabeza dentro del cuerpo26 de 37 fot.1 de 37 fot.
En el motor: puño al mango10,1 cm0,04 cm
Comprobación en el motor tras el arreglo (nivel de prueba, con luz de comprobación): mango por el centro del puño y boca hacia el yunque.
Comprobación en el motor tras el arreglo (nivel de prueba, con luz de comprobación): mango por el centro del puño y boca hacia el yunque.

Lo que más enseñó. La animación de martillar comprimida, que es la que usa el juego, se aparta de la original hasta 29 cm en la mano. El agarre no cambia porque se mide en el espacio de la mano, pero cualquier medida en el mundo debe hacerse con la versión comprimida, cuando el motor ha terminado de prepararla.

Antes
Copiar el giro de otra herramienta

El martillo heredaba el giro de las tenazas más un cuarto de vuelta.

Arreglo
Medir el puño en la propia animación

Posición, giro y escala calculados con los dedos del herrero; en ICORPNJ.cpp, compilado.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (props y arte)

Tres piezas propias, modeladas por código

El Clavo de hierro forjado, junto al que reaparece el héroe; un brasero, y el lecho de brasas de la forja. Ninguna sale de un pack: las tres son nuestras.

El Clavo en Eevee: 4,48 m de hierro retorcido 75°, clavado en un zócalo de losas que se levantan hacia el centro.
El Clavo en Eevee: 4,48 m de hierro retorcido 75°, clavado en un zócalo de losas que se levantan hacia el centro.
La cabeza de rosa con su cuenco de brasas, donde arde el fuego del Clavo cuando se enciende.
La cabeza de rosa con su cuenco de brasas, donde arde el fuego del Clavo cuando se enciende.
Topología: quads limpios en el vástago, biseles en todas las aristas vivas.
Topología: quads limpios en el vástago, biseles en todas las aristas vivas.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (props y arte)

El brasero y el lecho de brasas

Las otras dos piezas, en Eevee, con las medidas de las tres: tamaño, triángulos, atlas y colisión.

El brasero en Eevee: cuenco con labio enrollado, fleje remachado y tres patas de pletina con voluta.
El brasero en Eevee: cuenco con labio enrollado, fleje remachado y tres patas de pletina con voluta.
El lecho de brasas de la forja: un montículo de ceniza con 110 carbones.
El lecho de brasas de la forja: un montículo de ceniza con 110 carbones.
PropTamañoTriángulosAtlasColisiónDetalle
Clavo261 × 243 × 448 cm49.1542048²2 cascos UCXVástago retorcido, cabeza de rosa, 2 abrazaderas con 16 remaches, 4 cuñas, 7 losas, grapas y escombro
Brasero81 × 85 × 82 cm13.2381024²1 casco UCXCuenco con labio enrollado, fleje con 12 remaches, 3 patas de pletina con voluta, aro y 80 carbones
Lecho de brasas52 × 53 × 9 cm16.6401024²Sin colisiónMontículo de ceniza y 110 carbones, modelado en el espacio del hogar de la forja

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (props y arte)

Del procedural a la textura

Los materiales nacen procedurales en Blender (hierro martillado, piedra con liquen, carbón al rojo) y se hornean a imagen para que Unreal los lea tal cual.

Atlas del Clavo: el color horneado con las islas UV y los mapas ORM (oclusión, rugosidad y metal), normal en convención DirectX y emisivo.
Atlas del Clavo: el color horneado con las islas UV y los mapas ORM (oclusión, rugosidad y metal), normal en convención DirectX y emisivo.

El hierro. Abolladuras de martillo (Voronoi), aristas gastadas y brillantes, óxido en las concavidades y el color de revenido (paja, morado y azul) cerca del fuego.

La piedra. Grietas escasas, liquen, musgo en las caras de arriba y hollín alrededor del clavo.

La brasa. Brilla en los huecos entre carbones, en grietas irregulares y en manchas vivas; la cara de arriba se cubre de ceniza.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (props y arte)

Materiales de cerca

El hierro, la piedra y la brasa tal como los lee el motor: un material maestro con cuatro mapas y un emisivo que late.

El zócalo del Clavo: losas agrietadas con liquen y musgo, y abrazaderas de hierro.
El zócalo del Clavo: losas agrietadas con liquen y musgo, y abrazaderas de hierro.
Carbones angulosos sobre un lecho de ceniza.
Carbones angulosos sobre un lecho de ceniza.
El brillo sale de los huecos, no de una red de celdas.
El brillo sale de los huecos, no de una red de celdas.

En el motor. Un material maestro (M_ICOR_PropBlender) lee los cuatro mapas; el emisivo late con dos senos de distinta frecuencia. Cada prop tiene su instancia con su intensidad y su pulso.

Un atlas por pieza. Cada prop se hornea en un único atlas, de 2048² para el Clavo y de 1024² para el brasero y el lecho de brasas, con color, ORM, normal y emisivo.

Capítulo IXRESPONSABLE: Alejandro Brito Olivera (props y arte)

En el juego · la forja y el Clavo

El hogar de la forja tenía una textura plana de lava. Ahora lleva encima el lecho de brasas, con el mismo pivote, giro y escala que el hogar.

Las piezas importadas en Unreal, en un nivel de prueba con luz de comprobación: el Clavo con su zócalo, el brasero y, a la derecha, el hogar de la forja con el lecho de brasas.
Las piezas importadas en Unreal, en un nivel de prueba con luz de comprobación: el Clavo con su zócalo, el brasero y, a la derecha, el hogar de la forja con el lecho de brasas.

Si alguna pieza faltara, el código vuelve a lo de antes (el pilar o el hogar solos). Las tres piezas se cocinan con el resto de ICOR.

PiezaDónde entra
ClavoICORClavo.cpp: sustituye al pilar de piedra blanca en todos los Clavos; se encaja a 4,4 m y el fuego sigue saliendo del cuenco
Lecho de brasasICORCampamento.cpp: en el hogar de la forja de Ceferino, con la transformación del hogar
BraseroImportado en ICOR/Props/Blender/, listo para el decorado

Capítulo IXRESPONSABLE: Zihao Zhong (Kenny) · Alejandro Brito Olivera

Lo que Blender ha aportado

Cada medida tiene una consecuencia: en el rodaje, en el código o en el arte.

HallazgoConsecuenciaEstado
El martillo del herrero iba a 140° del puño, con la boca hacia arribaEnganche calculado con los dedos de la animaciónCorregido
El hogar de la forja era una lava planaLecho de brasas propio con emisivo que lateEn el juego
El Clavo era un pilar de piedra blanca teñido de hierroClavo de hierro forjado propioEn el juego
Ninguna de las 15 animaciones tiene root motionEn Sequencer, el actor se mueve con una pista de transformaciónGuía de rodaje
Velocidad natural de los seis ciclos, a menos de un 2 % del motorTabla de velocidades y ritmos para el rodajeGuía de rodaje
Ocho de las quince animaciones patinan más de 10 cm en algún apoyoSin planos de pies en ellas; la habilidad de Aurel atraviesa el suelo 27,5 cmPara el rodaje
La tela no está animada: es física en tiempo realRodar con el Anim Blueprint activo en los planos con capa o faldonesPara el rodaje
Los hombros de Hwan e Ilse se estiran hasta +37 % (p95) en la carga del ataqueNo congelar esos fotogramas en un primer planoPara el rodaje
La animación de martillar comprimida se aparta 29 cm de la originalMedir siempre con la versión comprimidaMétodo