Communitygithub.com

Daham0/blender-previs-one-take

Fluxo de trabalho de pré-visualização 3D em wireframe para planos-sequência. A partir de uma imagem de referência ou descrição, esta skill gera um vídeo de pré-visualização em wireframe 3D com movimentos de câmera; permite iterações em linguagem natural até o usuário aprovar; então escreve prompts detalhados de vídeo baseados nos dados de câmera validados. Ideal para planos-sequência longos, suaves e sem cruzamentos de objetos.

O que é blender-previs-one-take?

Esta skill automatiza o fluxo de trabalho de pré-visualização 3D em wireframe para planos-sequência (one-take) em vídeos gerados por IA, como no Seedance 2.5. O usuário fornece uma imagem de referência ou uma descrição em linguagem natural, e a skill produz um vídeo 3D em wireframe com o movimento de câmera desejado. Através de iterações conversacionais em português claro, o usuário ajusta o movimento até ficar satisfeito. Após a aprovação, a skill gera um prompt detalhado de vídeo, com coordenadas de câmera extraídas da prévia 3D, eliminando suposições. A skill suporta detecção automática do ambiente (Blender para precisão máxima, Three.js como fallback no navegador) e realiza quatro verificações automáticas: monotonicidade do ângulo, saída de quadro do sujeito principal, cruzamento entre objetos e colisão com o teto. Ela permite que usuários sem conhecimento técnico obtenham resultados profissionais, ajustando a câmera no 3D em vez de depender de prompts de IA 'mágicos'.

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

Perguntar na sua IA favorita

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

Documentação

Skill de Pré-visualização 3D em Wireframe para Plano-Sequência

Em uma frase: o usuário fornece uma imagem ou descrição, esta skill gera um vídeo em wireframe; após a aprovação do wireframe, escreve os prompts de vídeo; o vídeo wireframe e o prompt são enviados juntos para o modelo de vídeo. Planos-sequência longos não dependem de prompts de IA misteriosos; primeiro calcula-se como a câmera se move e deixa o usuário ver e aprovar.

0. Modo de Operação (Sempre apresentado ao usuário em apenas três etapas)

  1. O usuário fornece uma imagem de referência ou uma descrição ("10 segundos, contornando de trás para a frente lateral, os objetos na mesa começam a flutuar").
  2. A skill gera um vídeo de pré-visualização 3D em wireframe com o movimento de câmera. Ambos iteram juntos até o usuário dizer 'é exatamente esta a sensação'.
  3. Após a aprovação, duas coisas são entregues: o vídeo de pré-visualização em wireframe + o prompt de vídeo detalhado, ambos enviados para o Seedance 2.5 para gerar o vídeo final.

Como funciona internamente (cena, coordenadas, validação) é responsabilidade da skill; não exija detalhes técnicos do usuário. As regras completas de entrada, perguntas obrigatórias e tabela de tradução para linguagem natural estão em references/00-flow-intake-iteration.md. Este é o guia mestre do fluxo; leia-o antes de cada execução.

1. Fluxo Principal de Seis Fases (Ordem Imutável)

FaseO que o usuário fazO que você deve entregarCondição de aprovação
① Captar necessidadeFornecer imagem de referência / descrição em uma fraseParáfrase de 3 frases "entendi a cena", incluindo sujeito, direção da câmera, se há levitação/flutuaçãoUsuário diz "sim" ou ajusta uma frase; confirmar proporção de tela e duração
② Detectar ambienteEscolher entre duas opções (instalar / não instalar)Resultado de check_blender.py + explicação da rota em uma fraseRota clara, entrar em Rota A ou B
③ Primeiro vídeo wireframeAssistir ao vídeoArquivo mp4/webm reproduzível + 3–4 keyframes + "Diga-me se algo estiver errado"O vídeo foi gerado e entregue. Entregar apenas coordenadas = quebra de contrato
④ Iteração conversacionalDar feedback em linguagem naturalNovo vídeo v2/v3... + linha de explicação da alteraçãoApenas uma alteração por rodada; aprovação explícita do usuário
⑤ Aprovação final + escrever promptConfirmar que a sensação está corretaQuatro verificações RESULT: PASS + prompt de seis seçõesNão escrever o prompt se a verificação não passar
⑥ Entrega finalPegar material para gerar o vídeoVídeo wireframe + prompt + instrução de upload (vídeo1=referência de movimento, imagem1=referência visual)Todas as coordenadas do prompt vêm do JSON medido

As fases ③ e ④ podem ocorrer em múltiplas iterações; este é o valor principal da skill: corrigir problemas de câmera no 3D, não tentando a sorte com o modelo de vídeo.

