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)
- 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").
- 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'.
- 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)
| Fase | O que o usuário faz | O que você deve entregar | Condição de aprovação |
|---|---|---|---|
| ① Captar necessidade | Fornecer imagem de referência / descrição em uma frase | Paráfrase de 3 frases "entendi a cena", incluindo sujeito, direção da câmera, se há levitação/flutuação | Usuário diz "sim" ou ajusta uma frase; confirmar proporção de tela e duração |
| ② Detectar ambiente | Escolher entre duas opções (instalar / não instalar) | Resultado de check_blender.py + explicação da rota em uma frase | Rota clara, entrar em Rota A ou B |
| ③ Primeiro vídeo wireframe | Assistir ao vídeo | Arquivo 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 conversacional | Dar feedback em linguagem natural | Novo vídeo v2/v3... + linha de explicação da alteração | Apenas uma alteração por rodada; aprovação explícita do usuário |
| ⑤ Aprovação final + escrever prompt | Confirmar que a sensação está correta | Quatro verificações RESULT: PASS + prompt de seis seções | Não escrever o prompt se a verificação não passar |
| ⑥ Entrega final | Pegar material para gerar o vídeo | Ví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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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;
- 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 JSONscripts/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:
- 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°".
- 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.
- 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ômeno | Causa Raiz | Ação |
|---|---|---|
| Câmera oscila para a esquerda e direita | Curva de ângulo polar não monotônica / interpolação com rebote | Parametrização monotônica + verificação de sinal de diferença de primeira ordem + interpolação LINEAR |
| Sujeito sai do quadro no meio | Sujeito levanta, mas a câmera não acompanha | Sincronizar 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 cruzam | Pessoa e cadeira levantam ao mesmo tempo | Pessoa levanta primeiro, cadeira atrasa 0.4–0.7s; primeiro abre espaço horizontal, depois levanta |
| Equipamento colide com a mesa | Equipamento e mesa levantam ao mesmo tempo | Equipamento levanta primeiro ~1.3m e paira; mesa atrasa 2–3s |
| Sala flutua junto | Ponto de foco ou relação de herança errada | Apenas o grupo do sujeito sofre deslocamento em z; paredes, piso e janela permanecem estáticos |
| Pessoa no vídeo final vira de frente, rosto distorcido | Orientação não fixada | Na 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 cinza | Wireframe foi usado como referência visual | Na 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ência | Primeira frase não enfatiza a replicação | Escreva "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ídeo | Foram usadas coordenadas estimadas | Volte à 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
| Script | Parâmetros Principais | Descrição |
|---|---|---|
check_blender.py | --json | Detecçã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 --csv | Sem --orbit, apenas cena estática; com --orbit, escreve keyframes de câmera e levitação (LINEAR) |
validate_trajectory.py | --center --ceiling --keys --moving --margin --tol | Código de saída 0=PASS 1=FAIL; quatro verificações |
export_cam_data.py | --out --center --keys | Saída [{f,cam,rad,ang,pitch,objeto:[x,y,z]}] |
render_previs.py | --out --res --samples --fps --start --end --engine | Primeiro 16 quadros para teste, depois vídeo completo |
install_blender.ps1 | -TargetDir -Version `-Mirror auto | official |
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
| Etapa | Resultado |
|---|---|
| Detectar Blender | Aprovado (4.5.15 LTS portátil, unidade D:) |
| Construir cena + trajetória + animação de levitação | Aprovado (240 quadros @24fps, CSV de coordenadas salvo) |
| Quatro verificações | PASS: 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 quadro | Aprovado (JSON de 240 quadros) |
| Renderização da pré-visualização | Aprovado (EEVEE_NEXT, 16 quadros mp4 de teste normal) |
| Script de instalação | Aprovado (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.