Communitygithub.com

Daham0/blender-previs-one-take

Un flujo de trabajo de previsualización en bloque 3D para tomas continuas. El usuario proporciona una imagen de referencia o una descripción, y la habilidad genera un video de previsualización en bloque 3D con movimiento de cámara; tras iterar y confirmar con el usuario en lenguaje sencillo, se redactan indicaciones detalladas de video basadas en el movimiento de cámara medido en la previsualización; el resultado final es un «video en bloque (referencia de movimiento) + indicaciones» listo para ser usado con modelos de video como Seedance 2.5.

¿Qué es blender-previs-one-take?

Esta habilidad para agentes de IA (compatible con Claude, Codex, Cursor, etc.) proporciona un flujo de trabajo completo para la previsualización de tomas continuas en 3D. Está diseñada para creadores de video que desean planificar y validar movimientos de cámara complejos (como tomas continuas, pseudo-tomas continuas, rodeos, empujes frontales, ascensos, ingravidez, FPV, etc.) antes de generar el video final con modelos de IA como Seedance 2.5. La habilidad recibe una imagen de referencia o una descripción textual, y automáticamente genera un video de previsualización en bloque 3D con cámara animada. El usuario puede iterar y modificar el movimiento de cámara en lenguaje natural («más alto», «la silla choca») sin necesidad de conocimientos técnicos. Una vez que el usuario confirma el movimiento, la habilidad redacta indicaciones de video detalladas basadas en los datos de cámara medidos en la previsualización, evitando la adivinanza y los resultados inconsistentes. Incluye detección del entorno (Blender para alta precisión o Three.js para alternativa web), cuatro comprobaciones automáticas (monotonía, salida de cuadro, atravesamiento de objetos, techo) y un motor de traducción de instrucciones en lenguaje natural. El resultado final es un video de previsualización en bloque y un conjunto de indicaciones listo para usar, maximizando la eficiencia y la calidad del video final.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Daham0/blender-previs-one-take/tree/HEAD

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Habilidad de Previsualización en Bloque 3D para Tomas Continuas

Declaración única: El usuario da una imagen o una descripción, esta habilidad genera un video en bloque; una vez que el bloque está finalizado, se escriben las indicaciones, y el video en bloque se utiliza como referencia de movimiento junto con las indicaciones para el modelo de video. Los movimientos de cámara largos no dependen de indicaciones místicas, sino de calcular primero cómo se mueve la cámara y permitir que el usuario lo vea y lo confirme.

0. Modo de Operación (Siempre presentar solo estos tres pasos al exterior)

  1. El usuario proporciona una imagen de referencia o una descripción textual ("10 segundos, rodea desde mi espalda hasta el frente lateral, que las cosas sobre la mesa floten primero").
  2. La habilidad genera un video de previsualización en bloque 3D con movimiento de cámara, ambos iteran hasta que el usuario diga "esta es la sensación".
  3. Una vez finalizado, se entregan dos elementos: Video de previsualización en bloque + Indicaciones detalladas de video, todo listo para usar con Seedance 2.5 para generar el video final.

Cómo se calcula internamente (escena, coordenadas, validación) es asunto de la habilidad, no exijas detalles técnicos al usuario. Las reglas completas de entrada, preguntas obligatorias y tabla de traducción de lenguaje natural se encuentran en references/00-flow-intake-iteration.md, que es el resumen del flujo de esta habilidad; léelo primero cada vez que se active.

1. Flujo Principal de Seis Fases (El orden no debe alterarse)

FaseQué hace el usuarioQué debes entregarCondición de aprobación
① Recepción de requisitosProporciona imagen de referencia / descripción textualReformular en 3 frases "la escena que entiendo", incluyendo sujeto, dirección de cámara, flotación/ingravidezEl usuario dice "sí" o corrige una frase; confirmar relación de aspecto y duración
② Detección del entornoElegir entre dos opciones (instalar / no instalar)Resultado de check_blender.py + explicación de la ruta en una fraseRuta clara, entrar en A o B
③ Primera versión del video en bloqueVer el videomp4/webm reproducible + 3–4 fotogramas clave + "dime directamente qué está mal"El video se entrega realmente. Solo dar tabla de coordenadas = incumplimiento
④ Iteración conversacionalDar opiniones en lenguaje naturalNueva versión de video v2/v3… + línea de explicación del cambioSolo un cambio por ronda; confirmación explícita del usuario
⑤ Finalización + Redacción de indicacionesConfirmar que la sensación es correctaRESULT: PASS en las cuatro comprobaciones + Indicaciones en seis seccionesNo escribir indicaciones si la validación no es PASS
⑥ Entrega para generación de videoTomar los materiales para generar el videoVideo en bloque + Indicaciones + Especificaciones de carga (video1=referencia de movimiento, imagen1=referencia visual)Las coordenadas de las indicaciones provienen todas del JSON medido