2. Seis Regras de Ouro

  1. Ordem obrigatória: construir cena → vídeo wireframe → aprovação do usuário → depois escrever o prompt. Escrever o prompt antes de o usuário ver o vídeo resulta em trabalho desperdiçado.
  2. O prompt usa apenas a imagem de referência do usuário como base visual. O wireframe não é referência visual; serve apenas para bloquear movimento, tempo e coordenadas; qualidade visual, estilo, iluminação e cor vêm exclusivamente da imagem de referência.
  3. Movimento de câmera contínuo e unidirecional. O ângulo polar deve ser monotonicamente crescente ou decrescente; é proibido fazer zigue-zague; se houver, é falha e a curva deve ser reajustada.
  4. O sujeito nunca sai do quadro. Verificação de projeção quadro a quadro: o NDC do sujeito deve permanecer dentro da moldura de segurança; quando o sujeito levanta, a câmera sobe junto.
  5. Zero cruzamento (clipping). Se a distância entre quaisquer dois objetos em movimento em qualquer quadro for menor que o limite, é falha; resolva com a ordem "primeiro abrir espaço, depois levantar" e "objetos leves primeiro, depois pesados", não tentando forçar tudo ao mesmo tempo.
  6. O usuário fala apenas linguagem natural. O usuário diz "mais alto" ou "a cadeira bateu na perna"; você traduz para parâmetros e altera apenas esse aspecto; não explique ângulo polar, NDC ou AABB para o usuário.

3. Detecção de Ambiente e Escolha de Rota (Dica 1: Detecção e Modelagem)

check_blender.py
  ├─ Instalado → Rota A (Blender, máxima precisão, pode exportar dados quadro a quadro)
  ├─ Não instalado
  │    ├─ Usuário aceita instalar → guia versão portátil (05-blender-setup.md) → Rota A
  │    ├─ Usuário já tem outra versão/caminho → fornecer caminho → Rota A
  │    └─ Usuário recusa (ou sem permissão, sem tempo) → Rota B (Wireframe Three.js no navegador)
  └─ Rota B segue as seis fases completas, apenas como "referência de movimento"; verificação e escrita de prompt são idênticas

Tom de fala para guia de instalação — um ponto de decisão de cada vez, sem textos longos:

Agora não há Blender instalado. Duas opções:

  1. Instalo a versão portátil (~300 MB, não no disco C, não altera registro, pode ser totalmente excluída) — máxima precisão, pode exportar coordenadas medidas quadro a quadro;
  2. Não instalo; gero o vídeo wireframe no navegador usando Three.js — em minutos você vê a câmera, precisão de coordenadas um pouco menor. Qual você prefere?

Se o usuário escolher 1 → siga references/05-blender-setup.md; se 2 → references/06-threejs-fallback.md.

4. Detalhamento das Fases

① Captar necessidade

Leia references/00-flow-intake-iteration.md §1–§3: determine se a entrada é imagem, descrição ou ambas. Apenas três perguntas obrigatórias (duração/proporção de tela, direção do sujeito, intenção da câmera); tente inferir; para o restante, use valores padrão de knowledge/kb-levitation-office.md. Se o usuário disser "você decide", use os valores padrão para a primeira versão e deixe-o criticar.

③ Primeiro vídeo wireframe (Dica 3: Primeiro o wireframe)

Construa o wireframe estático e defina coordenadas mundiais (1 unidade = 1 metro, origem no chão) → trajetória de câmera parametrizada → renderização 480P de baixa amostragem → saída + keyframes. Nesta fase, não escreva o prompt. Verificação: reproduzível, sem quadros pretos, sujeito no quadro, paredes e piso da sala estáticos.

④ Iteração conversacional

Use a tabela de tradução da seção 4 de 00 para converter os comentários do usuário em parâmetros; altere apenas um aspecto por vez, gere nova versão e escreva uma linha de explicação da alteração ("v2: raio 3.45→2.95, sujeito mais preenchido no quadro final"). Convenção de nomenclatura de versão na seção 5 de 00.

⑤ Verificação final e escrita do prompt (Dica 2: Verificação automática + Dica 4: Escrever prompt baseado no wireframe)

As quatro verificações (monotonicidade do ângulo polar, sujeito saindo do quadro, clipping entre grupos, colisão com o teto) devem ter RESULT: PASS; então exporte o JSON com dados medidos quadro a quadro e escreva o prompt de seis seções. Cada coordenada no prompt deve vir exclusivamente deste JSON; é proibido usar valores estimados. Consulte references/04-prompt-format.md para o formato de escrita.

⑥ Entrega final (Integração com Seedance 2.5)

Entregue conforme a seção 6 de 00: marque o vídeo wireframe como referência de movimento/posição de câmera/tempo; a imagem de referência como a única referência visual; a primeira frase do prompt deve enfatizar "replicar rigorosamente o movimento de câmera e a ordem de levitação do vídeo de referência"; duração alinhada com o wireframe; divida o movimento em segmentos de 2–3 segundos.

