Videos Lulublox
Convierte una idea del usuario ("haz uno sobre cuál tobogán es el más rápido") en un Short vertical listo para publicar, animado en Roblox Studio. La protagonista es Lulu, un avatar de niña R15 carismática y linda:
- Piel melocotón y cabello castaño largo con flequillo lateral, mechones laterales enmarcando el rostro y un moño rosa.
- Rostro caricaturesco: ojos grandes ovalados con iris violeta, dos reflejos y pestañas; cejas finas marrones; rubor; una boca que se mueve con su voz.
- Vestimenta: camiseta rosa con mangas cortas abullonadas, falda plisada púrpura que se abre con sus piernas (nunca la atraviesan) y zapatillas blancas con suela rosa.
- Animada con los paquetes oficiales de Roblox (Cartoony, Levitation y emotes R15).
El público son niños. Lee references/production-rules.md, references/format.md y references/animkit.md antes de empezar.
Todo está en inglés, siempre: guión, voz, subtítulos, letreros en pantalla, título del video, descripción, etiquetas y nombres de archivo. Nunca produzcas líneas en portugués o español para esta habilidad. Una vez que las líneas de voz estén listas, ejecuta scripts/fazer_short.py PROYECTO. Esto ejecuta las auditorías, graba, edita, revisa los subtítulos y renderiza, y solo termina con el MP4 final. --so-conferir solo verifica la entrega.
Esta habilidad depende de la habilidad hermana roblox-video-editor (renderizador, biblioteca de efectos de sonido/música y pegatinas). El install.py del repositorio lo verifica.
La voz de Lulu: Jessica (ElevenLabs, voz predeterminada gratuita)
Lulu siempre habla con "Jessica - Playful, Bright, Warm", elegida por el usuario el 2026-10-15. Es una voz predeterminada gratuita (predefinida) en Voces → Mis voces, ID de voz cgSgspJ2msm6clMCkdW9. Verifica el ID, no solo el nombre. En el roteiro.json de cada proyecto: "vozes": {"lulu": "Jessica"}. No cambies a otra voz a menos que el usuario lo pida.
- Modelo Eleven v4, idioma Automático. Escribe cada línea en inglés con una etiqueta de emoción al inicio, por ejemplo
[excited] ¡Hola amigos!,[giggles] ¡Ups!,[gasps] ¡No puede ser!o[whispers] Shh.... No agregues una etiqueta de acento. - Las copias de la pestaña Explorar de estas voces pueden pedir un plan de pago. Usa siempre la copia en Mis voces y nunca sugieras pagar.
- Cómo generar y descargar las líneas:
- Con una clave API en
ELEVENLABS_API_KEY(el usuario la establece):python scripts/tts_elevenlabs.py roteiro.json --out falas. - Sin clave: en el navegador del usuario iniciado sesión, escribe cada línea, générala con Ctrl+Enter y conserva la toma
eleven_v4de las dos que el sitio crea. Mueve los archivos conscripts/receptor_falas.py CARPETA(servidor local en 127.0.0.1) ypostMessage. Luegopython scripts/alinhar_falas.py roteiro.json falaslos alinea con Whisper (inglés). - Nunca escribas la contraseña o las claves del usuario.
- Con una clave API en
Originalidad en cada video
Cada video nuevo necesita una idea y guión originales en el estilo infantil de esta habilidad. Antes de escribir, lee historico/roteiros.md y los archivos roteiro.json dentro de entregas/, luego compara premisa, objetivo, mecánica, intentos y giro. Cambiar colores, nombres o el objeto del mismo desafío no hace que una idea sea nueva. Guarda originalidad.json en el proyecto (premisa, objetivo, mecanica, intentos, giro, proyectos_comparados, diferencia_de_los_anteriores). Después de producir, registra el guión con python scripts/registrar_roteiro.py PROYECTO.
Cómo se maneja Studio (sin MCP, sin clics)
La tarea de línea de comandos de Roblox Studio ejecuta un script en el lugar en modo de edición e inicia Play: RobloxStudioBeta.exe -task RunScript -localPlaceFile place.rbxlx -runScriptFile script.lua -outputFile out.log -quitAfterExecution.
scripts/studio_runscript.py montar --kit --escenario studio/escenario.lua --escena studio/escena.lua --play --salida studio/pipeline.luainstala el AnimKit de esta habilidad, construye el decorado, instala la escena y ejecuta Play.scripts/studio_runscript.py rodar studio/pipeline.lua --place studio/base.rbxlx --grabar viewport.mp4abre una nueva ventana de Studio detrás de las ventanas del usuario y graba solo esa ventana. Nunca grabes todo el escritorio.- Las propias ventanas de Studio del usuario nunca se tocan.
Flujo de trabajo
- Proyecto e idea original: crea
entregas/<tema>-<fecha>. Copiamodelos/base/(comun.py,edicion.py,escenario_comun.lua) junto a las carpetas de proyectos como en un lote: cada proyecto tienegenerar_escena.py,montar_edicion.py,studio/escenario_cuerpo.luayroteiro.json. - Guión (
roteiro.json):textoen inglés para cada línea,titulo,archivo(nombre del MP4),"idiomas": ["en"],voces,destacados(palabras en amarillo) y un plan por línea. Líneas cortas, una idea cada una, con una etiqueta de emoción para ElevenLabs. Formato en references/format.md. - Voz: como se describe arriba.
- Escenario (
studio/escenario_cuerpo.lua):- Colorido y vivo, con accesorios alrededor.
- Marca cada piso con
K.piso(...). - Crea a Lulu con
K.crearChica("Lulu", K.dePie(pos, mirarA)).
- Escena (
generar_escena.py→studio/escena.lua):- La línea de tiempo proviene de los tiempos reales de la voz, y cada línea tiene
K.hablardesde el sobre del MP3. - Las expresiones siguen la emoción:
feliz,sonrisa,sorprendido,asustado,grito,nervioso,seguro,enojado,duda,mareado,entrecerrar,noqueadoyguiño, su característica distintiva. - Usa cortes secos y
K.cortarAcuando cambie de lugar. - Los movimientos de cámara terminan antes del siguiente corte (
c.hasta_corte).
- La línea de tiempo proviene de los tiempos reales de la voz, y cada línea tiene
- Auditoría automática y correcciones (obligatorio):
K.auditar(noob)(colisiones) yK.auditarCamara(noob)(regla de rostro) deben terminar contotal 0. Su cabello, moño y falda son partes blandas (Visual) y no se auditan. Luego revisa los fotogramas alrededor de cada corte, incluidos todos los fotogramas de 60 fps desde 0.05 s antes hasta 0.1 s después de cada corte. - Edición (
montar_edicion.py→ renderizadorroblox-video-editor,"entrega": "shorts"):- Subtítulos karaoke en inglés, una idea a la vez.
- Un fragmento nunca termina en un artículo o preposición; "no", "not" y "never" se muestran en coral.
- Efectos de sonido en cada acción.
- Nunca cortes un efecto a la mitad, y nunca cortes antes de que termine un zoom.
- Música con licencia corta a −24 dB por debajo de la voz.
- Revisión final:
revisar_subtitulos.pytotal 0, aproximadamente −14 LUFS con picos por debajo de −1.5 dBTP, transcripción de Whisper del audio final en inglés y comprobaciones de fotogramas. - Entrega (
fazer_short.py PROYECTO --so-conferir): el MP4 final máspublicacion.txtcon un título en inglés, descripción, hashtags, créditos de música y crédito de voz.
Reglas de contenido (niños)
- Guiones originales. Las referencias del usuario son solo una guía de formato.
- Sin promesas reales de Robux, enlaces, solicitudes de datos personales, contenido aterrador, humillación o malas palabras. Los giros son tontos y ligeros.
- Sin personajes, logotipos o música de terceros.
- Lulu es amable, curiosa y divertida. Puede fallar y reírse, pero nunca es mala.
- Varía decorados, chistes y ángulos de cámara entre videos: las voces de IA y los guiones en serie pueden ser marcados como contenido repetitivo.