2022-06-17

LPE tag to Solaris

ここでは、H19 で ライトに追加した LPE タグを Solaris/USD で認識させる方法を紹介する。

使用したビルド:

  • Houdini 19.0.645 (Py3.7) なお、次のバージョンでは自動で認識されるので以下の操作は不要
スクリプトファイルへのリンクは一番下にあり。

問題点

  1. Houdini を起動し、シェルフから、例えば Point Light (pointlight1) を一つを作り、LPE Tag に何か文字列 (例: test) を入力する。
  2. /stage に行き、Scene Import (Lights) ノード (sceneimportlights1)を作成。
  3. デスクトップを Solaris に変更し、左下の Scene Graph Tree で pointlight1 を選択、その右隣の Scene Graph Details で下にスクロールして karma:light: 関連を見ても lpe が見つからない。

これを修正する。

解決方法

  1. 上のシーンをファイル (例: lpe.hip) に保存し、Houdini を一度終了。
  2. 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)
        
  3. Houdini を起動し、保存したファイルを開き、Solaris の Scene Graph Details に行けば、今度は karma:light:lpetag に test という値が認識されているのがわかる。

繰り返しになるが、次のバージョンではこの操作は不要。

リンク

0 件のコメント:

コメントを投稿