dayz-realistic-animation-director · git:20260824.4da9bc3 · 2026-08-24 · sha256 7a91d44915dd468c
dayz-realistic-animation-director git:20260824.4da9bc3A
Immutable. This exact content never changes and is served at /api/v1/blob/7a91d44915dd468c.
--- name: dayz-realistic-animation-director description: Dirige de principio a fin la creación, corrección, pulido, exportación, integración y verificación de animaciones realistas para DayZ. Úsala cuando el resultado deba sentirse físicamente creíble en jugador, manos y armas, recargas, unstuck/unjam, locomoción, criaturas, ocupantes de vehículos, mecanismos, props o simulaciones; especialmente ante clipping, dedos cruzados, articulaciones sobreextendidas, contacto falso, objetos que no siguen la mano, stutter, loops defectuosos o discrepancias Blender-vs-in-game. Orquesta `blender-animation` para autoría y `dayz-animation-pipeline` para contratos del motor; no sustituye consultas puramente técnicas sobre config, ASI, skeletons o exportación. --- # DayZ Realistic Animation Director Produce una animación creíble y cierra su integración con evidencia honesta. Esta skill dirige el trabajo; las skills de Blender y DayZ conservan la autoridad técnica. ## Frontera de autoridad Antes de actuar, lee [authority-and-routing.md](references/authority-and-routing.md). - Invoca `blender-animation` antes de operar sobre Actions, rigs, constraints, curvas, renders o exportación desde Blender. - Invoca `dayz-animation-pipeline` antes de decidir formato, skeleton, export mask, FPS/frame budget, notetracks, anim graph/ASI, compile, wiring o integración DayZ. - Invoca la skill de dominio adicional indicada en [authority-and-routing.md](references/authority-and-routing.md) para personajes, criaturas, vehículos, P3D, retargeting o test in-game; aplica después los controles de [domain-gates.md](references/domain-gates.md). - Ante conflicto, la autoridad especializada gana. Registra la divergencia y detén el gate afectado; no inventes una tercera regla. Si la petición es sólo técnica —por ejemplo, elegir un `AnimationSource`, registrar una `.anm` o explicar un estado ASI— deja que `dayz-animation-pipeline` sea la skill primaria. Usa esta skill cuando haya que autorar, evaluar o mejorar el movimiento. ## Ruteo de dominio | Animación | Skills que se añaden a la directora | |---|---| | Jugador, manos, humano custom o infectado | `dayz-characters`; para criaturas verifica primero su bind/skeleton real | | Arma, recarga, unjam o mecanismo P3D | `dayz-weapons` si cambia el contrato de entidad + la skill P3D/model pertinente | | Ocupante, entrada o controles de vehículo | `dayz-vehicles` | | Mocap/donor externo | skill de retargeting aplicable; nunca sin mapa source→target | | Prueba runtime | `dayz-test-ingame`/`dayz-mcp-verify` vigente, con lease y lifecycle | `blender-animation` y `dayz-animation-pipeline` siguen siendo obligatorias para autoría e integración respectivamente; las skills de la tabla no las sustituyen. ## Tres controles que nunca se sustituyen entre sí 1. **Cadena completa:** medir nudillos y puntas no valida falanges intermedias. Muestrea todos los segmentos y articulaciones relevantes. 2. **Contacto positivo:** «sin penetración» no significa «agarrando». Exige una pareja de contacto, una superficie/landmark objetivo y una banda de distancia. 3. **Bloqueo relativo:** compartir keyframes o una curva escalar no demuestra que dos elementos se muevan juntos. Mide `T_actor^-1 * T_target` durante toda la ventana de agarre. Un fallo visual reproducible del usuario o in-game invalida cualquier `PASS` offline. Conviértelo en fixture antes de volver a autorar. ## Flujo obligatorio por gates ### 0. Preserva y observa - Inspecciona la escena, Actions, frame actual, selección, constraints y ventanas antes de mutar. - Trabaja siempre desde una copia versionada; no sobrescribas el `.blend` fuente. - Si corriges un defecto, reproduce primero el fallo con la escena actual y conserva esa evidencia RED. - Lee el contrato del proyecto (`CLAUDE.md`, product spec, plan y handoff vigentes) cuando existan. ### 1. Captura el contrato técnico DayZ Pide a `dayz-animation-pipeline` la ruta aplicable y registra: - tipo de animación y skeleton/rig autoritativo; - FPS, duración o frame budget y reglas de loop; - notetracks/eventos y estados runtime; - bones incluidos/excluidos y objetos/selecciones móviles completos; - artefactos de exportación, compile, wiring, build y prueba in-game. No hardcodees 291 frames, 30 FPS ni notetracks de la SR2M para otras animaciones. Cada tarea obtiene su contrato vigente. ### 2. Define aceptación antes de posar Lee [motion-quality-contract.md](references/motion-quality-contract.md) y crea un contrato por tarea que declare sólo los módulos aplicables: - poses y beats clave; - articulaciones/cadenas y límites calibrados; - contactos, superficies y ventanas `contact_on..release`; - pares de colisión prohibidos y contactos permitidos; - objetos que deben conservar transformación relativa; - excepciones intencionales de impacto, snap o deslizamiento; - pose real de entrada/salida y estados in-game a probar. Las tolerancias deben venir de referencia, geometría o una decisión explícita. Nunca ajustes el umbral para hacer pasar el candidato actual. Todo contrato declara exactamente `contract_mode: "diagnostic"` o `contract_mode: "production"`; valores ausentes o desconocidos son error. Un contrato capaz de conceder `OFFLINE_PASS` usa `production`. Cada check declara procedencia (`source_kind`, `source`, `verified_date`, `method`) y cualquier check `segment_clearance` exige procedencia geométrica compartida para los radios de cápsula. Un contrato `diagnostic` puede reproducir un fallo, pero `eligible_for_offline_pass` siempre será falso. Para una ventana continua de contacto, colisión, bloqueo, orden, rango articular o continuidad usa `frame_range` consecutivo con `step: 1`; producción lo exige. Una lista dispersa de poses doradas no prueba lo que ocurre entre ellas. ### 3. Blocking Con `blender-animation`, autora sólo poses doradas: inicio, anticipación, contacto, máximo esfuerzo, liberación, recuperación y final. - Renderiza cada pose en vista on-axis y al menos una oblicua. - Valida anatomía, silueta, contacto y colisión antes de interpolar. - Para manos, lee [biomechanics-and-contact.md](references/biomechanics-and-contact.md) y evalúa los cinco dedos, muñeca, antebrazo, codo, hombro y clavícula cuando formen parte del gesto. - No avances a spline si una pose clave ya clipea, está sobreextendida o no toca el objetivo. ### 4. Movimiento y esfuerzo - Aplica blocking → spline → polish mediante `blender-animation`. - Usa timing, spacing, arcos, anticipación, overlap, moving holds y settle según la intención física. - Valida posición, rotación, velocidad, aceleración y jerk en los elementos relevantes. - Distingue un snap/impacto intencional mediante una ventana declarada; fuera de ella, un pico es stutter. - En mecanismos, mueve la jerarquía o selección funcional completa, no sólo la pieza visual que se ve desde una cámara. ### 5. Auditoría offline Ejecuta el muestreador y el validador cuando exista Blender: ```powershell & $env:BLENDER_EXE --background '<scene.blend>' --python '<skill>\scripts\sample_blender_motion.py' -- --contract '<contract.json>' --output '<report.json>' python '<skill>\scripts\validate_motion_contract.py' --report '<report.json>' --contract '<contract.json>' --output '<audit.json>' ``` Interpreta los exit codes del validador: - `0`: todos los checks requeridos pasan; - `1`: input válido, uno o más checks requeridos fallan; - `2`: contrato, muestra o ejecución inválidos; no hay veredicto de calidad. Además del JSON: - revisa vídeo completo a velocidad real; - revisa renders multiángulo de contacto, extremos, transiciones y recuperación; - busca clipping entre keyframes, no sólo en frames clave; - comprueba inicio/final contra la pose real de entrada runtime. ### 6. Exporta e integra - Entrega a `blender-animation` el export desde Blender siguiendo su contrato vigente. - Entrega el artefacto a `dayz-animation-pipeline` para compile, ASI/config, build y deploy. - Verifica el artefacto realmente desplegado, no sólo el source. - No declares que Workbench, DayZATool, Blender MCP o DayZ se ejecutaron si no existe evidencia de esa ejecución en la sesión. ### 7. Gate in-game Lee [evidence-and-integration.md](references/evidence-and-integration.md). - Prueba las stances, cámaras y estados que puedan cambiar IK o blending. - Revisa RPT y compara timing, contacto, clipping y estados mecánicos contra el contrato. - Si in-game contradice Blender, in-game manda y el caso se convierte en regresión. - Si el entorno no permite el test, termina en `MANUAL_REQUIRED`, no en PASS. ## Estados de salida - `FAIL`: falla al menos un gate obligatorio. - `OFFLINE_PASS`: contrato, escena, auditoría, renders y artefacto offline aprobados; falta juego. - `MANUAL_REQUIRED`: el siguiente gate necesita una acción o herramienta no disponible. - `IN_GAME_PASS`: el build desplegado y el comportamiento en DayZ están verificados con evidencia. Reporta siempre qué gates se ejecutaron, qué evidencia existe, qué se omitió y por qué. ## Política de regresión Cuando aparezca un defecto nuevo: 1. congela la escena fallida como input de sólo lectura; 2. escribe una fixture mínima que falle por ese motivo; 3. demuestra RED; 4. implementa o endurece el check; 5. demuestra GREEN con una muestra corregida para evitar un test tautológico; 6. sólo entonces modifica la animación productiva. Ejecuta la suite reutilizable con: ```powershell python '<skill>\scripts\run_regression_tests.py' ``` Para incluir la fixture real de SR2M, define `SR2M_V44_BLEND` y añade `--real-fixtures`. Si la variable falta, el resultado correcto es `SKIP_REAL_FIXTURE`, no PASS. ## Índice de recursos - [authority-and-routing.md](references/authority-and-routing.md) — autoridad, precedencia y selección de skills. - [motion-quality-contract.md](references/motion-quality-contract.md) — formato de muestra/contrato y catálogo de checks. - [biomechanics-and-contact.md](references/biomechanics-and-contact.md) — anatomía, contacto, auto-colisión y sincronización. - [domain-gates.md](references/domain-gates.md) — controles por dominio de animación. - [evidence-and-integration.md](references/evidence-and-integration.md) — evidencia offline, export, deploy e in-game. - `scripts/sample_blender_motion.py` — Blender → reporte neutral JSON. - `scripts/validate_motion_contract.py` — reporte + contrato → auditoría determinista. - `scripts/run_regression_tests.py` — fixtures sintéticas y reales opcionales. ## Stop conditions Detén el avance y pide la decisión o evidencia que falta cuando: - no existe referencia de entrada/salida y una elección cambiaría la coreografía; - el pipeline vigente y una referencia discrepan sobre skeleton, export mask o estado runtime; - no puede identificarse la pieza mecánica completa; - una tolerancia sólo puede elegirse mirando el candidato que se desea aprobar; - el gate offline pasa pero la revisión visual o in-game falla; - el test de integración exige una herramienta o permiso no disponible.