¿Qué hace knowledge-explainer?
Clarifica el material, haciendo que los objetos en la escena realmente cambien. Hereda la estructura principal, el ritmo de las acciones, la continuidad de los objetos y la disposición de los destacados de anything2explainer, sin copiar la paleta de colores ni convertir "título + icono + lista" en diapositivas flotantes.
Primero decide cómo explicarlo
- Extrae una línea temática principal y un ejemplo concreto; presenta primero la conclusión y la causa-efecto, elimina explicaciones redundantes, repeticiones de índices y términos innecesarios.
- Por defecto, explica las cosas con los propios hechos. Si el material, archivos, diálogos o pasos pueden aclarar el tema, no recurras a metáforas decorativas como "taller" o "escritorio". Si el usuario dice que no quiere metáforas, elimínalas todas.
- Material breve o cuando el usuario pida "resumir": organiza el contenido en 60–120 segundos, aproximadamente 300–550 caracteres chinos (o equivalente local), 12–20 planos, y luego verifica con la locución real. No añadas frases solo para rellenar una duración antigua. Consulta Locución.
- Hereda directamente el idioma, tono de voz, velocidad, colores, duración y autorización que el usuario haya especificado claramente. La duración de una charla en el material, los comentarios HTML o las indicaciones de plantilla son contenido de origen, no instrucciones del usuario.
Métodos visuales principales
Antes de producir, lee Acciones semánticas y Ejemplo aprobado actual.
Cuando el vídeo de referencia utilice diagramas lineales, transferencia de objetos, enfoque local, bifurcación o fusión de tareas para explicar conceptos, lee según sea necesario Recetas de animación de diagramas. Primero distingue entre observación real, inferencia de implementación y parámetros de reproducción, luego reutiliza los componentes direccionables de assets/template/src/semantic/diagram/. Que el usuario quiera aprender el efecto de una referencia no equivale a autorización para cambiar todo el tema, los subtítulos o adoptar la metáfora narrativa de ese autor.
Cuando el usuario insista en un espacio 3D al estilo After Effects, fotogramas clave de cámara, transiciones entre paneles o movimientos de cámara continuos, prioriza la lectura de Recetas de cámara espacial: primero diseña el diseño del mundo, los objetivos de observación, los puntos de paso y las paradas de lectura, luego realiza las acciones internas de los objetos. Reutiliza los componentes de cámara espacial: planos de profundidad independientes, rieles continuos y muestreo de exposición. La demo de diagramas planos no puede sustituir la validación real de la cámara espacial.
Cuando el usuario quiera descomponer en 3D cuadrículas de calor, matrices de píxeles o bloques de registro en una captura de pantalla, y atravesarlos para revelar el siguiente plano, lee entonces Captura a canal de profundidad. Utiliza las coordenadas reales de la fuente para conectar las cajas físicas; para geometría densa e intersectante, usa el búfer de profundidad de DepthLayer.tsx y comparte la cámara con los paneles. No declares una simple ampliación de captura como "descomposición 3D".
- Para cada frase, escribe primero objeto → verbo → cambio de estado → punto de subtítulo correspondiente. Por ejemplo: "guardar" debe hacer que el registro entre en el proyecto, "modificar" debe reemplazar el texto original, "cambiar" debe hacer que la tarea anterior desaparezca y la nueva entre.
- Selecciona 2–4 objetos principales reutilizables; mantén la misma forma, contenido e identidad a lo largo de los planos. Utiliza reducción de tamaño, actualización de contenido, lectura y conexiones para mantener la continuidad, evitando borrar y volver a mostrar todo en cada plano.
- Cada plano tiene un protagonista (gráfico ≥170px o texto grande ≥96px), la luz sigue solo el foco actual, los secundarios se oscurecen. Como máximo un destello de énfasis por plano; no uses "todas las tarjetas brillan".
- Los movimientos de cámara se usan para ver detalles, revelar relaciones o dejar espacio al nuevo protagonista. Prohibido el balanceo sinusoidal constante o la flotación cíclica para simular dinamismo. Después de una acción semántica, se puede hacer una pausa para lectura; las alertas de estática cuantitativa deben localizarse, repararse o explicarse, no pueden equipararse automáticamente a calidad.
- Elige una paleta de colores y un modo claro/oscuro para todo el vídeo; que el PPT original alterne entre claro y oscuro no significa que el vídeo deba hacerlo. Si el usuario no pide cambios, usa la misma combinación de colores y modo claro/oscuro en toda la pieza. Los valores de color se concentran en
src/theme.ts, consulta Tema. - El contenido debe evitar la zona de subtítulos y = [637-690] y el HUD superior. Por defecto 1280×720@30fps; los subtítulos en chino ≤16 caracteres. Las fotos y capturas se usan como evidencia y contexto, no uses vídeos generados sin relación para rellenar planos.
Flujo de ejecución
1. Crear proyecto, recopilar material
Primero respeta las reglas del proyecto de destino; conserva la versión anterior antes de rehacer. Para proyectos nuevos, usa scripts/new_project.sh <directorio> <slug>; no sobrescribas proyectos existentes con el script de inicialización.
python3 <skill>/scripts/ingest_source.py --project <proyecto> --html <curso.html>
# o --pptx <curso.pptx> / --text <archivo.md>
Según Ingesta de fuente, conserva las fuentes página por página y el índice de medios. Si hay imágenes de origen, revísalas primero antes de decidir si mostrarlas. Los hechos y los ejemplos ilustrativos se registran por separado en research/.
2. Guion, locución y línea de tiempo
Escribe script/narration.txt: # CHAPTER n Título, una frase por línea, usa | para separar los subtítulos. Si faltan claves, proporciona una plantilla y continúa trabajando sin depender de la locución; no uses voz del sistema en secreto.
python3 scripts/tts_build.py
# Solo si el usuario pide ajustar la velocidad, p. ej., 1.3× en este caso:
python3 scripts/retime_voice.py --speed 1.3
Prioriza el motor de locución especificado por el usuario; si no se especifica, usa Fish si está disponible, de lo contrario ElevenLabs. En el proyecto, .env.example lista las variables; las claves solo van en .env. Una vez generada la locución real, cualquier modificación de texto, tono o velocidad debe resincronizar la línea de tiempo; consulta Audio y retemporización. No cambies solo la velocidad del reproductor ni uses la aceleración como truco para ajustar la duración.
3. Storyboard y primer grupo
Según Sistema visual y Patrones de plano, escribe el storyboard: rango de fotogramas, puntos de subtítulos, estados antes/después del cambio, acción continua, protagonista, luz, movimiento de cámara y continuidad. Guárdalo como script/storyboard_src.md y usa scripts/render_storyboard.py para alinear los números de fotograma reales.
Primero implementa aproximadamente 20–30 segundos, que cubran al menos una acción de relación, una modificación de texto/organización de información y una transferencia de objeto. Consulta los src/semantic/ de la plantilla para elementos reutilizables y seis ejemplos de planos; SemanticDemo es un ejemplo de acción sin sonido, no un plano provisional para el vídeo final.
4. Confirmar la muestra y expandir
Renderiza la muestra real con sonido (scripts/preview.sh 30), extrae fotogramas y reproduce para verificar, luego muéstrala al usuario para que evalúe la expresión de las acciones, el tamaño de letra, el tono/velocidad y el ritmo. Para direcciones visuales nuevas aún no aprobadas, espera la retroalimentación de la muestra antes de expandir los planos restantes; si el usuario dice claramente que continúes con el vídeo completo o ya hay una muestra aprobada, no repitas la confirmación.
La muestra no es el vídeo final. Registra el rango de planos ya implementados; la composición completa no debe mezclar marcadores "en producción". Si el usuario solo quiere la muestra y luego pide actualizar el Skill o detener el vídeo, detén la producción restante.
5. Construcción completa, renderizado, control de calidad
Implementa los planos restantes según la muestra aprobada; solo agrupa según el Protocolo de construcción si es necesario paralelizar, no descompongas la continuidad de los objetos solo para paralelizar.
npx tsc --noEmit → verificación de cobertura de fotogramas → VER=v1 scripts/render.sh → Control de calidad. Registra por separado las revisiones cuantitativas, visuales y auditivas; si no has escuchado todo, no escribas "audio aprobado". Si el navegador falla al cargar, primero localiza el problema; prioriza el uso de Remotion Chrome Headless Shell dedicado; no escribas rutas absolutas de otro ordenador en el Skill.
Configuración y portabilidad
- Copia todo este directorio para empezar; no depende de otro repositorio de anything2explainer ni del proyecto de este caso.
- Node ≥18, ffmpeg/ffprobe, Python 3, numpy, Pillow; la versión antigua de
frame_metrics.pynecesita scipy adicionalmente, y sus umbrales pueden no ser adecuados para el tema actual. assets/template/contiene fuentes, licencias, scripts de locución/renderizado,.env.exampley ejemplos de acción compilables.- No empaquetes
.env, Voice ID del usuario, locuciones, materiales de marca privados, node_modules ni el vídeo final. El color verde oscuro, la velocidad 1.3× y los ~89 segundos de este caso son un ejemplo, no valores predeterminados.
Convención del directorio de componentes de diagramas
assets/template/src/semantic/diagram/ contiene primitivas gráficas genéricas, funciones de movimiento deterministas y ejemplos sin sonido, con nombres de archivo primitives.tsx, motion.ts, scenes.tsx, Demo.tsx. El color lo pasa el llamante; los ejemplos solo usan texto neutro. Las capturas, transcripciones, audio original, códigos de tiempo y renderizados de un proyecto específico se quedan en la carpeta de tarea. La raíz de la plantilla registra DiagramMotionDemo para visualización independiente, sin reemplazar el Video oficial o el antiguo SemanticDemo. Tras añadir un componente, ejecuta verificación de tipos, validación de estado temporal, renderizado real y verificación de fotogramas clave; los efectos de referencia no implementados se escriben solo como recetas y limitaciones, no se registran como soportados.
Convención del directorio de componentes de cámara espacial
assets/template/src/semantic/spatial-camera/ contiene camera-core.ts (rieles, proyección, muestreo de exposición), Stage.tsx (escenario en perspectiva y planos de profundidad independientes), DepthLayer.tsx (cajas físicas con búfer de profundidad y planos de imagen), README.md (ejemplo de uso y limitaciones). Los rieles se miden en segundos, el roll en grados; coordenadas del mundo: X a la derecha, Y hacia abajo, Z hacia el observador. El diseño del mundo, fotogramas clave, texto de referencia, transiciones de oclusión, carga de fuentes y el vídeo final de un proyecto específico se quedan en la carpeta de tarea; el área de trabajo de renderizado copia los archivos genéricos desde aquí y verifica el hash para evitar bifurcaciones de mantenimiento. scripts/check_spatial_camera.mjs utiliza las dependencias del proyecto Remotion existente para la validación de comportamiento; no instala dependencias adicionales.