この記事はHoudiniアドベントカレンダー2021 8日目の記事です。
皆さんはHoudiniのチュートリアルやグループワークをする際、
下記のような事を経験したことはないでしょうか。
・hipやアセットの保存場所が全部同じで、いつの間にかごちゃごちゃになっている
・プロジェクト設定やキャッシュの保存先を毎回設定するのが面倒くさい
・誰かにhipを渡したらアセットの参照エラーが出た
これらの問題は、予め必要なルールやファイルを作っておくと解決しますが、
調べて実行するまでのハードルが結構高いですよね。
なので、今回は私がセットアップによく使っているフォルダ群を配布・解説します。
皆さんの作業の効率化に少しでも役に立てば幸いです。
##参考
本題に入る前に、私が参考にしたBlogを紹介しておきます。
▼ FX HACKさん「Houdini Workflowについて」
http://fxnomemo.blogspot.com/2021/04/houdini-workflow.html
全く知識が無いと読み解くのは少し難しいですが、
勉強になりますので、ワークフローに興味のある方はぜひ読んでみて下さい。
##導入のメリット
・一度設定してしまえば、コピペと少しの編集でそのまま使い回せます
・誰かにシーンを渡す場合はフォルダごと渡せばOKです
ファイルの不足に悩まされることはありません
##フォルダ構成
まずは、私が提案するフォルダ構成の一部をお見せします。
全体を知りたい方は当記事の最後に記載していますので、そちらを御覧ください。
Sample/
├ shot000/
│ └ houdini/
│ └ cache/
│ └ untitled/
│ └ obj/
│ └ sim_spark/
│ └ sim_spark_a.v001
│ └ 55.bgeo.sc
│ └ hip/
│ └ spark_part1.hip
│ └ spark_part2.hip
├ turtorial_B/
│ shot000と同じ構成
├ turtorial_C/
│ shot000と同じ構成
│
├ tool/
│ └ bat/
│ └ shot000.bat
│ └ tutorial_B.bat
│ └ tutorial_C.bat
####解説
shot000フォルダ
グループのようなものです。
チュートリアル毎にhipやcacheを分けるために使います。
cacheフォルダ
キャッシュファイルの保存先です。
中のフォルダ階層はシーン内のネットワークを元に構成されます。
例)D:/Sample/shot000/houdini/cache/untitled/obj/sim_spark/sim_spark_a.v001/65.bgeo.sc
hipフォルダ
hipファイルの保存先です。
同じチュートリアルの中で作ったhipは全てここに格納します。
turtorial_B, turtorial_Cフォルダ
新しいチュートリアルを始める場合はshot000をコピー&リネームして使います。
shot001.bat
batファイルを実行してHoudiniを起動します(hipファイルから直接起動はしません)。
起動後は、Ctrl + O でダイアログを開き、任意のhipを選んで下さい。
tutorial_B.bat, tutorial_C.bat
チュートリアル毎にbatファイル分けることで、
それぞれの環境に合った状態でHoudiniが起動します
どこに何が置かれているか、なんとなく分かったところで実際に導入してみましょう。
##導入方法
###1. ダウンロード
下記のリンクからzipファイルをダウンロードして下さい。
空のフォルダやhda, bat, jsonファイルが入っています。
https://drive.google.com/file/d/1aAvCdnxcFDtr4pwG_iKhXQKa0z3RSjYC/view?usp=sharing
###2. Sampleフォルダの配置
ダウンロードしたzipファイルを解凍後、Sampleフォルダを好きな場所に置いて下さい。
フォルダ名も変更して構いません(例:Tutorial)
※ 当記事では配置場所とフォルダ名を下記として説明を進めます。
各自で設定した名前、場所に読み替えて下さい。
配置場所:Dドライブ直下(D:/)
フォルダ名:Sample
###3. shot00フォルダの複製
Sampleフォルダの中にあるshot000フォルダを複製して下さい。
その後、複製したフォルダを別の名前に変更して下さい。
(例:tutorial_A)
次はbatファイルを扱います。batファイルに関する詳しい説明は省きますが、 今後Houdiniを起動する為の実行ファイルとして使います。
###4. batファイルの編集
Sample/tool/batフォルダを開き、中にあるshot000.batを複製して下さい。
複製後、わかりやすい様に「3.shot000フォルダの複製」で複製したフォルダと
同じ名前にして下さい(例:tutorial_A.bat)。
複製したbatファイルをメモ帳等のテキストエディタで開いて下さい(右クリック→編集)。
すると、下記のような文字列が表示されます。
@echo off
set HOUDINI_VERSION=18.5.596
set HOUDINI_EXE="C:\Program Files\Side Effects Software\Houdini %HOUDINI_VERSION%\bin\houdini.exe"
set PROJ=Sample
set PROJ_ROOT=D:/%PROJ%
set HSITE=%PROJ_ROOT%/tool/houdini
set SHOT_NAME=shot000
start "" %HOUDINI_EXE%
表示後は下記のルールに従って必要な部分を修正して下さい。
その際に、「=」の前後にスペース(空白)を入れないように注意して下さい。
× set HOUDINI_VERSION = 18.5.596
○ set HOUDINI_VERSION=18.5.596
@echo off
今回理解する必要は全く無いので、おまじないだと思って下さい。
set HOUDINI_VERSION=18.5.596
起動するHoudiniのバーションを指定します。
18.5.596の部分を使っているHoudiniのバージョンに書き換えて下さい。
set PROJ=Sample
「2.配置」で置いたSampleフォルダの名前です。
フォルダ名を変更された方は、「Sample」の部分をその名前に書き換えて下さい。
set PROJ_ROOT=D:/%PROJ%
「2.配置」で置いたSampleフォルダの配置場所です。
Dフォルダの配置位置を変更された方は「D:/」の部分を書き換えて下さい。
例)set PROJ_ROOT=F:/Works/%PROJ%
set HSITE=%PROJ_ROOT%/tool/houdini
今回は理解する必要は全くないので(以右省略)
set SHOT_NAME=shot000
「3.shot00フォルダの複製」で複製したフォルダの名前を
「shot000」の代わりに記入して下さい
(例:turtorial_A)
start "" %HOUDINI_EXE%
今回は理(以右省略)
上記の編集が終わった後はファイルを保存して下さい。
##使い方
###A. Houdiniの起動
「4.batファイルの編集」で作ったbatファイルをダブルクリックしてHoudiniを起動して下さい。
もし起動に失敗した方は「4.batファイルの編集」を見直してみて下さい。
シーンを開く場合は、起動後にCtrl + O でダイアログを開き、任意のhipを選んで下さい。
###B. シーンを保存する
Ctrl + S でダイアログを開き $JOB/ を選び、表示されるhipフォルダの中に保存して下さい。
###C. キャッシュを取る
sopネットワーク内で「FileCache GX」を生成して下さい。
ノード名を適切なものに変更後、Save to Diskを押すと、
Cacheフォルダにキャッシュが生成されます。
###D. 環境変数を試す
ファイルの書き出しや読み込みで便利な環境変数をこちらにメモしておきます。
$PROJ_ROOT:Sampleフォルダまでのファイルパスが取得できます
(例:D:/Sample/)
$CACHE_ROOT:cacheフォルダまでのファイルパスが取得できます
(例:D:/Sample/turtorial_A/houdini/cache/)
$JOB:houdiniフォルダまでのファイルパスが取得できます
(例:D:/Sample/turtorial_A/houdini/)
###E. 別のチュートリアルを始める
1. shot000フォルダを複製して、名前を変更して下さい。
(例:tutorial_B)
2. Sample/tool/batフォルダの中にある、shot000.batファイルも複製して
名前を変更して下さい。
(例:tutorial_B.bat)
3. 2.で作ったbatファイルを開きset SHOT_NAME=shot000を編集して下さい。
(例:set SHOT_NAME=tutorial_B)
4. batファイルを実行し、Houdiniを起動して下さい。
###F. 誰かにシーンを渡す
1. Sampleフォルダをコピーして渡して下さい。
2. 「4. batファイルの編集」に従ってbatファイルを編集してもらって下さい
3. batファイルからHoudiniを起動して下さい。
※ tutorial_Aのみを渡したい場合は、コピーしたSampleフォルダから
tutorial_Bのフォルダとtutorial_B.batを削除して下さい。
##完全版 フォルダ構成
Sample/
├ asset/
│ └ mob_a/
│ └ model.fbx
│ └ tex/
│ └ diffuse.tga
│ └ normal.tga
│
├ shot000/
│ └ anim/
│ └ houdini/
│ └ cache/
│ └ hip/
│
├ tutorial_A/
│ └ anim/
│ └ cam001_mob_a_walk.fbx
│ └ houdini/
│ └ cache/
│ └ untitled/
│ └ obj/
│ └ sim_spark/
│ └ sim_spark_a.v001
│ └ 55.bgeo.sc
│ └ hip/
│ └ spark_part1.hip
│ └ spark_part2.hip
│
├ tutorial_B/
│ tutorial_Aと同じ構成
│
├ tool/
│ └ bat/
│ └ shot000.bat
│ └ tutorial_A.bat
│ └ tutorial_B.bat
│ └ houdini/
│ └ houdini18.5/
│ └ otls/
│ └ FileCacheGX.hda
│ └ packages/
│ └ variables.json
│
├ batショートカット.link
assetフォルダ
汎用的な素材はここに入れます。
1アセットで1fbxを想定しているので、modelフォルダは作りません。
歩き、ジャンプのような汎用的なアニメーションであれば、
ここにanimフォルダを作ってしまうのもありだと思います。
shot000フォルダ
コピー元として使うため、空の状態にしてあります。
animフォルダ
チュートリアル等で配られる専用のアニメーションデータを入れます。
チュートリアルの垣根を越えて使い回せるようなデータの場合は、
assetフォルダに入れてください。
toolフォルダ
ツールの設定情報や、batファイル、OpenColorIOを管理します。
batフォルダ
Houdiniの起動batを管理するフォルダです。
フォルダの場所へのショートカット(batショートカット.lnk)を用意しています。
tool/houdiniフォルダ
Houdiniの設定ファイルやHDAを管理しています。
シーンファイルとキャッシュはtutlrial_Aやtutlrial_Bフォルダ内にある
houdiniフォルダを使います。
otlsフォルダ
HDAファイルを管理するフォルダです。
このフォルダ内にHDAファイルを入れておくと、
シーンを渡す際に、渡し忘れが発生しません。
variables.json
Houdiniの環境変数の一部を設定しています(残りはbatファイル内で設定しています)。
RedShiftやOpenColorIOを使いたい場合はこちらのファイルを編集して下さい。
##終わり
如何でしたでしょうか?
本記事きっかけでワークフローに興味を持っていただけたり、
快適なチュートリアルライフを送っていただければ幸いです。
ここまで読んでいただきありがとうございました!!