ここでは、H19 で ライトに追加した LPE タグを Solaris/USD で認識させる方法を紹介する。
使用したビルド:
- Houdini 19.0.645 (Py3.7) なお、次のバージョンでは自動で認識されるので以下の操作は不要
問題点
- Houdini を起動し、シェルフから、例えば Point Light (pointlight1) を一つを作り、LPE Tag に何か文字列 (例: test) を入力する。
- /stage に行き、Scene Import (Lights) ノード (sceneimportlights1)を作成。
- デスクトップを Solaris に変更し、左下の Scene Graph Tree で pointlight1 を選択、その右隣の Scene Graph Details で下にスクロールして karma:light: 関連を見ても lpe が見つからない。
これを修正する。
解決方法
- 上のシーンをファイル (例: lpe.hip) に保存し、Houdini を一度終了。
- Houdini を一度終了し、以下の Python スクリプトを ~/houdini19.0/husdplugins/objtranslators/lpetags.py という名前で保存する。
import husd from pxr import Sdf class LpeTagsTranslator(husd.objtranslator.Translator): def populatePrim(self, prim, referenced_node_prim_paths, force_active): lpe_tag = prim.CreateAttribute("karma:light:lpetag", Sdf.ValueTypeNames.String, custom=False) self.populateAttr(lpe_tag, self._node.parm('vm_lpetag')) def registerTranslators(manager): manager.registerTranslator('hlight::2.0', LpeTagsTranslator)
- Houdini を起動し、保存したファイルを開き、Solaris の Scene Graph Details に行けば、今度は karma:light:lpetag に test という値が認識されているのがわかる。
繰り返しになるが、次のバージョンではこの操作は不要。
リンク
- lpetags.py (1KB)
0 件のコメント:
コメントを投稿