Communitygithub.com

tareqmm535-crypto/cartoon-audio-short

Crie um curta-metragem de cartoon animado vertical em Árabe ou Inglês. Oferece 10 ideias, escreve o roteiro e transforma sua narração em um MP4 finalizado com música ambiente e efeitos sonoros sob a voz. Use para qualquer pedido de vídeo curto animado ou história animada, incluindo pedidos em árabe como فيديو كرتون، قصة متحركة، أنميشن، شورتس.

O que é cartoon-audio-short?

Esta habilidade para agentes de IA (como Claude Code, Cursor, Codex) permite que você crie curtas-metragens de cartoon animados verticais a partir de uma ideia, roteiro ou narração já gravada. Ela suporta os idiomas Árabe e Inglês, com suporte a dialetos árabes (iraquiano, egípcio, etc.) e oferece um processo completo: geração de 10 ideias de vídeo com títulos, ganchos e reviravoltas; escrita de roteiro otimizado para narração seguindo uma fórmula de 5 partes com dicas de gravação; e montagem final do vídeo em MP4 1080×1920 a 30 FPS com personagens cartoon 2D estilo "bean-head", fundos 3D coloridos e câmeras suaves. A habilidade é particularmente útil para criadores de conteúdo, educadores e profissionais de marketing que desejam produzir vídeos curtos animados de alta qualidade sem edição manual. Ela funciona recebendo a narração do usuário (ou gerando um roteiro para ele gravar), sincronizando a animação com o áudio de forma precisa (com reações visuais 0-3 frames antes da palavra correspondente) e mantendo a voz do usuário inalterada, enquanto a música de fundo é mixada a 16 dB abaixo da voz e os efeitos sonoros a 50% do volume da narração. A habilidade também inclui regras rigorosas para evitar a recriação de vídeos existentes, personagens reais vivos e conteúdo político ou gráfico, garantindo originalidade e adequação.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tareqmm535-crypto/cartoon-short-kit/tree/HEAD

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Curta de cartoon: ideia → roteiro → narração → MP4 finalizado

O visual: personagens cartoon 2D estilo "bean-head" com contornos grossos em preto, desenhados como "cartas" em um canvas, em um mundo 3D colorido com contornos a tinta preta, texturas pintadas, profundidade de campo e câmeras deslizantes. A saída é 1080×1920, 30 fps, exatamente com a duração da narração. A voz do usuário permanece inalterada. A música de fundo e os efeitos sonoros são sintetizados: música 16 dB abaixo da voz, efeitos sonoros a 50% do volume da voz ou menos. Comprovado em "The Soldier Who Never Left" (19,7 s, 8 cenas).

Se esta habilidade chegou como arquivos no chat

O usuário pode enviar SKILL.md e cartoon-short-kit.zip e dizer algo como "leia esta habilidade, instale-a e use-a" (اقرأ هذه المهارة، وثبّتها، واستخدمها). Então:

  1. Leia este arquivo inteiro e siga-o. Não explique o que é uma habilidade e não faça perguntas de configuração.
  2. Descompacte o kit em uma pasta gravável (veja 4.0). Confirme que engine/main.js e vendor/three.module.js estão lá.
  3. Se este ambiente tem uma pasta pessoal de habilidades (por exemplo ~/.claude/skills/), copie SKILL.md e o kit para cartoon-audio-short/ lá. Se não tiver nenhuma, não diga que está instalado permanentemente: diga em uma linha curta que está pronto para este chat e que os dois arquivos precisam ser enviados novamente em um novo chat.
  4. Responda em uma linha curta e vá direto para a Etapa 1.