Las fases ③ y ④ permiten múltiples rondas de ida y vuelta; este es el valor principal de esta habilidad: corregir los problemas de cámara en 3D, no en el modelo de video.

2. Seis Reglas de Oro

  1. Regla de orden: Construir escena → Video en bloque → Confirmación del usuario → Luego escribir indicaciones. Escribir indicaciones sin que el usuario haya visto el video es un desperdicio.
  2. Las indicaciones solo se basan en la imagen de referencia del usuario para la apariencia visual. El bloque no es referencia visual, solo se usa para fijar el movimiento, la sincronización y las coordenadas; la calidad, la forma, la iluminación y el color siempre vuelven a la imagen de referencia.
  3. Movimiento de cámara unidireccional y continuo. El ángulo de rotación debe ser estrictamente creciente o decreciente; prohibido el vaivén; el vaivén es un fracaso, reajustar la curva.
  4. El sujeto nunca sale del cuadro. Verificación de proyección fotograma a fotograma; el NDC del sujeto debe permanecer dentro del marco de seguridad; cuando el sujeto asciende, la cámara debe inclinarse hacia arriba simultáneamente.
  5. Cero atravesamiento. Si la distancia entre dos objetos en movimiento en cualquier fotograma es menor que el umbral, es un fracaso; resolver con el orden "primero dejar espacio, luego ascender" y "primero volar objetos ligeros, luego pesados", no apelotonando densidad.
  6. El usuario solo habla en lenguaje humano. El usuario dice "más alto" o "la silla choca con la pierna", tú traduces a parámetros y solo cambias ese elemento; no expliques al usuario ángulos polares, NDC o AABB.

3. Detección del Entorno y Selección de Ruta (Consejo 1: Detectar y modelar)

check_blender.py
  ├─ Instalado → Rama A (Blender, máxima precisión, puede exportar datos medidos fotograma a fotograma)
  ├─ No instalado
  │    ├─ Usuario acepta instalar → Guiar a versión portátil (05-blender-setup.md) → Rama A
  │    ├─ Usuario ya tiene otra versión/ruta → Ingresar ruta → Rama A
  │    └─ Usuario rechaza instalar (o entorno sin permisos, tiempo limitado) → Rama B (Previsualización web en Three.js)
  └─ Rama B sigue el mismo flujo de seis fases, solo como "referencia de movimiento", las comprobaciones y la redacción de indicaciones son idénticas en todos los aspectos

Forma de hablar para la guía de instalación — solo un punto de decisión a la vez, sin escribir párrafos largos:

Ahora mismo no hay Blender, dos opciones:

  1. Instalo la versión portátil (aproximadamente 300MB, se instala en un disco no del sistema, no escribe en el registro, no ocupa la unidad C, se puede eliminar por completo) — máxima precisión, puede exportar coordenadas medidas fotograma a fotograma;
  2. No instalo, uso Three.js en el navegador para generar el video de previsualización en bloque — el video se ve en minutos, la precisión de coordenadas es ligeramente menor. ¿Cuál eliges?

Si el usuario elige 1 → seguir references/05-blender-setup.md; si elige 2 → seguir references/06-threejs-fallback.md.

4. Detalles de las Fases

① Recepción de requisitos

Leer references/00-flow-intake-iteration.md §1–§3: determinar si la entrada es una imagen, una descripción o ambas. Solo tres preguntas obligatorias (duración/relación de aspecto, orientación del sujeto, intención del movimiento de cámara); si se puede inferir, inferir; el resto usar valores predeterminados de la plantilla knowledge/kb-levitation-office.md. Cuando el usuario dice "como quieras", usar valores predeterminados para la primera versión y dejar que vea el video y señale los problemas.

③ Primera versión del video en bloque (Consejo 3: Primero la previsualización en bloque)

Primero construir el bloque estático y calibrar las coordenadas del mundo (1 unidad = 1 metro, origen en el suelo) → Parametrizar la trayectoria de la cámara → Renderizar a baja resolución 480P → Entregar video + fotogramas clave. En esta fase no se escriben indicaciones. Criterios de aceptación: reproducible, sin fotogramas negros, sujeto dentro del cuadro, paredes y suelo de la habitación estáticos.