5. Rota A: Manual de Execução no Blender

  • Especificações de cena e coordenadas: references/01-scene-spec.md
  • Especificações de movimento de câmera: references/02-camera-motion.md
  • Temporização de levitação por camadas e prevenção de clipping: references/03-levitation-timing.md
  • Instalação e conexão: references/05-blender-setup.md
  • Scripts:
    • scripts/build_scene_template.py — esqueleto da cena wireframe (sala, mesa, dois monitores, cadeira, formas humanas)
    • scripts/render_previs.py — renderização de pré-visualização de baixa amostragem 480P (EEVEE, sem material)
    • scripts/export_cam_data.py — exportar dados quadro a quadro de cam/ponto de foco/elevação/z dos objetos para JSON
    • scripts/validate_trajectory.py — quatro verificações (monotonicidade/saída de quadro/clipping/colisão com o teto)

Sequência de comandos (testada localmente; $BLENDER é o caminho absoluto do blender.exe; ajuste os caminhos conforme seu projeto):

# 1 Detecção
python scripts/check_blender.py --json

# 2 Construir cena + escrever trajetória orbital e animação de levitação por camadas (--orbit 1) + 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 Quatro verificações (obrigatório antes da aprovação final), deve 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 dados medidos quadro a quadro (apenas estes dados podem ser usados na escrita do prompt)
"$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 Renderização da pré-visualização: primeiro 16 quadros para teste do pipeline, depois o vídeo 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 iterações, basta repetir o passo 2 (alterar parâmetros) → passo 5 (gerar vídeo); após a aprovação final, execute os passos 3 e 4. --keys preenche apenas os pontos-chave do sujeito (cabeça, tronco, tampo da mesa, monitor principal); objetos abaixo de 1m do sujeito (assento, etc.) sairão do quadro, o que é um resultado físico da câmera. --moving preenche apenas os prefixos de objetos que se movem; se não preenchido, a verificação de clipping é omitida; objetos são agrupados pela primeira parte do nome; contato dentro do mesmo grupo não é considerado clipping.

6. Rota B: Wireframe Three.js no Navegador

  • Plano e limitações: references/06-threejs-fallback.md
  • Executável diretamente: scripts/threejs_previs.html (arquivo único, três.js via CDN, inclui reprodução de trajetória, alternância entre perspectiva/topo, exportação de JSON, gravação de webm)
  • Limitações: forma humana aproximada por blocos, material totalmente branco; apenas para verificar direção do movimento, relação de composição e tempo; não verifica iluminação e textura.
  • Saída: webm + capturas de tela dos keyframes; coordenadas exportadas pela mesma interface.

7. Especificação de Entrega do Prompt (Dica 4)

Seis seções fixas, obrigatórias: 【Unidade de Geração】 【Referência】 【Continuidade】 【Narração e Áudio】 【Linha do Tempo com Coordenadas】 【Prompt Negativo】.

Três requisitos rigorosos:

  1. Escrever baseado no wireframe, não adivinhar: cada frase de movimento de câmera deve referenciar o timecode do wireframe, ex.: "0–2.5s começa atrás e à esquerda das costas do sujeito, câmera a 0.78m de altura, raio 3.45m, ângulo polar 186°, elevação 3.7°".
  2. Separar papéis de referência: o vídeo wireframe bloqueia apenas o movimento; a imagem de referência bloqueia a cena visual; ambas devem ser escritas explicitamente.
  3. Escrever a prevenção de clipping como frases de ordem causal, não como "cuidado para não atravessar".

Técnicas de escrita, estruturas de frases, exemplos ruins e causas comuns de falha em references/04-prompt-format.md; parâmetros medidos do projeto em knowledge/kb-levitation-office.md (podem ser reutilizados como valores modelo).

8. Solução Rápida de Problemas Comuns

FenômenoCausa RaizAção
Câmera oscila para a esquerda e direitaCurva de ângulo polar não monotônica / interpolação com reboteParametrização monotônica + verificação de sinal de diferença de primeira ordem + interpolação LINEAR
Sujeito sai do quadro no meioSujeito levanta, mas a câmera não acompanhaSincronizar o eixo z da câmera e do ponto de foco com fator de seguimento de 0.8–0.95 usando keyframes
Mesa, cadeira e pessoa se cruzamPessoa e cadeira levantam ao mesmo tempoPessoa levanta primeiro, cadeira atrasa 0.4–0.7s; primeiro abre espaço horizontal, depois levanta
Equipamento colide com a mesaEquipamento e mesa levantam ao mesmo tempoEquipamento levanta primeiro ~1.3m e paira; mesa atrasa 2–3s
Sala flutua juntoPonto de foco ou relação de herança erradaApenas o grupo do sujeito sofre deslocamento em z; paredes, piso e janela permanecem estáticos
Pessoa no vídeo final vira de frente, rosto distorcidoOrientação não fixadaNa seção 【Referência】, escreva "costas / laterais fixas"; no prompt negativo, adicione "virar-se, olhar para trás, close no rosto"
Vídeo final parece modelo 3D cinzaWireframe foi usado como referência visualNa seção 【Referência】, especifique "wireframe é apenas referência de movimento"; estilo visual deve ser fotografia realista
Modelo ignora completamente o vídeo de referênciaPrimeira frase não enfatiza a replicaçãoEscreva "replicar rigorosamente o movimento de câmera e a ordem de levitação do vídeo de referência"; divida o movimento em segmentos de 2–3s
Coordenadas do prompt não correspondem ao vídeoForam usadas coordenadas estimadasVolte à fase ⑤, pegue os valores do JSON medido; é proibido digitar manualmente