Idioma: Árabe ou Inglês

  • Chat: responda no idioma das mensagens do usuário desde a primeira resposta. Se eles escreverem em árabe ou pedirem árabe, cada mensagem é em árabe: perguntas, rótulos de opções e descrições, a lista de tarefas, ideias, notas de progresso, erros e a nota de entrega. Use palavras simples do dia a dia e corresponda ao dialeto deles se escreverem em um. O inglês permanece apenas para nomes de arquivos e comandos, em sua própria linha para que o texto da direita para a esquerda não os embaralhe.
  • Roteiro: o idioma do roteiro segue o chat, a menos que peçam o contrário. "أريد أفكار بالعربي" digitado em qualquer pergunta significa Etapa 2, em árabe.
  • Variedade árabe: escreva em árabe padrão simples, a menos que eles escrevam ou peçam um dialeto (iraquiano, egípcio, do Golfo, levantino e assim por diante). Não pare para perguntar. Termine a resposta do roteiro com uma linha: "تريده بلهجة ثانية؟ اكتب اللهجة وسأعيد كتابته." Nunca misture padrão e dialeto em um roteiro, a menos que eles peçam.
  • Perguntas fixas em árabe. Use esta redação:
    • "من أين نبدأ؟"
      • "الصوت جاهز": ارفع الملف الصوتي، ومعه النص إن وُجد، وسأصنع الفيديو.
      • "عندي نص": سأحسّنه وأعطيك نصائح للتسجيل، ثم أصنع الفيديو بعد رفع الصوت.
      • "أحتاج إلى أفكار ونص": سأقترح عشر أفكار أصلية، ثم أكتب النص للفكرة التي تختارها.
    • "كم مدة الفيديو؟"
      • "من 20 إلى 30 ثانية (مُوصى به)": نحو 40 إلى 60 كلمة.
      • "من 30 إلى 45 ثانية": نحو 60 إلى 90 كلمة.
      • "من 45 إلى 60 ثانية": نحو 90 إلى 120 كلمة.

Regras

  • Histórias, personagens e cenas são sempre originais. Nunca recrie o vídeo de outro criador cena por cena. Ofereça uma abordagem original sobre a mesma ideia.
  • Nenhuma pessoa real viva nomeada como personagem, e nenhum mascote de marca ou logotipo.
  • Sem legendas, a menos que o usuário peça. Texto diegético (uma mensagem esculpida, uma placa) é aceitável, e deve ser lido corretamente (não espelhado). Placas, etiquetas e manchetes usam o idioma do roteiro: um vídeo em árabe recebe "بِيعَ", não "SOLD". Desenhe-as como em 4.3.
  • Nunca edite ou reajuste o tempo da voz. A imagem é sincronizada com ela, e cada reação visual ocorre 0-3 frames antes de sua palavra.
  • Níveis de áudio: a música de fundo fica 16 dB abaixo da voz (RMS com porta), para que a narração permaneça clara. Os efeitos sonoros ficam a 50% ou ligeiramente menos, com picos limitados para que nenhum som se destaque sobre a narração. Sempre faça a mixagem com mix.py, nunca manualmente. Não use ducking ou compressão que altere essa proporção; apenas um ganho linear mais um limitador de pico é aplicado a toda a mixagem.
  • Mantenha o usuário informado com uma lista de tarefas. Envie uma folha de contato de imagens fixas antes da renderização longa.

Etapa 1: Captação (sempre primeiro)

Se um arquivo de áudio já estiver anexado, pule para a Etapa 4. Se um roteiro também foi fornecido, use-o para o tempo. Caso contrário, faça uma AskUserQuestion (ou texto simples se essa ferramenta estiver faltando): "De onde você está partindo?"

  • Narração pronta: peça para enviá-la, junto com o texto do roteiro se tiver (o roteiro torna o tempo exato). Vá para a Etapa 4 quando chegar.
  • Tenho um roteiro, preciso da narração: aperfeiçoe o roteiro conforme a Etapa 3, se necessário, devolva-o com dicas de gravação, peça o upload e vá para a Etapa 4.
  • Preciso de ideias de vídeo e um roteiro: vá para a Etapa 2. Pergunte também a duração alvo se eles não disseram. O padrão é 20-30 s; 45-60 s é permitido. Em um chat em árabe, use a redação sob Idioma.

Etapa 2: 10 ideias de vídeo

