プログラマによる初めてのHoudini Apprenticeメモ

環境

Houdini Apprentice19.5.493

概要

Houdiniはノードを組み合わせてプロシージャルに色々できる。

自分は主にVFXの為に使用する。

Apprenticeは無料版。pythonで独自データ書き出しができる

インストール

実行ファイルはライセンス毎に分かれていない。インストール中に選ぶ方式

デフォルト状態で Install をクリック。

デフォルトじゃなく、「Automatically Install SideFxLabs」のチェックを入れる

【無料】Houdiniの始め方インストールから初回起動まで【2022年版】 - 渋谷ほととぎす通信

環境変数

PC>ドキュメント>HoudiniXXXの中にあるhoudini.envに追加

自分の環境の実際のパスはC:\Users\ユーザー名\OneDrive\ドキュメント\houdini19.5

以下2つを最後に追加

HOUDINI_BUFFEREDSAVE = 1

HOUDINI_UI_QUEUE_SIZE = 300000

環境変数

レイアウト変更

レイアウトを使いやすく変更する

デフォルトは「Build」になっている。

普通のドッキングウィンドウのように簡単に配置換えできず、ビューを2つにして、片方を別のビューに変える方式。めんどい

Houdiniを始める前にやっておいたほうが良いかもしれない準備メモ - のぐそんブログ

日本語チュートリアル

Houdini Foundations 書籍 | SideFX

基本的な使い方

Houdini 基本を掘り下げる | Technical Artist Blog

Houdini超々入門 - KAYAC engineers' blog

SideFXLabs

VAT(ウォーターマークが入る)やFBXアーカイブノードが使えるようになる

サルにもわかる Houdini: SideFX Labs Install

Game Development Toolset

ImposterやMotionVectorテクスチャによるアニメーションサンプルがある

https://github.com/sideeffects/GameDevelopmentToolset

VFXToolBox

Unity公式のHoudini HDAを使って、Unity用のPointCache(.pcache)やVectorField(.vf)を出力する - fortyのブログ

python

8.2シェルフへの登録

ウィンドウの右上にある。pythonで作った関数を登録しておくところ。先に作っておく。画像のMyShelfは自分が事前に作っておいたもの

以下のリンクの内容以外にも「PythonScriptNode」というプログラムを書き込んで実行するノードがある

いや、8はこれを解説しているのか?

サルにもわかる Houdini: Using Python in Houdini

python外部モジュールの追加

https://support.borndigital.co.jp/hc/ja/articles/4404557527577-Houdini-%E3%81%AB%E5%A4%96%E9%83%A8%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

「PythonScriptNode」を使用したファイル書き出し

http://astroukoff.blogspot.com/2018/05/data-from-houdini-to-unity-via-text-file.html

ボタンを押した時に書き出しするようにしたいのでNullノードにPythonコードとボタンの仕組みを作ります。

Nodeを右クリックした上記メニューで表示。ファイル選択やボタン等のUIを追加できる

HoudiniとUE4でCSVデータの入出力 | とあるデザイナーのテクニカルノート

Houdini:Python(SOP)に実行ボタン | No More Retake

アニメーションUSD

$の大文字、小文字に注意する

https://support.borndigital.co.jp/hc/ja/articles/13308533851929

※ Houdini Apprenticeライセンス所有者は、.usdncファイルに しか 書き出すことができません

意味なかった。ボーンデジタルめ!

Objファイル連番書き出し

Houdini ApprenticeからMayaにオブジェクトを読み込む裏ワザ!(修正済み)|Kei Iketani

出来ない。FileCacheは独自の2つのファイル形式しか選べない

FileNodeならobj書き出しができるので設定をしてPythonNodeから呼び出せばいけた

書き出すファイル名をoutput$F4.obj等にしておくと$F4が4桁のフレーム番号に置き換わる

node = hou.pwd()
geo = node.geometry()

# Add code to modify contents of geo.
# Use drop down menu to select examples.
startFrame = node.parm("startFrame").eval()
endFrame = node.parm("endFrame").eval()
hou.node('/obj/geo1/file1').cook(True, (startFrame, endFrame, 1))

Objファイルだと頂点カラーが出力されないのでPlyファイルの方が良いらしい

https://twitter.com/gam0022/status/1333453448633753601

Geometry SpreadsheetのCSV連番書き出し

「Geometry Spreadsheet」にはそのフレームにおけるGeometryの内容が表示されている。パーティクルならそのリスト

「Labs CsvExporter」シェルフを使用して設定する。Controlsボタンで表示するウィンドウにフレーム指定する場所があり、そのウィンドウのRenderボタンで出力される

python Fbx Sdk

現在のhoudiniのpythonのバージョンは3.9である。それに対応したfbx sdk

Dropbox - fbxsdk_py3.9_py3.10_.7z - Simplify your life

サルにもわかる Houdini: python py location

Python Fbx Sdk で立方体の作成 - テキトープログラム( ..)φメモ

Fbx出力

Houdini ApprenticeでFbx出力 - テキトープログラム( ..)φメモ

Exr

floatテクスチャを使用したVATを自作するために使用

[OpenEXR] WindowsでPython用OpenEXRをインストールする際の手順 #Python - Qiita

Archived: Python Extension Packages for Windows - Christoph Gohlke

自分の環境だとこれ。OpenEXR‑1.3.8‑cp39‑cp39‑win_amd64.whl

【Pythonライブラリ】「openexr」のサンプルコード | YuNi-Wiki

GitHub - tvogels/pyexr: One-line EXR IO-library

Houdini ApprenticeでVAT出力 - テキトープログラム( ..)φメモ

unityでカラースペースがgammaだとexrの負数の値を勝手に0にクランプするらしい

linearにすると直る。exrはlinear空間用でgamma時はImporterが値を修正している?

独自binaryで吐き出して、GraphicsBuffer経由でアクセスしたほうが良いか

その他随時追加していく