はじめに
皆さんはHoudiniのOPcustomizeというファイルをご存じでしょうか?
自分が最近知って面白いと感じたので、紹介します。
OPcustomizeとは?
OPcustomizeとはHoudini起動時にHScriptを実行して、タブメニューから古いノードを非表示にしたり、強制的にオペレータ名(ノードタイプ)を変更したり出来る設定ファイルの事です。
置かれてる場所
公式のものは**$HH/OPcustomize**というファイルです(拡張子はありません)
例
C:/Program Files/Side Effects Software/Houdini 18.0.287/houdini/OPcustomize
またSideFX Labsでも使っており、SideFX Labsのフォルダ直下に置かれています。
中を見てみる
SideFX Labs
まずはSideFX Labsの方を見てみます。
SideFX LabsのOPcustomizeを見てみると…
opalias Vop labs::coord_swizzle_vector::1.0 gamedev::coord_swizzle_vector::1.0
opalias Cop2 labs::dds_file gamedev::cop_dds_file
opalias Cop2 labs::normal_color gamedev::cop_normal_color
opalias Cop2 labs::normal_combine gamedev::cop_normal_combine
opalias Cop2 labs::normal_invert gamedev::cop_normal_invert
opalias Cop2 labs::normal_levels gamedev::cop_normal_levels
opalias Cop2 labs::normal_map gamedev::normal_map
opalias Cop2 labs::normal_normalize gamedev::cop_normal_normalize
opalias Cop2 labs::normal_rotate gamedev::cop_normal_rotate
opalias Cop2 labs::vector_normalize::1.0 gamedev::vector_normalize::1.0
opalias Vop labs::vertical_point_index::1.0 gamedev::vertical_point_index::1.0
opalias Sop labs::curve_branches gamedev::sop_curve_branches
opalias Sop labs::color_adjustment gamedev::sop_color_adjustment
opalias Sop labs::color_blend gamedev::sop_color_blend
opalias Sop labs::color_gradient gamedev::sop_color_gradient
このようにopaliasという関数が大量に書かれています。
opaliasを公式ヘルプで確認してみるとオペレータタイプを別名にすることが出来ますと書かれてます。
https://www.sidefx.com/ja/docs/houdini/commands/opalias.html
つまりlabsから始まるオペレータタイプをgamedevに置き換えており、SideFX Labsの前身であるGame Development Toolsetと互換性を保つための処理をこのファイルで行っています。
自分がOPcustomizeを知ったきっかけもSideFX Labsになってオペレータ名が変わってるのに互換性を保ててる理由が気になったからです。
公式
では次に公式のOPcustomizeを見てみます。
opaliasも使われていますが、他にも3つの関数が使われています。
-
opfirstname
ノードを配置した時の初期名を変更します。
opfirstname <networktype> <opname> <firstname>
公式では下記の記述があり、Group Createを作成した際にgroupという名前でノードが作られます。
opfirstname Sop groupcreate "group"
-
opdeprecate
ノードタイプを廃止としてマークし、それらのノードをタブメニューから隠します。
opdeprecate <-r reason> <version> <networktype> <nodetype>
公式では下記の記述があり、Houdini18.0からfalloffが廃止になり、理由としてdistancealonggeometryが指定されています。
opdeprecate -r "distancealonggeometry" 18.0 Sop falloff
-
ophide
タブメニューからノードを隠します。
ophide <networktype> <nodename>
公式では下記の記述があり、musclesimというノードが隠されています。
ophide Sop musclesim
ちなみにこの記述の上に
// These are WIP muscle tools
と書かれているので、今後正式に実装予定のノードなのかもしれません。
隠されてるノードを表示する
このOPcustomize、SideFX Labsでも使われていることからも分かる通り、ユーザーが独自に変更する事が出来ます。
下記ディレクトリ直下に置くことでHoudini起動時に設定が読みこまれます。
- $HOUDINI_PATH
- $HSITE/houdiniバージョン
- $HOUDINI_USER_PREF_DIR
これによってスタジオで共有してるHDAなどもopdeprecateを使う事で特定のバージョンから隠す事が出来ます。
またopunhideという関数を使う事で隠れてるオペレータを表示する事が出来ます。
個人的にfalloffノードは便利で、ちょくちょく使用してたので、これをHoudini18.0でも表示されるようにしてみます。
$HOUDINI_USER_PREF_DIR/OPcustomizeに下記記述を書き込みます。
opunhide Sop falloff
これでHoudiniを起動して、タブメニューでfalloffを探すと…
ちゃんと表示されました!
最後に
いかがでしたでしょうか?マニアック過ぎて、誰に需要があるか分かりませんが、ググっても情報が出なかったのと個人的に面白かったので、まとめてみました。