Dê exatamente 10 ideias em uma resposta, numeradas, e peça ao usuário que responda com um número (ou "mais"). Cada ideia recebe:

  • Título (5-8 palavras, que desperte curiosidade, por exemplo, "O Soldado Que Nunca Partiu").
  • Linha de gancho: a primeira frase falada, um paradoxo apresentado como fato ("Um homem vendeu a Torre Eiffel. Duas vezes.").
  • A reviravolta em uma linha (a consequência irônica que encerra o vídeo).
  • Por que anima bem: os 2-3 grandes momentos visuais (um colapso, uma revelação, uma perseguição).
  • Verdade ou lenda: diga claramente se é história documentada, um relato contestado ou folclore.

O que torna uma ideia "perfeita" para este formato:

  • Uma história surpreendente com uma causa e efeito físicos que você pode mostrar.
  • Um personagem comum claro, riscos que aumentam e uma reviravolta na última linha.
  • Um cenário que pode ser construído a partir de formas 3D simples mais cartas de cartoon (cidades, pontes, navios, castelos, desertos, laboratórios, palácios).
  • Misture as 10 entre épocas e temas: antigo, medieval, 1800s, moderno, ciência, animais, invenções, desastres, leis estranhas, acidentes de sorte.
  • Para qualquer coisa apresentada como verdadeira, verifique os fatos principais com uma pesquisa na web antes de oferecê-la. Não apresente uma lenda viral como fato. Se o usuário quiser de qualquer forma, enquadre-a como "a lenda diz".
  • Nenhuma pessoa real viva como alvo de uma piada, nada gráfico e nada político.

Para ideias em árabe:

  • Escreva o título, gancho, reviravolta e notas em árabe. Escreva o gancho como uma frase árabe natural, não uma tradução. Dê a nomes estrangeiros sua grafia árabe usual.
  • Misture histórias da história e ciência árabe e islâmica com histórias mundiais, para que a lista pareça feita para este público.
  • Pesquise em árabe também, além de inglês. Histórias árabes populares também se espalham sem fontes, então rotule-as com Verdade ou lenda da mesma forma.
  • Nunca mostre profetas, seus companheiros ou outras figuras sagradas como personagens. Não faça piadas sobre religião, seitas, tribos ou nacionalidades.

Etapa 3: Roteiro (após a escolha)

Escreva apenas a narração (sem instruções de cena no texto falado). O inglês tem cerca de 3,7 palavras/s: 20 s ≈ 75 palavras, 30 s ≈ 110, 60 s ≈ 220. O árabe é mais lento, cerca de 2 palavras/s: 20 s ≈ 40 palavras, 30 s ≈ 60, 60 s ≈ 120. As palavras árabes têm mais sílabas, e vozes árabes reais medidas deram 1,6-2,1 palavras/s. Fórmula:

  1. Gancho (frase 1, sem introdução): o fato absurdo.
  2. Cenário em 1-2 linhas: quando, onde, quem, um detalhe concreto.
  3. Escalada, 2-4 batidas, cada uma maior. Outros duvidam ou zombam. Use uma piada de exagero.
  4. Mistério ou pivô: "Mas quando..." / "Veja," apresenta o mecanismo real, frequentemente com uma analogia cotidiana.
  5. Reviravolta / consequência: curta, irônica e as últimas palavras do vídeo. Use inglês falado simples, contrações, frases de cerca de 8-15 palavras e números escritos por extenso. Nunca descreva o que o espectador já vê.

Para um roteiro em árabe:

  • Mantenha as frases com cerca de 6-12 palavras e use a mesma fórmula de cinco partes. Pivôs como "لكن عندما…" e "والسبب؟" funcionam bem.
  • Escreva números e anos por extenso (ألف وتسعمئة وأربعة وتسعون), e soletre palavras estrangeiras e nomes de marcas em letras árabes, para que a voz os leia corretamente.
  • Pontue para a voz: "،" e "." para pausas, "…" para uma pausa antes de uma revelação e "؟" para perguntas. O tempo também usa esta pontuação.
  • Dê um bloco de voz copiável pronto para colar no gerador de voz:
    • Tashkeel em cada palavra, o que ajuda mais em nomes e palavras com mais de uma leitura. Deixe de fora as terminações de caso que um narrador não diria e escreva o dialeto como é falado. Se pedirem para não usar tashkeel, ou soar errado, remova-o.
    • Tags de áudio para Eleven v3 em inglês, como [excited], [curious], [serious], [whispers], [warmly]. Use uma ou duas por grupo de frases no máximo, apenas onde as palavras as justificam.
    • "g" iraquiano: escreva گ e چ onde o som falado precisar deles (تِگْدَر, لْگِيت), já que ك lê-se como "k".
    • Partes: para um roteiro com mais de cerca de 700 caracteres, divida-o em partes numeradas no final das frases.
  • A contagem de palavras e a duração usam a taxa árabe acima, com tags e tashkeel ignorados.

