Workflow Modular
Não constrói animação. Constrói sistema. Quando o cliente pede 9:16, você não refaz nada.
A ideia é simples: master comp com pré-comps autônomas, tudo conectado a uma null de controles. Muda o slider, o projeto inteiro muda junto.
Master comp
A master comp é o output final. Ela não anima nada diretamente: só organiza pré-comps no espaço e no tempo.
MASTER COMP (16:9)├── [PRE-COMP] background├── [PRE-COMP] logo animation├── [PRE-COMP] title block├── [PRE-COMP] CTA└── [NULO] CONTROLSPra versão 9:16, cria uma nova master comp com as mesmas pré-comps reposicionadas. Zero retrabalho na animação.
Nulo CONTROLS
Toda master modular tem um nulo de controles. Aqui moram os sliders que definem os parâmetros globais:
NULO: [CONTROLS]├── slider: "Duração Total" (15, 30, 60 segundos)├── slider: "Versão" (1 = padrão, 2 = var A, 3 = var B)├── slider: "Cor Principal" (0-360, hue HSL)├── slider: "Logo Scale" (100 = padrão)├── checkbox: "Mostrar CTA"└── slider: "Offset de Entrada" (delay geral)Cada elemento referencia esses sliders. Versão de 30 segundos: muda o slider. Outra paleta: gira o hue.
Referenciando de dentro de uma pré-comp
// dentro de uma pré-comp, puxa da master comp pelo nomemasterComp = comp("MASTER COMP");ctrl = masterComp.layer("[CONTROLS]");
dur = ctrl.effect("Duração Total")("Slider");offset = ctrl.effect("Offset de Entrada")("Slider");Caution
Isso cria dependência de nome entre pré-comp e master comp. Documenta quais pré-comps dependem de qual master.
Duração dinâmica
// timing proporcional à duração total// elemento que entra em 20% e sai em 80% semprectrl = comp("MASTER COMP").layer("[CONTROLS]");totalDur = ctrl.effect("Duração Total")("Slider");
entryAt = totalDur * 0.20;exitAt = totalDur * 0.80;// loop que preenche a duração disponível// coloca no Time Remap da pré-comploopOut("cycle")Sistema de cores
Em vez de cor hardcoded em cada shape, deriva tudo de um hue central. Gira um slider e toda a paleta muda.
// converte slider de HUE em cor RGB pro Fill Effectctrl = thisComp.layer("[CONTROLS]");hue = ctrl.effect("Cor Principal")("Slider") / 360;
sat = 0.85;lig = 0.55;
function hue2rgb(p, q, t) { if (t < 0) t += 1; if (t > 1) t -= 1; if (t < 1/6) return p + (q - p) * 6 * t; if (t < 1/2) return q; if (t < 2/3) return p + (q - p) * (2/3 - t) * 6; return p;}
q = lig < 0.5 ? lig * (1 + sat) : lig + sat - lig * sat;p = 2 * lig - q;
r = hue2rgb(p, q, hue + 1/3);g = hue2rgb(p, q, hue);b = hue2rgb(p, q, hue - 1/3);
[r, g, b, 1]// cor complementar automática: hue + 180°ctrl = thisComp.layer("[CONTROLS]");hue = (ctrl.effect("Cor Principal")("Slider") + 180) % 360;// ... mesmo código de conversão acimaMulti-formato sem retrabalho
PROJECT/├── MASTER_16x9/ 1920×1080├── MASTER_9x16/ 1080×1920├── MASTER_1x1/ 1080×1080└── PRE-COMPS/ ├── LOGO_ANIM/ ├── TITLE_BLOCK/ └── BACKGROUND/Expressões de posicionamento relativo:
// centraliza horizontalmente em qualquer formato[thisComp.width / 2, value[1]]
// ancora ao rodapé[value[0], thisComp.height * 0.92]
// escala pra preencher a comp (fit to comp)compW = thisComp.width;compH = thisComp.height;srcW = 1920;srcH = 1080;
scaleX = compW / srcW * 100;scaleY = compH / srcH * 100;[Math.max(scaleX, scaleY), Math.max(scaleX, scaleY)]Versões por slider
// posição do logo baseada na versãoctrl = thisComp.layer("[CONTROLS]");versao = ctrl.effect("Versão")("Slider");
if (versao == 1) { [160, value[1]]} else if (versao == 2) { [thisComp.width / 2, value[1]]} else { [thisComp.width - 160, value[1]]}// visibilidade por checkboxctrl = thisComp.layer("[CONTROLS]");mostrarCTA = ctrl.effect("Mostrar CTA")("Checkbox");mostrarCTA ? 100 : 0Essential Graphics pra expor controles de pré-comp
Parâmetros de uma pré-comp aparecem editáveis diretamente na master comp, sem entrar na pré-comp.
- Dentro da pré-comp:
Window > Essential Graphics - Arrasta as propriedades que quer expor (texto, cor, slider)
- Na master comp, seleciona a pré-comp e abre Effect Controls
- Os parâmetros aparecem lá
Ótimo pra entregar template pro cliente ou pra um editor que não deve mexer na estrutura interna. Tem mais detalhes na página de Essential Graphics.
Checklist
- nulo CONTROLS criado com todos os sliders necessários
- estrutura de pré-comps definida (background, hero, overlay, CTA)
- posicionamentos usando expressões relativas (%, não px fixo)
- duração controlada por slider, não por tamanho de comp
- paleta derivada de um hue central por expressão
- Essential Graphics nas pré-comps que serão reutilizadas
- master comps criadas pra todos os formatos
- pasta de renders organizada por formato
[CLIENTE]_[CAMPANHA]_[VERSÃO]_[FORMATO]_[DATA]ex: nike_run_v2_9x16_2026-03