④ Iteración conversacional

Usar la tabla de traducción de la sección 00 §4 para traducir las palabras del usuario a parámetros, cambiar solo un elemento a la vez, generar una nueva versión y escribir una línea de explicación del cambio (v2: Radio 3.45→2.95, el sujeto está más lleno en el fotograma final). Las normas de nomenclatura de versiones están en 00 §5.

⑤ Finalización, validación y redacción de indicaciones (Consejo 2: Comprobación automática + Consejo 4: Escribir indicaciones mirando el bloque)

Las cuatro comprobaciones (monotonía del ángulo polar/ salida de cuadro/ atravesamiento entre grupos/ techo) deben tener RESULT: PASS, luego exportar el JSON de datos medidos fotograma a fotograma, y luego escribir las indicaciones en seis secciones. Cada coordenada en las indicaciones solo puede provenir de este JSON, prohibido rellenar estimaciones a mano. Las normas de redacción están en references/04-prompt-format.md.

⑥ Entrega para generación de video (Conexión con Seedance 2.5)

Entregar según el formato de la sección 00 §6: el video en bloque se etiqueta como referencia de movimiento/posición de cámara/sincronización, la imagen de referencia se etiqueta como la única referencia visual, la primera frase de las indicaciones enfatiza "reproducir estrictamente el movimiento de cámara y el orden de despegue del video de referencia", la duración se alinea con el bloque, y el movimiento de cámara se divide en segmentos de 2~3 segundos.

5. Rama A: Manual de Ejecución en Blender

  • Especificaciones de escena y coordenadas: references/01-scene-spec.md
  • Especificaciones de diseño de cámara: references/02-camera-motion.md
  • Sincronización de ingravidez por capas y prevención de atravesamiento: references/03-levitation-timing.md
  • Instalación y conexión: references/05-blender-setup.md
  • Scripts:
    • scripts/build_scene_template.py — Esqueleto de escena en bloque (habitación, mesa, doble pantalla, silla, bloques de persona)
    • scripts/render_previs.py — Renderizado de previsualización a baja resolución 480P (EEVEE, sin materiales)
    • scripts/export_cam_data.py — Exportar datos fotograma a fotograma de cámara/punto de mirada/ángulo de elevación/z de objetos a JSON
    • scripts/validate_trajectory.py — Cuatro comprobaciones (monotonía / salida de cuadro / atravesamiento / techo)

Secuencia de línea de comandos (ya probada en la máquina local, $BLENDER es la ruta absoluta de blender.exe, las rutas se reemplazan según el proyecto):

# 1 Detección
python scripts/check_blender.py --json

# 2 Construir escena + escribir trayectoria orbital y animación de ingravidez por capas (--orbit 1), y exportar lista de coordenadas
"$BLENDER" -b --python scripts/build_scene_template.py -- \
  --orbit 1 --center 0.0 0.15 --dur 10 --fps 24 \
  --a0 186 --a1 300 --r0 3.45 --r1 2.45 --z0 0.78 --z1 1.20 --l0 1.05 --l1 1.45 \
  --out "Z:/project/scene.blend" --csv "Z:/project/coords.csv"

# 3 Cuatro comprobaciones (ejecutar antes de finalizar), debe ser RESULT: PASS
"$BLENDER" -b "Z:/project/scene.blend" --python scripts/validate_trajectory.py -- \
  --center 0.0 0.15 --ceiling 2.75 \
  --keys Person_Head,Person_Torso,Desk_Top,Monitor_H_Body \
  --moving Minion_,Monitor,PC_Case,Keyboard,Mouse,Person_,Desk_,Chair_

# 4 Exportar datos medidos fotograma a fotograma (solo usar estos datos para escribir indicaciones)
"$BLENDER" -b "Z:/project/scene.blend" --python scripts/export_cam_data.py -- \
  --out "Z:/project/cam.json" --center 0.0 0.15 --keys Person_Head,Desk_Top,Chair_Seat

# 5 Renderizado de previsualización: primero 16 fotogramas para probar el pipeline, luego el video completo
"$BLENDER" -b "Z:/project/scene.blend" --python scripts/render_previs.py -- \
  --out "Z:/project/previs.mp4" --res 960x540 --samples 4 --start 1 --end 240