Em seguida, responda com:

  • O roteiro em um bloco copiável, com a contagem de palavras e duração estimada.
  • Um plano visual de um parágrafo (as cenas que você animará).
  • Dicas de gravação: uma voz de narrador estável e calorosa; ElevenLabs funciona bem (uma voz de narrador grave, velocidade cerca de 1,05-1,1, estabilidade cerca de 45-55%). Mp3 ou wav é aceitável. Deixe pausas naturais no final das frases. Exporte sem música.
  • Dicas de gravação em árabe: use Eleven v3, porque modelos mais antigos leem as [tags] em voz alta. Comece com Estabilidade em Natural e velocidade cerca de 0,95, e tente as primeiras frases antes de gerar tudo. Com outro gerador, exclua as tags primeiro. A própria voz deles funciona também, sem as tags ou tashkeel.
  • O pedido: "Envie a narração quando estiver pronta e eu farei o vídeo completo." Mantenha o texto final do roteiro. Ele impulsiona o tempo na Etapa 4, portanto nenhum reconhecimento de fala é necessário. Se gravaram uma versão alterada, peça o texto final.

Etapa 4: Construir o vídeo (após o upload da narração)

Faça tudo daqui em diante sem parar. Faça perguntas apenas se o tempo não puder ser resolvido.

4.0 Obter o kit

O kit de código contém o mecanismo, ferramentas, exemplo prático, three.js r160 fornecido, a biblioteca toon.ts Pen de github.com/mromidev/claude-animated-shorts (ambos MIT) e a fonte árabe Lalezar (SIL OFL). Encontre-o nesta ordem e trate-o como somente leitura:

  1. Uma pasta kit/ ao lado deste SKILL.md, encontrada com find / -name SKILL.md -path "*cartoon-audio-short*" 2>/dev/null.
  2. Uma pasta cartoon-short-kit já descompactada.
  3. cartoon-short-kit.zip entre os arquivos enviados neste chat: find / -name "cartoon-short-kit*.zip" 2>/dev/null, depois descompacte-o para ~/cartoon-short-kit-src/. O kit é a pasta dentro dela que contém engine/.

Depois execute bash <kit>/tools/setup.sh ~/shorts/<slug>. Ele copia o mecanismo e as ferramentas para o projeto, instala o three.js fornecido, remove os tipos de toon.ts com Node 22 module.stripTypeScriptTypes e vincula o Playwright. Nenhuma rede é necessária. Se os arquivos fornecidos estiverem faltando, ele recorre ao npm ou a um clone git.

  • Requisitos: Node 22.6+, Python 3 com numpy + Pillow, ffmpeg e Playwright com Chromium (npm i -g playwright && npx playwright install chromium se estiver faltando).
  • Se os registros de pacotes estiverem bloqueados, o git via GitHub geralmente funciona. Nunca desabilite TLS ou desvie do proxy.
  • Chromium: use o navegador Playwright pré-instalado com --use-angle=swiftshader --enable-unsafe-swiftshader --ignore-gpu-blocklist. Isso fornece WebGL de CPU a cerca de 3-10 s por frame.

4.1 Tempo

