Copy to Points e Instancing
Se o MoGraph do C4D tem o Cloner, o Houdini tem o Copy to Points. Mas no Houdini você tem controle absoluto de como a cópia acontece — porque é tudo atributo.
Copy to Points: O Conceito
O SOP Copy to Points pega um objeto (a “estampa”) e cria uma cópia em cada ponto de outro objeto (os “pontos de destino”).
[Box] ──→ Copy to Points ──→ resultado: um cubo em cada ponto do grid[Grid] ─↗A potência está nos atributos dos pontos de destino: se um ponto tem @pscale = 2, a cópia ali será duas vezes maior. Se tem @N (normal), a cópia orienta baseada nessa normal.
Atributos que Afetam a Cópia
| Atributo | Tipo | Efeito |
|---|---|---|
@pscale | float | Escala uniforme |
@scale | vector3 | Escala por eixo |
@orient | quaternion | Rotação via quaternion |
@N | vector3 | Normal (orienta a cópia) |
@up | vector3 | Vetor “cima” para orientação |
@Cd | vector3 | Cor herdada pela cópia |
Randomizando as Cópias com Wrangle
Para adicionar variação aleatória antes do Copy to Points, use um Attribute Wrangle nos pontos de destino:
// Escala aleatória por ponto@pscale = rand(@ptnum) * 2 + 0.5;
// Rotação aleatória@orient = quaternion(rand(@ptnum) * 6.28, {0,1,0});
// Cor por posição@Cd = set(@P.x, @P.y, @P.z) * 0.5 + 0.5;Variando a Estampa (Multiple Objects)
Para usar múltiplos objetos diferentes como estampa:
- Crie múltiplos objetos e Merge numa única geometria com grupos separados
- No Copy to Points, ative Pack and Instance
- Use o atributo
@instancenos pontos de destino para controlar qual variação vai em cada ponto:
// Atribui aleatoriamente entre 3 variações (grupos 0, 1, 2)i@variant = int(rand(@ptnum) * 3);Scatter: Distribuindo Pontos em Superfície
O SOP Scatter gera pontos distribuídos sobre uma superfície, respeitando a área de cada primitiva:
[Sphere] → Scatter (1000 pontos) → Copy to Points → [Box] copiado em 1000 pontosParâmetros úteis do Scatter:
- Count — número de pontos
- Relax — distribui mais uniformemente (Poisson disk)
- Force Total Count — garante o número exato
- Seed — varia a distribuição aleatória
Animação com @Time e @Frame
Para animar as cópias com base em dados dos pontos:
// Cada cópia rotaciona em velocidade diferente baseada no idfloat speed = rand(@ptnum) * 2 + 0.5;float angle = @Time * speed * 6.28;@orient = quaternion(angle, {0,1,0});O @Time é o tempo atual em segundos. @Frame é o frame atual. Ambos mudam a cada frame, criando animação procedural.
Recursos
- CGWiki: Copy to Points — tokeru.com/cgwiki
- SideFX Tutorials: MoGraph in Houdini — sidefx.com/tutorials
- Entagma — entagma.com — tutoriais de motion em Houdini
Última atualização: 2026 | Parte do wiki Zé do Motion