Para iterar y modificar, solo es necesario volver a ejecutar el paso 2 (cambiar parámetros) → paso 5 (generar video), y después de finalizar, completar los pasos 3 y 4. --keys solo rellena los puntos clave del sujeto (cabeza, torso, superficie de la mesa, pantalla principal); los accesorios a menos de 1 m del sujeto (asiento de la silla, etc.) inevitablemente saldrán del cuadro, lo cual es un resultado físico de la cámara. --moving solo rellena los prefijos de los objetos que se desplazarán; si no se rellena, no se realiza la detección de atravesamiento; los objetos se agrupan por la primera parte del nombre; el contacto dentro del mismo grupo no se cuenta.

6. Rama B: Previsualización en Bloque con Three.js en la Web

  • Plan y limitaciones: references/06-threejs-fallback.md
  • Ejecutable directamente: scripts/threejs_previs.html (archivo único, CDN introduce three, incluye reproducción de trayectoria, cambio de perspectiva/vista superior, exportación a JSON, grabación webm)
  • Limitaciones: la persona se aproxima con bloques, todos los materiales en blanco; solo se puede verificar la dirección del movimiento, la relación de composición y la sincronización, no la iluminación ni la textura.
  • Salida: webm + capturas de fotogramas clave, las coordenadas se exportan desde el mismo conjunto de parámetros de la página.

7. Especificaciones de Entrega de Indicaciones (Consejo 4)

Seis secciones fijas, ninguna puede faltar: 【Unidad de Generación】 【Referencia】 【Continuidad】 【Narración y Sonido】 【Línea de Tiempo con Coordenadas】 【Indicaciones Negativas】.

Tres requisitos estrictos:

  1. Escribir mirando el bloque, no adivinar: Cada frase de movimiento de cámara puede volver al código de tiempo del bloque, con el formato "0–2.5s comienza detrás a la izquierda del sujeto, cámara a 0.78 m de altura, radio 3.45 m, ángulo polar 186°, elevación 3.7°".
  2. Distinguir los roles de las referencias: El video en bloque solo fija el movimiento, la imagen de referencia fija la apariencia visual, ambas deben mencionarse de manera realista.
  3. Prevención de atravesamiento escrita como oraciones de orden causal, no como "cuidado con no atravesar".

Técnicas de escritura, estructuras de oraciones, ejemplos incorrectos y causas comunes de fallo se encuentran en references/04-prompt-format.md; los parámetros medidos del proyecto se encuentran en knowledge/kb-levitation-office.md (se pueden reutilizar directamente como valores de plantilla).

8. Resolución Rápida de Problemas Comunes

FenómenoCausa raízSolución
La cámara se mueve erráticamente de izquierda a derechaCurva de ángulo polar no monótona / rebote de interpolaciónParametrización monótona + verificación de signo de diferencia de primer orden + interpolación LINEAR
El sujeto sale del cuadro a mitad de caminoEl sujeto asciende pero la cámara no lo sigueSincronizar los fotogramas clave de la cámara z y el punto de mirada z con un coeficiente de seguimiento de 0.8–0.95
La silla y la mesa atraviesan a la personaLa persona y la silla despegan al mismo tiempoLa persona despega primero, la silla se retrasa 0.4–0.7 s, y primero se desplaza horizontalmente antes de ascender
El equipo y la mesa chocanEl equipo y la mesa despegan al mismo tiempoEl equipo asciende primero aproximadamente 1.3 m y se detiene, la mesa se retrasa 2–3 s
La habitación flotaEl punto de mirada o la relación padre-hijo están mal escritosSolo hacer desplazamiento z en el grupo del sujeto; las paredes, el suelo y las ventanas permanecen estáticos
El personaje en el video final gira y su rostro se deformaNo se bloqueó la orientaciónEn 【Referencia】, escribir fijo "de espaldas/de lado y de espaldas"; en las indicaciones negativas, agregar "girar", "voltear", "primer plano del rostro"
El video final parece un modelo gris 3DEl bloque se tomó como referencia visualEn 【Referencia】, aclarar "el bloque solo es referencia de movimiento"; fijar el estilo visual como fotografía realista
El modelo ignora por completo el video de referenciaLa primera frase no enfatizó la reproducciónEscribir en la primera frase "reproducir estrictamente el movimiento de cámara y el orden de despegue del video de referencia", dividir el movimiento de cámara en segmentos de 2–3 s
Las coordenadas de las indicaciones no coinciden con la imagenSe usaron coordenadas estimadasVolver a la fase ⑤ y tomar valores del JSON medido, prohibido rellenar a mano