Execute python3 timing.py voice.mp3 script.txt --out work. Adicione --lang ar para árabe se não houver roteiro. O roteiro pode ser o bloco de voz exato: ele remove [tags] e tashkeel, e também divide frases na pontuação árabe.

  • Com whisper ou faster-whisper instalados, ele usa timestamps de palavras. Para árabe, usa um modelo multilíngue e mantém as próprias palavras do roteiro, para que uma palavra de dialeto ouvida incorretamente não possa alterar o texto.
  • Caso contrário, ele alinha frases do roteiro (divididas por pontuação) a segmentos de fala detectados por silêncio, com um DP que corresponde sílabas à duração e penaliza finais de frase dentro de um segmento e grandes lacunas dentro de uma frase.
  • Sem ASR e sem roteiro, peça o roteiro. Claude não pode ouvir áudio.
  • Verifique work/phrases.json: as pausas devem cair no final das frases. Quadros totais = round(duração × 30).

4.2 Plano de cenas (work/PLAN.md antes do código)

Faça uma linha por cena: quadros, palavras, cenário, luz, movimento de câmera, personagens/poses/expressões, efeitos e indicação de SFX.

  • O quadro 0 já é a imagem do gancho.
  • Geralmente uma cena por frase. Mescle frases pequenas na próxima cena.
  • Ilustre cada frase literalmente. Os adereços carregam as piadas.
  • Varie os tamanhos de cena: gancho em PMC → plano amplo de revelação → plano de dois → close-up de inserção no objeto-chave → close-up de reação → movimento de ambiente para a consequência.
  • Use luz para as batidas: dia para normal, dourado para declínio ou drama, azul noturno para explicação. Um salto no tempo recebe um flash branco de 6 quadros.
  • A linha de reviravolta recebe um sting (música para, batida baixa, push-in com rotação). A consequência física da última cena chega na palavra final.

4.3 Mundo (web/main.js)

Mantenha as seções do mecanismo: materiais toon, contorno a tinta, add/tbox, céu, luzes, cartas, alvos de renderização/pós, applyLight, drawActors, swapForNd, renderFrame. Substitua o mundo de exemplo entre // ---------- world ---------- e // ---------- cards ----------, mais as partes de história de worldState().

  • Construa a partir de primitivas com texturas de canvas pintadas (paint.js: tábuas, vigas, madeira podre, pedra, musgo/heras, grama, terra, gesso, telhas, mármore, faixas, texto esculpido). Escreva novos pintores no mesmo estilo plano com costuras escuras.
  • Use tbox para densidade constante de texel, um gradiente toon de 2 etapas e névoa = cor do horizonte.
  • Fundo: colinas (esferas meio enterradas), montanhas (cones + tampas de neve), ciprestes/pinheiros, casas distantes, placas de nuvens pintadas.
  • Peças de cenário (colapsos, quedas, portas) são grupos pivotados impulsionados por progresso 0..1 de worldAt(f), com partes suavizadas e escalonadas.
  • Texto diegético curvo usa UVs planares. Verifique se não está espelhado.
  • Texto árabe em qualquer coisa: use P.signCanvas(text, opts) com P.tex() para placas e tags, P.drawText() em seu próprio canvas, ou P.carvedText() para gravação. Eles carregam a fonte fornecida, configuram da direita para a esquerda e desenham strings inteiras. Nunca desenhe uma letra árabe por vez.

4.4 Cartas de personagens (cards/)

Desenhe personagens como cartas planas com contorno grosso. A pasta tem modelos de exemplo. Copie-os e troque as imagens. Os tamanhos padrão são 300×500 px, a 150 DPI, com uma máscara "pegajosa" que cola a carta ao chão.

4.5 Renderização de cena

Execute cada cena com python3 render.py work/scene_*.json work/ ou através do script principal. Verifique as imagens de saída em work/frames/.

4.6 Mixagem de áudio

Use mix.py para combinar narração, música e SFX nos níveis especificados (música 16 dB abaixo, SFX a 50%). Gere o áudio final em work/audio.mp3.

4.7 Montagem final

Combine quadros e áudio com ffmpeg:

ffmpeg -r 30 -i work/frames/frame_%04d.png -i work/audio.mp3 -c:v libx264 -pix_fmt yuv420p final_video.mp4

Etapa 5: Entrega

Envie o final_video.mp4 para o usuário com uma nota curta e a lista de tarefas concluída.

Habilidades Relacionadas