ゲーム開発
Unity
UnrealEngine
C++
Blender
Houdini
ゲーム数学
ゲームAI
グラフィックス
サウンド
アニメーション
GBDK
制作日記
IT関連
ツール開発
フロントエンド関連
サーバサイド関連
WordPress関連
ソフトウェア設計
おすすめ技術書
音楽
DTM
楽器・機材
ピアノ
ラーメン日記
四コマ漫画
その他
おすすめアイテム
おもしろコラム
  • ゲーム開発
    • Unity
    • UnrealEngine
    • C++
    • Blender
    • Houdini
    • ゲーム数学
    • ゲームAI
    • グラフィックス
    • サウンド
    • アニメーション
    • GBDK
    • 制作日記
  • IT関連
    • ツール開発
    • フロントエンド関連
    • サーバサイド関連
    • WordPress関連
    • ソフトウェア設計
    • おすすめ技術書
  • 音楽
    • DTM
    • 楽器・機材
    • ピアノ
  • ラーメン日記
    • 四コマ漫画
      • その他
        • おすすめアイテム
        • おもしろコラム
      1. ホーム
      2. 20250505_01_houdini_env

      【Houdini20.5】主要な環境変数と設定方法についてまとめる【Windows/Mac】【Steam版】

      Houdinishell作業環境
      2025-05-05

      マイケル
      マイケル
      みなさんこんにちは! マイケルです!
      エレキベア
      エレキベア
      こんにちクマ〜〜〜
      マイケル
      マイケル
      今回取り上げるのはHoudini! 意外とややこしい 環境設定周り について触れていこうと思います!
      エレキベア
      エレキベア
      環境設定・・・そんなにややこしいのクマか?
      マイケル
      マイケル
      指定できる環境変数が多数用意されていたり、設定方法自体もいくつかあったりするので、初見だと迷う箇所も多いと思います。 それからSteam版Houdiniだと挙動が異なっていたりしたので、その辺りについてもまとめていければと思います。

      環境変数のリスト | Houdini リファレンス
      ▲指定できる環境変数の一覧

      エレキベア
      エレキベア
      おおう・・・多すぎてよく分からないクマ・・・

      参考サイト

      マイケル
      マイケル
      参考にさせていただいたのは主に下記のサイトになります。 当記事に加えてこれらの記事を見るとより理解が深まると思います。
      エレキベア
      エレキベア
      どれも分かりやすくまとめていただいていてありがたいクマ〜〜

      環境変数の確認方法

      マイケル
      マイケル
      まずは細かい設定を見ていく前に、現在の設定値やどんな設定があるのかを確認する方法 について見てみます。
      エレキベア
      エレキベア
      まずはざっくりと確認したいところクマね

      コマンドラインツールからの確認

      マイケル
      マイケル
      Houdiniには専用のコマンドラインツールが用意されていて、こちらからhconfigコマンドを実行することで確認できます。
      • Houdini用コマンドラインツール

        • Windows
          • [Houdiniインストールパス]/bin/hcmd.exe
        • Mac
          • [Houdiniインストールパス]/Utilities/Houdini Terminal XXX.app
      • hconfigコマンド

        • hconfig
          • 共通のHoudini環境変数の値を出力する
        • hconfig -a
          • すべてのHoudini環境変数の値を出力する
        • hconfig -ap
          • すべてのHoudini環境変数の説明と値を展開出力する
        • hconfig -h
          • コマンドヘルプを表示する
      HFS := '/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources'
      HOME := '/Users/plasmo'
      HOUDINI_CUSTOM_RECIPE_LIBRARY := 'Recipes.hda'
      HOUDINI_DESKTOP_DIR := '/Users/plasmo/Desktop'
      HOUDINI_HQUEUE_HFS := '$HQROOT/houdini_distros/hfs.$HQCLIENTARCH'
      HOUDINI_HQUEUE_HFS_LINUX := '$HQROOT/houdini_distros/hfs.$HQCLIENTARCH'
      HOUDINI_HQUEUE_HFS_MACOS := '$HQROOT/houdini_distros/hfs.$HQCLIENTARCH'
      HOUDINI_HQUEUE_HFS_WINDOWS := '%HQROOT%/houdini_distros/hfs.%HQCLIENTARCH%'
      HOUDINI_HQUEUE_SERVER := 'http://localhost:5000'
      HOUDINI_OS := 'MacOS'
      HOUDINI_PATH := '/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/sculpt:/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/kinefx:/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/apex_cop:/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/apex:/Users/plasmo/Library/Preferences/houdini/20.5/packages/SideFXLabs-20.5.445/platform_specific/macos:/Users/plasmo/Library/Preferences/houdini/20.5/packages/SideFXLabs-20.5.445:&'
      HOUDINI_TEMP_DIR := '/tmp/houdini_temp'
      HOUDINI_USER_PREF_DIR := '/Users/plasmo/Library/Preferences/houdini/20.5'
      SHELL := '/bin/bash'
      USER := 'plasmo'
      
      ▲hconfig実行例
      EDITOR := '<not defined>'
      FPS := 24
      HFS := '/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources'
      HOME := '/Users/plasmo'
      HOUDINI10_COMPATIBILITY := 0
      HOUDINI10_VOLUME_COMPATIBILITY := 0
      HOUDINI11_COMPATIBILITY := 0
      HOUDINI11_PERFMON_COMPATIBILITY := 0
      HOUDINI13_FILTER_COMPATIBILITY := 0
      HOUDINI13_GEO_COMPATIBILITY := 0
      HOUDINI13_VOLUME_COMPATIBILITY := 0
      HOUDINI14_GEO_COMPATIBILITY := 0
      HOUDINI15_5_GEO_COMPATIBILITY := 0
      HOUDINI15_PARMDATA_COMPATIBILITY := 0
      HOUDINI16_5_DEFORM_COMPATIBILITY := 0
      HOUDINI17_COMPATIBILITY := 0
      HOUDINI18_COMPATIBILITY := 0
      ・・・略・・・
      
      ▲hconfig-a実行例
      HOUDINI_PATH := "/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/sculpt:/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/kinefx:/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/apex_cop:/Applications/Houdini/HoudiniIndieSteam/Frameworks/Houdini.framework/Versions/Current/Resources/packages/apex:/Users/plasmo/Library/Preferences/houdini/20.5/packages/SideFXLabs-20.5.445/platform_specific/macos:/Users/plasmo/Library/Preferences/houdini/20.5/packages/SideFXLabs-20.5.445:&"
      The path of directories where Houdini looks for configuration files.
      
          Directories searched (in order) are:
      	1) "$HFS/packages/sculpt"
      	2) "$HFS/packages/kinefx"
      	3) "$HFS/packages/apex_cop"
      	4) "$HFS/packages/apex"
      	5) "$HOUDINI_USER_PREF_DIR/packages/SideFXLabs-20.5.445"
      	6) "$HOUDINI_USER_PREF_DIR"
      	7) "/Users/Shared/houdini/20.5"
      	8) "$HFS/houdini"
      
      HOUDINI_ASSET_STORE_PATH := "@/^"
      The search path for the user's asset store related files (asset OTLs,
      licenses, list of installed assets, etc)
      
          Default path: '@/^'
      	Where @ is replaced with HOUDINI_PATH
      	and ^ is replaced with asset_store
          Directories searched (in order) are:
      	1) "$HOUDINI_USER_PREF_DIR/asset_store"
      
      HOUDINI_AUDIO_DSO_PATH := "@/audio"
      The search path for loading custom audio format plugins for reading and
      writing audio or channel files (.so, .dll).
      
          Default path: '@/audio'
      	Where @ is replaced with HOUDINI_DSO_PATH
          Directories searched (in order) are:
      	1) "$HFS/houdini/dso/audio"
      ・・・略・・・
      
      ▲hconfig-ap実行例
      エレキベア
      エレキベア
      とんでもない数出るクマが、説明も見れるのはありがたいクマね
      マイケル
      マイケル
      現在の設定内容確認や、コマンドについての詳細を調べる際に活用するとよさそうですね。

      Houdiniセッション中の確認

      マイケル
      マイケル
      次にHoudini起動後に設定されている環境変数を確認する方法についてですが、 主に下記の3つの方法があります。
      1. Aliases and Variables ウィンドウからの確認
        • Edit > Alias and Variables... > Variables タブ より確認できる
      2. Hscript Textport からの確認
        • Windows > Hscript Textport からechoコマンドで確認する
      3. Python Shell からの確認
        • Windows > Python Shell からosモジュール等で確認する
      エレキベア
      エレキベア
      起動後に設定されている値を確認したい場面は多々ありそうクマね
      マイケル
      マイケル
      それぞれの確認結果は下記のようなイメージとなります。
      20250506_01_01
      ▲Aliases and Variables: Variablesタブで確認が行える

      20250506_01_02
      ▲Hscript Textport: echoコマンドにて確認する

      echo $HFS
      
      20250506_01_03
      ▲Python Shell: osモジュール等で確認する

      import os
      os.environ.get('HFS')
      
      エレキベア
      エレキベア
      これで確認方法はバッチリクマね

      主要な環境変数

      マイケル
      マイケル
      確認方法が分かったところで、次は主要な環境変数について簡単にまとめてみます。

      特殊文字

      マイケル
      マイケル
      はじめに Houdiniの環境変数に使用される特殊文字 について記載します。 全部で4つあり、これらは内部で変換されます。

      参考: パス変数の特殊文字 | Houdini リファレンス

      特殊文字
      概要
      @
      $HOUDINI_PATH と同等
      =
      $HIP と同等
      &
      環境変数に応じたフォルダパス
      ^
      環境変数に応じて決められたフォルダ名に展開される
      例 $HOUDINI_TOOLBAR_PATHの場合: @/^ → @/toolbar
      エレキベア
      エレキベア
      おおう・・・こんなのが決められているのクマか
      マイケル
      マイケル
      例えばHOUDINI_TOOLBAR_PATH環境変数で「@/^」と指定した場合、「$HOUDINI_PATH/toolbar」といったように変換されます。 混乱を招きやすいポイントなので押さえておきましょう。

      主な環境変数

      マイケル
      マイケル
      そして環境変数の中でも 特に影響範囲の広い環境変数 は下記になります。 この中でも $HOUDINI_PATH は先ほどの特殊文字「@」と共に使用されることが多いです。
      影響範囲の広い環境変数
      環境変数
      概要
      補足
      $HOUDINI_PATH
      Houdiniが環境設定を見に行くパスを全て記録する環境変数
      @から始まる環境変数は全てこのフォルダを参照する
      ・デフォルトでは下記順で見に行く
      1. $HIP
      2. $HOUDINI_USER_PREF_DIR
      3. $HSITE/houdini.x.y
      4. $HFS/houdini
      5. $HFS/bin
      $HOUDINI_USER_PREF_DIR
      Houdiniのユーザ環境保存先
      ・デフォルトでは下記に格納される
      Windows: C:/Users/[ユーザ名]/houdiniX.Y
      Mac: /Users/[ユーザ名]/Library/Preferences/houdini/X.Y
      ・バージョンごとの階層で管理する
      $HSITE
      共通設定を持たせるためのHoudini構成情報のパス
      ・$HOUDINI_USER_PREF_DIRの共有管理版
      ・バージョンごとの階層で管理する
      $HFS
      Houdiniのインストールディレクトリ
      -
      $HIP
      hipファイルが格納されているディレクトリ
      ・下記を動的に指定する
      1. Houdini起動時のディレクトリ
      2. シーンファイルのあるディレクトリ
      3. シーンファイルを最後に保存したディレクトリ
      $JOB
      共有プロジェクトファイルの格納ディレクトリ
      ・$HIPの共有管理版
      ・2つ以上のシーンファイルを含むプロジェクトに対して使用する
      エレキベア
      エレキベア
      確かにHoudiniを使用しているとよく見るものが多いクマね
      マイケル
      マイケル
      HOUDINI_PATHやHFSといった環境変数を設定すると、それを使用している各環境変数の参照先も変更されますが、HDAやPythonといった資産を別々のフォルダに格納したい場合 もあると思います。 そのように資産ごとに個別にフォルダを変更する場合には、下記のような環境変数が使用できます。
      HOUDINI_PATHを使用している環境変数例
      環境変数
      概要
      デフォルト設定
      $HOUDINI_OTLSCAN_PATH
      HDAを読み込むパス
      @/otls
      $HOUDINI_MENU_PATH
      メインメニューファイルの検索パス
      @
      $HOUDINI_TOOLBAR_PATH
      シェルフツールファイルの検索パス
      @/^ (@/toolbar)
      $HOUDINI_PYTHON_PANEL_PATH
      Pythonパネルファイルの検索パス
      @/^ (@/python_panels)
      $HOUDINI_RADIALMENU_PATH
      Radialメニューの検索パス
      @/^ (@/radialmenu)
      $HOUDINI_VEX_PATH
      VEXコードの検索パス
      ・ヘッダファイル(.h)、VEX コード・スニペット(.vfl)、 アセンブリ出力(.vex)が対象
      参考: VEX no include サルにもわかるHoudini
      @/vex/^ (@/vex/[オペレータ名])
      $HOUDINI_DSO_PATH
      カスタムプラグインを読み込むパス
      @/vex
      $HOUDINI_SCRIPT_PATH
      HScript、tckl/tkファイルを読み込むパス
      @/scripts
      エレキベア
      エレキベア
      これだけ変更したい、という場合にも使えそうクマね
      マイケル
      マイケル
      その他、使用頻度が高そうな環境変数も記載しておきます。 Python関連の環境変数は厳密にはHoudini側で用意されているものではないですが、Pythonファイルを読み込ませる場合に使用します。
      その他よく使いそうな環境変数
      環境変数
      概要
      補足
      $HOUDINI_PACKAGE_DIR
      パッケージファイルを読み込むパス
      ※環境変数の設定方法 > パッケージファイルを使用する 参照
      $HAPI_LICENSE_MODE
      Houdini Engineが見に行くライセンスを制限できる
      デフォルト: Engine → Core → FX
      engine_only: Engineのみ
      $SIDEFXLABS
      SideFXLabsのインストールパス
      -
      $SIDEFXLABS_ADMIN_UPDATES
      個々のユーザによる既存インストールのアップデートを無効にする
      -
      $HOUDINI_UISCALE
      UIのスケールを変更する
      ノートPC向けの設定におすすめ
      $HOUDINI_MMB_PAN
      左ボタンがタンブル、中ボタンがパン、右ボタンがズームになるようマウスボタンを再マップする
      ノートPC向けの設定におすすめ
      $PYTHONPATH
      Pythonファイルを読み込むパス
      -
      $PYTHONDONTWRITEBYTECODE
      pycファイルの生成を行うかどうか
      -
      マイケル
      マイケル
      この中で意外と知られていないのが $HOUDINI_MMB_PAN 変数です。 Macbookで設定するとTrackpad操作でノードの操作が行えるようになるので、通勤/通学中などにHoudiniを行いたい場合 におすすめです!
      エレキベア
      エレキベア
      (通勤中にHoudiniかぁ・・・)
      マイケル
      マイケル
      いくつかピックアップして記載しましたが、その他にも便利な環境変数が多々あるので気になる方はチェックしてみてください!

      環境変数の一覧 | Houdini リファレンス

      環境変数の設定方法

      マイケル
      マイケル
      そしてこれらの 環境変数をどのように設定するか についてですが、大きく下記の3つの方法があります。
      1. houdini.envファイルを書き換える
      2. 起動bat内で設定して起動する
      3. パッケージファイルを使用する
      エレキベア
      エレキベア
      うーむ、これもいくつか方法があるのクマか・・・
      マイケル
      マイケル
      それぞれの方法について簡単に記載します。

      houdini.envを書き換える

      マイケル
      マイケル
      まず一番単純なのは houdini.envを書き換える方法 です。 Houdiniには起動時に読み込む環境設定を指定するファイルがあり、デフォルトだと下記に格納されています。
      • Windows
        • %HOME%/houdiniX.Y/houdini.env
      • Mac
        • ~/Library/Preferences/houdini/X.Y/houdini.env

      参考:環境変数の設定 | Houdini リファレンス

      エレキベア
      エレキベア
      Mayaにも同じようなenvファイルが用意されていたクマね
      マイケル
      マイケル
      このenvファイルの中身を直接書き換えることで、起動時に設定されるようになります。
      # Houdini Common Path
      HOUDINI_CUSTOM_COMMON_DIR=/Users/plasmo/houdini/common
      
      # Set Env
      HOUDINI_OTLSCAN_PATH=${HOUDINI_CUSTOM_COMMON_DIR}/otls;@/otls
      PYTHONPATH=${HOUDINI_CUSTOM_COMMON_DIR}/scripts
      PYTHONDONTWRITEBYTECODE=1
      
      ▲設定例
      エレキベア
      エレキベア
      これは非常に簡単クマね

      起動bat内で設定した後に起動する

      マイケル
      マイケル
      houdini.envを使用する方法は簡単ですが、複数環境を使い分けたい場合には都度書き換えないといけないというデメリットがあります。 そういった場合には、bat(shell)内で環境変数を設定した後に起動する という方法が有効です。
      @echo off
      
      set PARAM_HOUDINI_VER="20.5.332"
      set PARAM_HOUDINI_LICENSE="houdini"
      
      REM Get Common Path.
      set HOUDINI_CUSTOM_COMMON_DIR=C:\Users\plasmo\houdini\common
      
      REM Set Env.
      set HOUDINI_OTLSCAN_PATH=%HOUDINI_CUSTOM_COMMON_DIR%\otls;@/otls;
      set PYTHONPATH=%HOUDINI_CUSTOM_COMMON_DIR%\scripts;
      set PYTHONDONTWRITEBYTECODE=1;
      
      REM Launch App.
      "C:\Program Files\Side Effects Software\Houdini %PARAM_HOUDINI_VER%\bin\%PARAM_HOUDINI_LICENSE%.exe"
      
      
      ▲起動時設定の例(Windows)
      #!/bin/bash
      
      PARAM_HOUDINI_VER="20.5.410"
      PARAM_HOUDINI_LICENSE="Apprentice"
      
      # Set Common Path.
      export HOUDINI_CUSTOM_COMMON_DIR=/Users/plasmo/houdini/common
      
      # Set Env.
      export HOUDINI_OTLSCAN_PATH="${HOUDINI_CUSTOM_COMMON_DIR}/otls;@/otls;"
      export PYTHONPATH="${HOUDINI_CUSTOM_COMMON_DIR}/scripts"
      export PYTHONDONTWRITEBYTECODE=1
      
      # Launch App.
      "/Applications/Houdini/Houdini${PARAM_HOUDINI_VER}/Houdini ${PARAM_HOUDINI_LICENSE} ${PARAM_HOUDINI_VER}.app/Contents/MacOS/happrentice
      
      ▲起動時設定の例(Mac)
      エレキベア
      エレキベア
      これもMayaでもよく見られる方法クマね

      パッケージファイルを使用する

      マイケル
      マイケル
      そして最後に、Houdiniパッケージ を使用する方法があります。 これはパッケージファイルという環境変数を記載したJSONを用意することで設定する方法で、現在主流となりつつある方法です。

      参考:Houdiniパッケージ | Houdini リファレンス

      エレキベア
      エレキベア
      環境設定部分をJSONとして分けることができるのクマね
      マイケル
      マイケル
      パッケージファイルは下記フォルダに格納されているファイルが順番に読まれていきます。
      1. $HOUDINI_USER_PREF_DIR/packages
      2. $HSITE/houdinimajor.minor/packages
      3. $HOUDINI_PACKAGE_DIR
      マイケル
      マイケル
      $HOUDINI_PACKAGE_DIR はカスタムで追加できるディレクトリになります。 パッケージファイルはhoudini.envよりも先に読まれるため、起動前に設定する必要がある 点には注意が必要です。
      エレキベア
      エレキベア
      houdini.envと違って、固有の環境設定を $HOUDINI_PACKAGE_DIR で指定することで切り替えることができるクマね
      マイケル
      マイケル
      JSONファイルの書き方としては、env項目に環境変数と値を設定 する他、 追加・置換などのオプションやバージョンごとの挙動なども指定 することができます。
      {
          "env": [
              {
                  "HOUDINI_PATH": "$HOUDINI_PACKAGE_PATH/../tools"
              }
          ]
      }
      
      ▲シンプルな例
      {
          "requires" : ["package1","package2"],
          "env": [
              {
                  "var": "BOB_TOOL",
                  "value": "$HOME/bob_tool",
                  "method": "append"
              },
              {
                  "var": "BOB",
                  "value": "$HOME/bob_tool"
              },
              {
                  "var": "HOUDINI_PATH",
                  "value": [
                      "$BOB/libs",
                      {
                          "houdini_version>'17.5' and houdini_version<'17.5.250'": "$BOB/test2",
                          "method": "append"
                      }
                  ]
              },
              {
                  "PATH" : {
                      "value" : "$BOB/bin",
                      "method": "append"
                  }
              }
          ]
      }
      
      
      ▲method指定やバージョンによる分岐を加えた例
      マイケル
      マイケル
      詳細な書き方については、公式リファレンスをご参照ください!

      (参考) 個人的な環境設定

      マイケル
      マイケル
      最後に参考として、個人的にどのような環境設定を行なっているかを紹介します!

      基本の環境設定

      マイケル
      マイケル
      まずフォルダ構造としては下記のように、 houdini/common配下にHDAやtoolbar、Pythonファイルなど を、 launcher配下に起動bat(shell) をそれぞれ格納しています。 また、houdini/common/packagesには共通で読み込ませるためのパッケージファイルを用意しています。
      houdini-tools
      ├── houdini
      │   └── common
      │       ├── otls
      │       ├── packages
      │       ├── scripts
      │       └── toolbar
      └── launcher
          ├── mac
          │   ├── Houdini_20_5_410_Apprentice.sh
          │   ├── Houdini_Steam_Indie.sh
          │   └── _switch_packages ※後述
          └── windows
              ├── Houdini_20_5_332_Apprentice.bat
              └── Houdini_Steam_Indie.bat
      
      ▲フォルダ構造
      {
          "env":
          [
              {
                  "HOUDINI_OTLSCAN_PATH": [
                      "$HOUDINI_CUSTOM_COMMON_DIR/otls/prop",
                      "$HOUDINI_CUSTOM_COMMON_DIR/otls/tree"
                  ]
              },
              {
                  "HOUDINI_TOOLBAR_PATH": "$HOUDINI_CUSTOM_COMMON_DIR/toolbar"
              },
              {
                  "PYTHONPATH": "$HOUDINI_CUSTOM_COMMON_DIR/scripts"
              },
              {
                  "PYTHONDONTWRITEBYTECODE": 1
              }
          ]
      }
      
      
      ▲パッケージファイルの記述
      エレキベア
      エレキベア
      このパッケージファイルを指定して起動するクマね
      マイケル
      マイケル
      あとは各起動bat(shell)内で、$HOUDINI_PACKAGE_DIRと内部で使用している環境変数を設定してから起動するようにしているだけですね。
      @echo off
      
      set PARAM_HOUDINI_VER="20.5.332"
      set PARAM_HOUDINI_LICENSE="houdini"
      
      REM Get Common Path.
      set CURRNET_DIR=%~dp0
      for %%D in (%CURRNET_DIR%..\..\houdini\common) do set HOUDINI_CUSTOM_COMMON_DIR=%%~fD
      
      REM Set Packages Env.
      set HOUDINI_PACKAGE_DIR=%HOUDINI_CUSTOM_COMMON_DIR%\packages;
      
      REM Launch App.
      "C:\Program Files\Side Effects Software\Houdini %PARAM_HOUDINI_VER%\bin\%PARAM_HOUDINI_LICENSE%.exe"
      
      
      ▲Windows版起動処理
      #!/bin/bash
      
      PARAM_HOUDINI_VER="20.5.410"
      PARAM_HOUDINI_LICENSE="Apprentice"
      
      # Set Packages Env.
      CURRENT_DIR=$(dirname "$0")
      export HOUDINI_CUSTOM_COMMON_DIR=$(realpath "${CURRENT_DIR}/../../houdini/common")
      export HOUDINI_PACKAGE_DIR="${HOUDINI_CUSTOM_COMMON_DIR}/packages"
      
      # Launch App.
      "/Applications/Houdini/Houdini${PARAM_HOUDINI_VER}/Houdini ${PARAM_HOUDINI_LICENSE} ${PARAM_HOUDINI_VER}.app/Contents/MacOS/happrentice"
      
      
      ▲Mac版起動処理
      エレキベア
      エレキベア
      シンプルクマ〜〜〜〜

      特殊対応:Steam版Houdini(Mac)の起動設定

      マイケル
      マイケル
      一点Steam版Houdiniで起きた問題として、Macだとshellで環境変数を設定しても適用されない といった問題がありました。 Windowsだと問題はなく詳細な原因までは追えていないのですが、恐らくはSteamからHoudiniを起動する仕組みによるものだと思います。
      エレキベア
      エレキベア
      むむ・・・それは困ったクマ・・・
      マイケル
      マイケル
      そこで暫定対処として、デフォルトでパッケージファイルが読み込まれるパスにもう一段パッケージファイルを格納して参照させるといった方法を採用してみました。 下記のようにファイルを用意して、パッケージファイルを認識させるためのパッケージファイルを作成します。
      launcher/mac
      ├── Houdini_20_5_410_Apprentice.sh
      ├── Houdini_Steam_Indie.sh
      └── _switch_packages
          ├── _packages
          │   └── Desktop.json
          ├── _clean_custom_packages.sh
          ├── _switch_custom_packages.sh
          ├── clean_custom_packages_20_5.sh
          └── switch_custom_packages_20_5.sh
      
      ▲フォルダ構造
      {
          "env":
          [
              {
                  "HOUDINI_CUSTOM_COMMON_DIR": "/Users/plasmo/workspace/HoudiniProjects/houdini-scripts/houdini/common"
              }
          ],
          "package_path": "$HOUDINI_CUSTOM_COMMON_DIR/packages"
      }
      
      
      ▲パッケージファイルを認識させるためのパッケージファイル
      マイケル
      マイケル
      そしてこのパッケージファイルをデフォルトで読み込まれるパス(今回だと/Users/[ユーザ名]/Library/Preferences/houdini)配下に格納します。 これをshellで書くと下記のようになります。
      #!/bin/bash
      
      # check parmeters
      if [ -z "$PARAM_HOUDINI_VER" ] || [ -z "$PARAM_CUSTOM_PACKAGE_NAME" ]; then
          echo "please set PARAM_HOUDINI_VER and PARAM_CUSTOM_PACKAGE_NAME env."
          exit 1
      fi
      
      # custom env path
      CURRENT_DIR=$(dirname "$0")
      CUSTOM_PACKAGE_DIR=$(realpath "$CURRENT_DIR/_packages")
      
      # houdini packages path
      USER_PACKAGES_DIR="/Users/plasmo/Library/Preferences/houdini/${PARAM_HOUDINI_VER}/packages"
      
      # copy custom env file
      COPY_FROM_PATH="${CUSTOM_PACKAGE_DIR}/${PARAM_CUSTOM_PACKAGE_NAME}"
      COPY_TO_PATH="${USER_PACKAGES_DIR}/UserCustom.json"
      echo "copy $COPY_FROM_PATH to $COPY_TO_PATH"
      cp $COPY_FROM_PATH $COPY_TO_PATH
      
      echo "complete switch custom packages."
      
      
      ▲パッケージファイルを指定フォルダ配下に格納する
      #!/bin/bash
      
      # settings
      export PARAM_HOUDINI_VER="20.5"
      export PARAM_CUSTOM_PACKAGE_NAME="Desktop.json"
      
      # call shell
      CURRENT_DIR=$(dirname "$0")
      "$CURRENT_DIR/_switch_custom_packages.sh"
      
      
      ▲Desktop.jsonを格納するよう引数指定して実行
      マイケル
      マイケル
      格納した状態で起動すると、共通設定のパッケージファイルが読み込まれるようになります。 必要に応じてパッケージファイル内の参照先を変えることで、環境を切り替えることができます。
      エレキベア
      エレキベア
      少しややこしいクマが・・・こればっかりは仕方ないクマね

      おわりに

      マイケル
      マイケル
      というわけで今回はHoudiniの環境設定に関する話でした! どうだったかな??
      エレキベア
      エレキベア
      環境変数もたくさんあって方法もいくつもあるから 初めての人は混乱しそうクマね
      マイケル
      マイケル
      ややこしいけど、設定の自由度の高さもHoudiniの一つの魅力だと思うから使いこなしていきたいね!
      マイケル
      マイケル
      それでは今日はこの辺で! アデューー!!
      エレキベア
      エレキベア
      クマ〜〜〜〜

      【Houdini20.5】主要な環境変数と設定方法についてまとめる【Windows/Mac】【Steam版】〜完〜


      Houdinishell作業環境
      2025-05-05

      関連記事
      【Houdini20.5】観覧車をプロシージャルに作ってみる【SOP・VEX】
      2025-01-03
      【FFmpeg】shellコマンドでファイル形式変換!動画をGIFに変換してみる
      2020-11-09
      【switchaudio-osx】shellコマンドでオーディオ出力を切り替える【Mac】
      2020-10-29
      【レビュー】ギター弾きにおすすめのチェアはこれだ!【SONGMICS】
      2020-10-07