9. Lista de Verificación para Entrega de Alta Calidad

  • El usuario proporcionó una imagen de referencia o una descripción, y ya confirmó "la escena que entiendo"
  • La primera versión del video en bloque se entregó realmente (no solo coordenadas)
  • Las versiones iterativas tienen número y explicación del cambio; la versión final fue aprobada explícitamente por el usuario
  • Las cuatro comprobaciones tienen RESULT: PASS
  • En las indicaciones, la imagen de referencia se especifica como @imagen1, el video en bloque como referencia de movimiento
  • La línea de tiempo se divide por segundos, cada segmento tiene "posición inicial de cámara → posición final + punto de mirada + elevación + radio"
  • La sincronización por capas especifica quién vuela primero, quién después, la altura de ascenso y la altura final de cada capa
  • La lógica de prevención de atravesamiento está escrita como oraciones causales
  • Las indicaciones negativas cubren: orientación del personaje y rasgos faciales, adición/eliminación y orientación del equipo, atravesamiento y caída, deriva de la habitación, reversión de la cámara, cambios de estilo, subtítulos y marcas de agua
  • Al entregar, se explica que "la previsualización solo valida el movimiento, la apariencia visual se basa en la imagen de referencia", y se proporcionan las especificaciones de carga

10. Referencia Rápida de Parámetros de Scripts

ScriptParámetros claveDescripción
check_blender.py--jsonDetección de solo lectura; salida found/path/source/version
build_scene_template.py--orbit 1 --center cx cy --dur --fps --a0 --a1 --r0 --r1 --z0 --z1 --l0 --l1 --out --csvSin --orbit solo escena estática; con él, escribe fotograma a fotograma los fotogramas clave de cámara e ingravidez (LINEAR)
validate_trajectory.py--center --ceiling --keys --moving --margin --tolCódigo de salida 0=PASS 1=FAIL; cuatro comprobaciones
export_cam_data.py--out --center --keysSalida [{f,cam,rad,ang,pitch,objeto:[x,y,z]}]
render_previs.py--out --res --samples --fps --start --end --enginePrimero 16 fotogramas de prueba, luego el video completo
install_blender.ps1-TargetDir -Version -Mirror auto|official|aliyun|tuna `-DryRun``Conmutación por error automática de espejo; crea directorio portable; escribe BLENDER_PATH

Los parámetros siempre se pasan después de -- al script de Python.

11. Discurso de Presentación Externa (Para responder "¿Qué puede hacer esta habilidad?")

Dale una imagen de referencia, o una descripción, y construirá el movimiento de cámara en un bloque 3D y lo ejecutará para que lo veas; si algo no está bien, lo cambias, hasta que estés satisfecho, luego escribe las indicaciones, y el video en bloque y las indicaciones se entregan juntos a Seedance 2.5 para generar el video final. Detección de modelado, cuatro comprobaciones automáticas, previsualización en bloque y escritura de indicaciones mirando el movimiento de cámara, todo incluido. Ya sea un rodeo, un ascenso o ingravidez, la imagen es suave y no atraviesa objetos ni se deforma repentinamente. Con esta habilidad para tomas continuas, los movimientos largos de cámara son increíblemente estables — para hacer videos con IA, ¿todavía necesitas pasar mucho tiempo aprendiendo indicaciones místicas?

12. Estado de Autocomprobación de Esta Habilidad

ElementoResultado
Detección de BlenderAprobado (versión portátil 4.5.15 LTS, disco D)
Construcción de escena + trayectoria + animación de ingravidezAprobado (240 fotogramas @24fps, coordenadas CSV guardadas)
Cuatro comprobacionesPASS: Salida de cuadro 0 (960 detecciones NDC), atravesamiento nuevo 0, techo 0, tres monotonías todas True
Exportación de datos fotograma a fotogramaAprobado (JSON de 240 fotogramas)
Renderizado de previsualizaciónAprobado (EEVEE_NEXT, mp4 de prueba de 16 fotogramas normal)
Script de instalaciónAprobado (prueba -DryRun: oficial 403 → espejo aliyun 4.5.16, aproximadamente 380 MB)

Los parámetros predeterminados de la plantilla están en knowledge/kb-levitation-office.md, que se pueden usar directamente como punto de partida para nuevos proyectos.

Skills relacionados