houdini environment variables

Houdini 環境変数設定

Houdini は元々 Unix (SGI Irix) 上で書かれていた。現在でも、特に映画製作など大規模制作環境では Linux が主流。 コマンドラインツールや設定を効率良く行うためには、環境変数を使用する。

Linux 上では環境変数の設定とシェルによる操作は同一のシェルで行えるが、Windows で環境変数を元に処理を行おうとすると Cygwin がどうしても必須となる。ここでは、Houdini の環境変数と Cygwin 使用時のティップを紹介。

  1. Cygwin
  2. macOS
  3. システム環境変数 HOME
  4. houdini_setup
  5. hconfig
  6. Houdiniセッション中の環境変数の確認

  • 環境変数 HOUDINI_PATH
  • 環境変数 HFS
  • 環境変数 HOUDINI_USER_PREF_DIR
  • houdini.env
  • 環境変数 HOUDINI_UISCALE
  • Aliases and Variables
  • 環境変数 HIP
  • 環境変数 HSITE
  • 環境変数 JOB
  • 環境変数 HOUDINI_OTLSCAN_PATH
  • 環境変数 HOUDINI_PACKAGE_DIR
  • 環境変数 HOUDINI_OCL_VENDOR
  • 環境変数 HOUDINI_SPLASH_FILE
  • 環境変数 HOUDINI_AUTHOR
  • 環境変数 TEMP, TMP および HOUDINI_TEMP_DIR
  • システム環境変数 TZ
  • 環境変数 OCIO
  • 環境変数 HOUDINI_NVIDIA_OPTIX_DSO_PATH
  • 環境変数 PDG_FFMPEG
  • 環境変数 PDG_IMAGEMAGICK
  • Hscript コマンド setenv
  • その他
  • ここでの Windows は Windows 7。Cygwin は 1.7.34。
    Houdini のビルドは Houdini 16.0.727

    Cygwin

    ここは Cygwin を説明するところではないので 3DCG ソフト (Houdini および Maya) を使う上での個人的な所見を簡潔に述べるとすれば、

    • インストール時の Root Directory は、デフォルトの C:\cygwin ではなく、C:\ 直下が良い(と思う)。C: 直下にインストールすることで、他のディレクトリに行く時に /cygdrive/c/... とする必要がなくなる。
        こういう風に設定すると警告が出るが、約15年使っていて私の軽い使い方では問題になったことは無い。
        なお、本家FAQにはこうある。
    • ftp は Windows のを使うとプロンプトが表示されないので Cygwin のを入れる。
    • ping は Cygwin のを一般ユーザで使おうすると拒否される。Windows のを使う。
    • どこからコピペしたのか不明だが、~/.bashrc などで
      alias which='type -a'
      が設定されていると、Houdini のコマンドラインツールを C ドライブ以外で起動すると様々なエラーを引き起こす。コメントアウトしておくと問題ない。

    macOS

    Mac OS では、Houdini アプリケーションの起動ファイルを除く各種ファイルは /Applications/Houdini <バージョン> 以下に無く、環境設定ファイルも Documents 以下にできない。これは Maya も同様。

    • Houdini アプリケーションの各種ファイル ($HFS) は、 /Library/Frameworks/Houdini.framework/Versions/18.0.391/Resources/houdini/config
    • ユーザ環境ファイル ($HOUDINI_USER_PREF_DIR) は
      /Users/<ユーザ名>/Library/Preferences/houdini/18.0 に出来る。
      • プラグインは、同ディレクトリ以下の dso に配置できる。
    • Mac のファインダで $TEMP に行くには、Go To Folder というメニュー (Cmd+Shift+G) で表示されるダイアログに /tmp/houdini_temp/ と入力することで可能。

    システム環境変数 HOME

    Houdini のコマンドラインツールや設定には、$HOME を参照するものもある。よって HOME を明示的に定義しておくことが望ましい。
    Cygwin でのデフォルトのホームディレクトリは、/home/<username>
    Windows で作業する場合の主なディレクトリは、C:\Users\<username>\Documents\

    個人的な趣味や好みもあると思うが、HOME は自分の C:\Users\<username> に Windows のシステム設定から設定する。これにより、houdinix.y/ などの環境設定ディレクトリは、My Documents 以下ではなく、一つ上に出来る。この設定の後、My Documents 以下の houdini16.0 ディレクトリの中で設定を変更しても Houdini に変更は反映されない。

    なぜこうするのかと訊かれても特に強い理由は無いが、しいて言えば

    • My Documents と Desktop の間の行き来が面倒。一つ上からだと楽。
    • .login, .bash_profile などが My Documents にあるのはちょっと変。
    • Linux と Windows (Cygwin) で差異を少なくしたい。
    というところか。

    Linux の場合、HOME は 一意に決まるので問題はない。

    houdini_setup

    HOME を上記の通りに設定し、Cygwin シェルを起動すれば、ホームディレクトリは /Users/<username> となっているはず。使用する Houdini のビルドがインストールされているディレクトリに行き、そのビルドの環境をソースする。

    $ cd /Program\ Files/Side\ Effects\ Software/Houdini\ 16.0.727
    $ source houdini_setup
    The Houdini 16.0.727 environment has been initialized.
    
    これで、このビルドのコマンドラインツールがパスに追加され使えるようになる。よって、
    $ houdini 
    
    とすれば、Houdini が起動する。
    Cygwin はデフォルト bash なので、source houdini_setup_bash としても結果は同じ。

    hconfig

    hconfig は Houdini が使用する環境変数を設定または表示するためのツール。上記の houdini_setup をソースすれば使えるようになる。

    $ hconfig
    HFS                         := '/PROGRA~1/SIDEEF~1/HOUDIN~1.727'
    HOME                        := 'C:/Users/ktaki'
    HOUDINI_DESKTOP_DIR         := 'C:/Users/ktaki/Desktop'
    HOUDINI_OS                  := 'Windows'
    HOUDINI_TEMP_DIR            := 'C:/tmp'
    HOUDINI_USER_PREF_DIR       := 'C:/Users/ktaki/houdini16.0'
    SHELL                       := '/bin/bash'
    USER                        := 'ktaki'
    
    $ hconfig -a
    とすれば、Houdini が使用可能なすべての環境変数 (約270) が表示される。これらは、HOME のように別途定義しない限り、システムなり Cygwin なりに設定された環境変数ではない。あくまで Houdini が認識する変数。

    上記で特に重要なのは、

    • HFS: 使用しているビルドのインストール先。
    • HOME: ホームディレクトリ、上記の通り。
    • HOUDINI_USER_PREF_DIR: 個人環境 (プリファレンス、シェルフ設定など) が保存されるディレクトリ。
    ユーザが変更することが考慮されていない環境変数など、表示されない環境変数もある 。
    例: HH = $HFS/houdini/

    $ hconfig -h
    で、ヘルプが表示される。

    $ hconfig -p
    とすれば、パス関係の変数のみ表示される。

    $ hconfig -ap
    とすれば、パス関係の各変数の詳細情報が表示される。

    $ hconfig -H
    で、各環境変数の詳細なヘルプが表示される。

      $ hconfig -H HOUDINI_PATH
      とすると、
      HOUDINI_PATH
          The path of directories where Houdini looks for configuration
          files.
      
      というように、各環境変数のヘルプが表示される。

    Houdini セッション中の環境変数の確認

    Houdini 起動中に設定された環境変数の値を確認するには以下の方法が考えられる。

    1. Alias and Variables... ウィンドウ
        Edit -> Alias and Variables... を実行して表示されるウィンドウの Variables タブに行けば、設定されている変数の一部が表示される。ここで表示されるのはシーンの設定に関連するものが殆どで、システム・環境に関する変数はあまり表示されない。
    2. Hscript Textport
        Windows -> Hscript Textport を実行して表示されるウィンドウに
        echo $TEMP
        などとすれば、
        C:/Users/ktaki/AppData/Local/Temp/houdini_temp
        と表示される。
        setenv で表示されるものもある。
    3. Python Shell
        Windows -> Python Shellを実行して表示されるウィンドウに
        import os
        os.environ['TEMP']
        などとすれば、
        'C:/Users/ktaki/AppData/Local/Temp/houdini_temp'
        と表示される。

    環境変数 HOUDINI_PATH

    Houdini が環境設定を見に行くパス。通常は明示的に指定されていないが、Houdini は以下の順に設定を見に行く。

            1) "$HIP"
            2) "$HOUDINI_USER_PREF_DIR"
            3) "$HSITE/houdinix.y"
            4) "$HFS/houdini"
            5) "$HFS/bin"
    
    それぞれで、hconfig -ap で確認できるサブディレクトリをさらに参照する。

    環境変数 HFS

    使っている Houdini のインストールディレクトリ。例えば、Windows 上で Houdini 16.0.727 を使っている場合には、$HFS は、C:\Program Files\Side Effects Software\Houdini 16.0.727\を示す。MacOS の場合はこちら

    環境変数 HOUDINI_USER_PREF_DIR

    Houdini の個人環境の保存先。Windows で HOME が明示的に指定されていない場合、My Documents 以下に houdini18.0 という形で作られる。環境変数 HOME を指定した場合、$HOME/houdini18.0 といった形で作られる。別途指定することも可能。

    MacOS の場合はこちら

    なお、Houdini を初めてインストールしてみて起動時にエラーが出て起動できない場合、

    • ユーザIDが日本語で、ホームディレクトリへのパスにマルチバイト文字が含まれる
    • My Documents が「ドキュメント」などと日本語で定義されていて、このパスにもマルチバイト文字が含まれる
    の二つが主な原因として考えられる。

    この場合、以下の二つのいずれかの方法を取ることができる。

    1. 以下のリンクなどを参照してWindows の「デスクトップ」や「ドキュメント」の表記を英語に変更する。
    2. Houdini の設定ファイルの格納位置を変更する。
        HOUDINI_USER_PREF_DIR = D:\Houdini\houdini18.0
        (Dドライブがある場合、なければ他のドライブで置き換える)
        などとシステムの環境変数設定で設定して起動してみる。


        これで起動すれば、ホームまたはドキュメントへのパスに問題があったことがわかる。

    デジタルアセットやスクリプトを保存するのもこのディレクトリ以下。

    • デジタルアセット: otls というディレクトリを作ってその中に格納。
    • スクリプト: scripts というディレクトリを作ってその中に格納。

    例えば、D:\Houdini\ 以下の

    • houdini17.5
    • houdini18.0
    を起動するバージョンにあわせて切り替えたい場合、
    HOUDINI_USER_PREF_DIR=D:\Houdini\houdini__HVER__
    と指定する。HVER の前後にはそれぞれアンダースコア ('_') が二つ必要。詳しくはこちら (インディゾーンHoudini情報日本語ブログ)。

    houdini.env

    Houdini 専用の環境変数を定義するためのファイル。$HOUDINI_USER_PREF_DIR にある。このファイルで環境変数を指定する場合、

    VAR = VALUE
    
    または
    VAR = "VALUE"
    
    という風に指定する。
    例: HOUDINI_OCL_VENDOR = "NVIDIA Corporation"
    

    他の注意点として、

    • このファイルは source houdini_setup を最初に実行した時に作成される。
    • パスなど文字列を定義する場合には、" (二重引用符) で括る。
    • 複数のパスを指定する場合、パスの間にスペースは入れない。
    • Windows であっても、ディレクトリの切れ目は '/' を使う。
      • Windows のコントロールパネルのシステムから環境変数を設定する場合、'/' を使うことも '\' を使うことも可能。
    • 共用環境を構築する場合、Windows 上では、可能な限り、UNCパスで書くことが望ましい。
      • 例えば w:\share の代わりに //dell-m4700/share/share など
      • ラップトップなど、オフラインになった時には UNC で記述されたパスは届かないことがある。よって、オフラインになる可能性がある環境では UNC パス を使用しないほうが良い(?)。
    • houdini.env を保存する場合には、"UTF-8 without Signature" (Byte order mark=BOM なし) で保存する。BOM があると、hconfig 実行時など、警告が出る。

    HOUDINI_UISCALE

    環境変数 HOUDINI_UISCALE を使うことで、UI のスケールを変更可能。詳しくはこちら

    Aliases and Variables

    Edit->Aliases and Variables を実行するとウィンドウが表示され、各種エイリアスおよび一部の環境変数をリストで見ることが可能。環境変数は Variables タブに表示されるが、ここに表示されるものは、Houdini 起動中に動的に変更できるもののみ。HFS などは変更できないので表示されない。

    環境変数: HIP

    環境変数 $HIP は、

    1. コマンドラインで Houdini を起動した時の現在のディレクトリ
    2. 開いたシーンファイルのある元のディレクトリ
    3. またはシーンファイルを最後に保存したディレクトリ
    動的に指定している。よって、上記 Alias and Variables ウィンドウで変更が可能だが、houdini.env 等で指定することはあまり意味が無い。

    $HIP を元に以下のファイルの格納位置がデフォルトでよく定義される。

    • レンダリング画像ファイル ($HIP/render/ 以下)
    • シミュレーションキャッシュファイル ($HIP/geo/ 以下)
    • 群衆キャッシュ・設定ファイル ($HIP/crowd/ 以下)

    Houdini をデスクトップアイコンから (ファイル名を指定することなしに) 起動すると、環境変数 HIP$HOME (定義されている場合) または My Documents になる。
    この状態で .hip ファイルをデフォルトディレクトリ以外から開くと、HIP の指定先が変わるのは、.hip ファイルが開いた後。

    よって、デジタルアセットやスクリプトの格納先を $HIP に関連付けるには、

    1. Houdini をコマンドラインで、.hip ファイルを引数として指定して起動
    2. 同じディレクトリにあるファイルを開いた後に開く
    のいずれかを行う必要がある。Windows では、Cygwin などを使わないと非現実的。

      $HIP 注意点 (Windows)

      Windows で Houdini をデスクトップアイコンまたは Start メニューから起動した場合、起動直後の $HIP は C:\Users\<ユーザ名> に設定されている。この状態で、Geometry ノード内の file ノードで例えばデスクトップにある aaa.obj を読んだ場合、aaa.obj までのパスは $HIP/Desktop/aaa.obj となる。この状態で、File->Save として、シーンを C:\Users\<ユーザ名>\My Documents\HoudiniFiles\test.hip などとして保存した場合、保存後の $HIP は、C:\Users\<ユーザ名>\My Documents\HoudiniFiles となる。このあとで、test.hip を開くと、HoudiniFiles\以下に Desktop\aaa.obj が無いので、エラーになる。これを回避するには、

      1. file ノードに aaa.obj を読み込む前にシーンファイルを保存する。
      2. $HOME を定義しておく。こうすると $HIP の代りに $HOME が使われ、この問題が起きない。

      変数: HIPFILE

      現在のシーンファイル名を絶対パスで指している。例: C:/Users/ktaki/untitled.hip

      変数: HIPNAME

      現在のシーンファイル名から拡張子 ".hip" を取り除いたものを指している。例えば、HIPFILEが C:/Users/ktaki/untitled.hip の場合、HIPNAME は untitled となる。

      変数: OS

      この変数が指定されている現在のノード名を取得するための変数。Render ROP で その ROP 名を書き出すファイル名に含める際に多用される。

      変数によるファイル名指定の詳細はこちら

      変数: _HIP_SAVEVERSION

      .hip ファイルを読み込んだ際に、そのファイルがどのバージョンの Houdini で書かれたかを知ることが出来る。Edit -> Aliases and Variables > Variables にも表示されるし、Hscript Textport で

      echo $_HIP_SAVEVERSION
      15.0.313
      とすることも可能。

    環境変数 HSITE

    個人単位での設定ではなく、チーム全体で共通の環境設定をするためには、環境変数 HSITE を使用する。HSITE を使うことで、アセット、スクリプト、シェルフツールの共通化が可能。つまり、個人環境 ($HOUDINI_USER_PREF_DIR) で行なっている環境設定を共有ディレクトリで行うことが可能になる。この場合、$HSITE で指定するディレクトリ以下に、バージョンごとのhoudinix.y (例: houdini16.0) というディレクトリが必須。この houdinix.y がなければ設定は無視される。

    HSITE は、houdini.env でも、システム環境変数としても設定可能。例えば、Windows 上で C:\share というディレクトリを w: として共有し、その下の HoudiniFiles というディレクトリを HSITE にしたい場合、

    HSITE = W:/HoudiniFiles
    
    または、
    HSITE = //dell-m4700/share/HoudiniFiles
    
    とする(dell-m4700 はホスト名で、share は共有ディレクトリ)。

    環境変数: JOB

    個人単位での設定ではなく、プロジェクト単位で、またはショット単位で共通の環境設定をするためには、環境変数 JOB を使用する。Houdini 15.0 以降、File->New Project..., File->Set Project... とすると、$JOB を定義・再定義していることになる。

    例えば $HSITE 以下の projects ディレクトリを JOB にしたい場合、
    JOB = %HSITE%/projects
    
    または、
    JOB = //dell-m4700/HoudiniFiles/projects 
    
    とする(dell-m4700 はホスト名で、HoudiniFiles は共有ディレクトリ)。

    $JOB の値は .hip の中に記述されている場合があるので注意が必要。
    現在の $JOB の値は、Hscript の job コマンドで確認可能。
    シーンファイルに内包された $JOB 値に関わらず、$JOB を一定にしたい場合には、456.py などで、値を設定する。

    import os
    hou.allowEnvironmentToOverwriteVariable("JOB", True)
    os.environ["JOB"] = "//dell-m4700/share/HoudiniFiles/projects"
    

    環境変数 HOUDINI_OTLSCAN_PATH

    任意の共有空間に Houdini デジタルアセット (HDA) を配置し、自動的に HDA が読み込まれるようにするには、環境変数 HOUDINI_OTLSCAN_PATH を使う。例えば、上記の HSITE 以下に W:/share/otls/ を配置して使用バージョンに無関係に使うアセットファイルを共有したい場合、 環境変数は以下のように定義する。

    HOUDINI_OTLSCAN_PATH = "W:/HoudiniFiles/otls;@/otls"
    
    または
    HOUDINI_OTLSCAN_PATH = "%HSITE%/otls;@/otls"
    
    @/otls がデフォルトのスキャンパスを定義し、それにW:/HoudiniFiles/otls が追加された形となる。
    HOUDINI_OTL_PATH という環境変数もあるが、これは古いバージョン用で、現行の Houdiniでは使わない。

    環境変数 HOUDINI_PACKAGE_DIR

    Houdini 17.5 よりプラグインやツールファイル一式の配置がパッケージ形式で行るようになった。この環境変数で、パッケージファイルの記述があるディレクトリを指定できる。詳細はこちら

    環境変数 SIDEFXLABS_NOINSTALL_MESSAGE

    詳細はこちら

    環境変数 SIDEFXLABS_ADMIN_UPDATES

    詳細はこちら

    環境変数 HOUDINI_ANONYMOUS_STATISTICS

    SideFX Labs は Google Analytics を使って各ツールの使用頻度のデータ収集をし、使用頻度の高いツールに開発資源を集中させ、より多くの人を支援できるようにしている。このデータには、IP、名前、ライセンス使用状況など個人情報は含まれていない。これを無効ににするには、Houdini の Preferences の Miscellaneous の一番上にある Send Anonymous Usage Statistics をオフにするか、環境変数 HOUDINI_ANONYMOUS_STATISTICS を 0 に設定する。

    環境変数 HOUDINI_OCL_VENDOR

    この環境変数は、ラップトップなど、1台のPCに複数のGPUが搭載されている時に、どちらを使うかを指定するのに使用する。

    HOUDINI_OCL_VENDOR = "NVIDIA Corporation"
    上記の場合、NVIDIA と Corporation の間に半角スペースが必要。

    環境変数 HOUDINI_SPLASH_FILE

    この環境変数を houdini.env などで設定すると、Houdini 起動時に表示される画像のカスタマイズが可能になる。詳しくはこちら

      環境変数 HOUDINI_SPLASH_MESSAGE

      HOUDINI_SPLASH_MESSAGE を使うことで、指定した文字列を起動画面左下に表示することが可能。詳しくはこちら

      環境変数 HOUDINI_NO_SPLASH

      この環境変数を houdini.env などで

      HOUDINI_NO_SPLASH = 1
      とすると、起動画面が表示されなくなる。

    環境変数 HOUDINI_AUTHOR

    .hip ファイルや .hda に記述される著者情報を変更できる。
    設定がない場合、<ユーザ名>@<ホスト名> (例: ktaki@alida)。

    HOUDINI_AUTHOR="foobar"
    とすれば、.hip ファイルの著者情報は foobar@alida となる。
    HOUDINI_AUTHOR="foo@bar"
    とすれば、foo@bar となる。hconfig -h HOUDINI_AUTHOR でもヘルプ参照可能。

    環境変数 TEMP, TEMP, HOUDINI_TEMP_DIR

    システム環境変数 TEMP は一時ファイルが作成されるディレクトリ。Windows のエクスプローラ (Internet Explorer ではない) で、%TEMP% とアドレスバーに入力すれば到達できる。 Mac の場合は、こちら

      なお、Houdini 16 より、Houdini 内での $TEMP は、システムで定義された $TMP 以下の houdini_temp/ になった (これが $HOUDINI_TEMP_DIR)。
    この3つの環境変数の違いはこちら

    システム環境変数 TZ

    システム環境変数 TZ はタイムゾーンを設定する環境変数。Cygwin は、(最近?) tzset コマンドからWindowsの設定を読んで、"America/New_York" or "Asia/Japan" などと指定するようになった。

    $ echo $TZ
    Asia/Japan
    
    などと、地域名と都市名で定義されている場合、Render View の左上に表示される 各レンダリングの開始時間が GMT (グリニッジ標準時間) で表示されるようになる ^^;。 これを回避するには、
    export TZ=JST-9
    と古い設定方法で行うか、
    unset TZ
    と定義を外すかのどちらか。TZ を unset しても、Windows 上で設定されている時間がそのまま保たれる。その場合、RenderView の時間表示はWindows 時間を使う。
    ちなみに アメリカ東海岸の設定は EST5EDT、西海岸の場合 PST8PDT

    環境変数 OCIO

    環境変数 OCIOOpenColorIO の設定ファイルを指定する環境変数。

    $ export OCIO = <ファイルまでのパス>/ocio_config.ocio
    
    などとすると、 Mplay の Color Display 設定に、指定したファイル内で displays 以下に定義されている名前が表示される。

    環境変数 HOUDINI_NVIDIA_OPTIX_DSO_PATH

    環境変数 HOUDINI_NVIDIA_OPTIX_DSO_PATH は NVIDIA OptiX Denoiser を使用する際のパスを設定する。詳しくはこちら

    環境変数 PDG_FFMPEG

    環境変数 PDG_FFMPEGPDG と併用する FFMPEG の実行ファイルの位置を定義する。例:

    PDG_FFMPEG = C:\Program Files\ffmpeg-4.2.1-win64-static\bin\ffmpeg.exe
    MPlay との連携に関してはこちら

    環境変数 PDG_IMAGEMAGICK

    環境変数 PDG_IMAGEMAGICKPDG と併用する ImageMagick の実行ファイルの位置を定義する。例:

    PDG_IMAGEMAGICK = C:\Program Files\ImageMagick-7.0.8-Q16\magick.exe

    Hscript コマンド setenv

    Hscript コマンド setenv を引数なしで Hscript Textport で実行すると、現在のシーンに設定されている 変数が表示される。

    Houdini FX Version 16.0.534 (Compiled on Mar  1 2017)
    / -> setenv
    F       = 1
    FF      = 1
    T       = 0
    FPS     = 24
    NFRAMES = 120
    TEND    = 4.95833
    TLENGTH = 4.95833
    TSTART  = 0
    FSTART  = 1
    FEND    = 120
    RFSTART = 1
    RFEND   = 120
    UNITLENGTH      = 1
    UNITMASS        = 1
    ACTIVETAKE      = Main
    E       = 2.7182818284590452354
    EYE     = stereo
    HIP     = D:/SideFX/HoudiniFiles/projects/_test/h16
    HIPFILE = D:/SideFX/HoudiniFiles/projects/_test/h16/camera_switcher3.hip
    HIPNAME = camera_switcher3
    JOB     = D:/SideFX/HoudiniFiles/projects
    PI      = 3.1415926535897932384
    POSE    = C:/Users/ktaki/houdini16.0/poselib
    _HIP_SAVEPLATFORM       = windows-x86_64-cl19
    _HIP_SAVETIME   = Thu Mar  2 09:18:12 2017
    _HIP_SAVEVERSION        = 16.0.534
    _HIP_SHELFTOOLCOUNT     = 10
    status  = 0
    / -> 
    
    このうち、_HIP_SAVEPLATFORM_HIP_SAVEVERSION で、特に誰か他の人からもらったファイルが書かれたプラットフォームとバージョンと知ることが出来る。

    その他

    以下、変数および環境変数のドキュメント


    最終更新: 2020-10-02

    0 件のコメント:

    コメントを投稿