Skip to main content

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

  1. Construa sua rede de nós (ex: um sistema de fratura customizado)
  2. Selecione todos os nós
  3. Clique direito → Create Digital Asset
  4. Defina: nome, label, categoria, onde salvar o .hda
  5. Configure os parâmetros expostos no Type Properties
  6. 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 atual
geo = hou.node('/obj').createNode('geo')
box = geo.node('').createNode('box')
box.parm('sizex').set(2.0) # Define largura como 2
# Renderizar
rop = hou.node('/out').createNode('ifd') # Mantra ROP
rop.parm('vm_picture').set('/tmp/render.$F4.exr')
rop.parm('trange').set(1) # Frame range
rop.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


Última atualização: 2026 | Parte do wiki Zé do Motion