9. Lista de Verificação para Entrega de Alta Qualidade

  • O usuário forneceu uma imagem de referência ou descrição, e confirmou "entendi a cena"
  • O primeiro vídeo wireframe foi realmente gerado e entregue (não apenas coordenadas)
  • As versões de iteração têm numeração e descrição da alteração; a versão final foi explicitamente aprovada pelo usuário
  • Quatro verificações RESULT: PASS
  • A imagem de referência é especificada como @imagem1 no prompt; o vídeo wireframe como referência de movimento
  • A linha do tempo é dividida em segundos; cada segmento tem "posição inicial da câmera → posição final + ponto de foco + elevação + raio"
  • A temporização por camadas especifica quem levanta primeiro, depois, altura de elevação e altura final de cada camada
  • A lógica de prevenção de clipping é escrita como frases causais
  • O prompt negativo cobre: orientação e rosto da pessoa, equipamento adicionado/removido e orientação, clipping e queda, flutuação da sala, mudança de direção da câmera, variação de estilo, legendas e marcas d'água
  • Na entrega, explique "a prévia valida apenas o movimento; a cena visual segue a imagem de referência" e forneça as instruções de upload

10. Referência Rápida de Parâmetros dos Scripts

ScriptParâmetros PrincipaisDescrição
check_blender.py--jsonDetecção apenas leitura; saída: found/path/source/version
build_scene_template.py--orbit 1 --center cx cy --dur --fps --a0 --a1 --r0 --r1 --z0 --z1 --l0 --l1 --out --csvSem --orbit, apenas cena estática; com --orbit, escreve keyframes de câmera e levitação (LINEAR)
validate_trajectory.py--center --ceiling --keys --moving --margin --tolCódigo de saída 0=PASS 1=FAIL; quatro verificações
export_cam_data.py--out --center --keysSaída [{f,cam,rad,ang,pitch,objeto:[x,y,z]}]
render_previs.py--out --res --samples --fps --start --end --enginePrimeiro 16 quadros para teste, depois vídeo completo
install_blender.ps1-TargetDir -Version `-Mirror autoofficial

Parâmetros sempre após -- para os scripts Python.

11. Discurso de Apresentação (Respondendo "O que esta skill pode fazer?")

Dê a ela uma imagem de referência, ou uma descrição; ela primeiro constrói seu movimento de câmera em 3D wireframe e mostra para você. Se algo estiver errado, ajusta; ajusta até você gostar; então escreve o prompt. O vídeo wireframe e o prompt são enviados juntos para o Seedance 2.5 gerar o vídeo final. Detecção e modelagem, quatro verificações automáticas, pré-visualização wireframe e escrita de prompt baseada no movimento de câmera — tudo incluído. Seja um plano-sequência orbital, levitação ou flutuação, a imagem é suave e sem clipes ou distorções repentinas. Com esta Skill de plano-sequência, movimentos de câmera longos ficam incrivelmente estáveis — para criar vídeos com IA, ainda precisa gastar muito tempo aprendendo prompts misteriosos?

12. Status de Autoverificação desta Skill

EtapaResultado
Detectar BlenderAprovado (4.5.15 LTS portátil, unidade D:)
Construir cena + trajetória + animação de levitaçãoAprovado (240 quadros @24fps, CSV de coordenadas salvo)
Quatro verificaçõesPASS: Saída de quadro: 0 (960 verificações NDC), Clipping novo: 0, Colisão com teto: 0, Três monotonicidades: todas True
Exportar dados quadro a quadroAprovado (JSON de 240 quadros)
Renderização da pré-visualizaçãoAprovado (EEVEE_NEXT, 16 quadros mp4 de teste normal)
Script de instalaçãoAprovado (teste -DryRun: oficial 403 → aliyun 4.5.16, ~380MB)

Parâmetros padrão do modelo em knowledge/kb-levitation-office.md; podem ser usados como ponto de partida para novos projetos.

Habilidades Relacionadas