HDAs e Automação
HDAs (Houdini Digital Assets) são o sistema de encapsulamento do Houdini — você empacota uma rede inteira num “plugin” reutilizável. É a forma de criar ferramentas próprias e compartilhá-las com a equipe.
O Que é um HDA
Um HDA (antes chamado de OTL — Operator Type Library) é um nó Houdini customizado que você cria empacotando uma rede existente. Uma vez criado:
- Aparece na Tab menu como qualquer nó nativo
- Tem seus próprios parâmetros expostos
- Pode ser salvo e compartilhado como arquivo
.hda - Outros usuários instalaram e usam sem ver o conteúdo interno
É o equivalente das Macros do Fusion ou do MOGRT do AE, mas muito mais poderoso.
Criando um HDA
- Construa sua rede de nós (ex: um sistema de fratura customizado)
- Selecione todos os nós
- Clique direito →
Create Digital Asset - Defina: nome, label, categoria, onde salvar o
.hda - Configure os parâmetros expostos no Type Properties
- Salve
Agora seu sistema aparece como um único nó com os parâmetros que você definiu.
Expondo Parâmetros
No Type Properties (ao criar ou editar o HDA):
- Aba Parameters — define os controles visíveis
- Arraste parâmetros internos para a lista ou crie novos
- Configure tipos: Float, Integer, String, Toggle (checkbox), Color, etc.
- Organize em folders e separadores
HDAs para Produção
Em estúdios profissionais, HDAs são a base de pipelines:
- HDA de “character setup” que rigga personagens automaticamente
- HDA de “destruction” que fratura e configura a simulação com um clique
- HDA de “crowd” que distribui e anima personagens em massa
Para motion design, um HDA de “text animation system” que pega texto e anima entrada/saída com easing configurável seria muito útil.
Automação com Python no Houdini
O Houdini tem uma API Python completa para automação:
import hou
# Criar um nó Box no contexto atualgeo = hou.node('/obj').createNode('geo')box = geo.node('').createNode('box')box.parm('sizex').set(2.0) # Define largura como 2
# Renderizarrop = hou.node('/out').createNode('ifd') # Mantra ROProp.parm('vm_picture').set('/tmp/render.$F4.exr')rop.parm('trange').set(1) # Frame rangerop.render()Scripts Python podem:
- Criar cenas proceduralmente a partir de dados externos (CSV, JSON, banco de dados)
- Automatizar renders batch
- Gerar variações de um mesmo setup
- Integrar com pipelines de produção (Shotgrid, Ftrack)
Comunicação com o AE via Scripts
Para projetos que precisam de dados específicos do Houdini no AE:
Exportar dados como JSON/CSV:
import hou, json
data = {}for pt in hou.node('/obj/geo1').geometry().points(): data[pt.number()] = { 'position': list(pt.position()), 'color': list(pt.attribValue('Cd')) }
with open('/tmp/houdini_data.json', 'w') as f: json.dump(data, f)No AE (via script ExtendScript): Importe o JSON e use os dados para posicionar layers, criar null objects, ou alimentar expressões.
Recursos
- SideFX: HDAs — sidefx.com/docs/houdini/assets
- SideFX: Python API — sidefx.com/docs/houdini/hom
- Toadstorm Blog — toadstorm.com — scripting e automação no Houdini
Última atualização: 2026 | Parte do wiki Zé do Motion