はじめに

別メンバーがHoudiniで演出を作っており、プレビューのし易さを加味したい。

エフェクトで利用するスプラインをHoudiniで作成→Unreal Engineに持っていくというワークフロー

HoudiniからUEにスプラインを持っていくワークフロー

  1. Houdiniからpython nodeを使ってスプラインの頂点データ(P,N,tangentu)をcsvでエクスポート
import csv
file_name = 'spiral.csv'
node_path = '/obj/geo1/OUT'
node = hou.node(node_path)

def attribute_to_csv_format(attr_name, point):
    """指定されたアトリビュートの値をフォーマットします。"""
    attr_value = point.attribValue(attr_name)
    return '(X={}, Y={}, Z={})'.format(attr_value[0], attr_value[1], attr_value[2])

lines = []
lines.append("---,N,P,tangentu")

def Export():
    for point in node.geometry().points():
        N = attribute_to_csv_format('N', point)
        P = attribute_to_csv_format('P', point)
        tangentu = attribute_to_csv_format('tangentu', point)
    
        line = 'p{0},"{1}","{2}","{3}"'.format(point.number(), N, P, tangentu)
        lines.append(line)

    with open(f'D:/_WorkingSpace/{file_name}', 'w') as f:
        for line in lines:
            f.write(line + '\\n')
---,N,P,tangentu
p0,"(X=-0.0009425273747183383, Y=-0.9994012117385864, Z=0.0345878079533577)","(X=400.0, Y=0.0, Z=0.0)","(X=23.64675521850586, Y=-7.744760990142822, Z=198.4460906982422)"
p1,"(X=-0.0009425273747183383, Y=-0.9994012117385864, Z=0.0345878079533577)","(X=394.0679626464844, Y=1.9428571462631226, Z=-49.782352447509766)","(X=36.055419921875, Y=-7.787370681762695, Z=196.56898498535156)"
p2,"(X=-0.0009425273747183383, Y=-0.9994012117385864, Z=0.0345878079533577)","(X=382.0091857910156, Y=3.885714292526245, Z=-98.08329010009766)","(X=60.482322692871094, Y=-7.842398643493652, Z=190.47409057617188)"
.
.
.

ボタンを追加。ボタンを押すたびにExport関数を実行するように設定

参考 http://nomoreretake.net/2020/01/15/houdinipythonsopandbutton/

  1. Unreal Engine内のStructureを定義

Untitled