Houdini 18.5 リファレンス

コンテキストオプション

コンテキストオプションは環境変数と同様ですが、これらのオプションはHIPファイルと一緒に保存されるので、エクスプレッションで使用するのが簡単になります。

On this page

概要

コンテキストオプションはシーン固有の変数で役に立ちます。 例えば、render_quality変数を作成すれば、その変数をすべてのレンダーノードで参照することができ、shot_name変数を作成すれば、すべての非最終レンダリング画像の上にその文字列を重ねるといったことができます。

コンテキストオプションは、Context Options EditorまたはPythonスクリプトを使って作成し、エクスプレッションまたはPythonでそれらを使用することができます。

これは、特に同じHIPファイルを使って複数の ショット をレンダリングする時に役に立ちます。 ショット固有の値を含んだ変数をセットアップし、作業を別のショットに切り替える時にそれらの変数を変更することができます。

内部的には、コンテキストオプションは、 内部名 文字列をキーとした 浮動小数点 または 文字列 の値を保存することができます。 さらに、これらのキーは、"構成文字列"を各オプションに関連付けることができます。 Context Options Editorは、この文字列を使って、人が解読できるラベル、順序、ユーザインターフェースなどの追加情報を保存します。

エクスプレッション内に@name使用することで、コンテキストオプションの値を参照することができます。 例えば、内部名がrender_qualityのコンテキストオプションを作成すれば、メインのレンダーノードの Quality パラメータには@render_qualityを設定し、プレビュー用のレンダーノードの Quality パラメータには@render_quality / 2を設定することができます。

Pythonスクリプトを使えば、コンテキストオプションを作成したり、その値を読み込むこともできます。

コンテキストオプションはHIPファイルと一緒に保存されます 。 新規に作成したHIPファイルにはコンテキストオプションがありません。 新規ファイルが常にデフォルトのコンテキストオプション設定で開始できるようにしたいのであれば、コンテキストオプションをJSONファイルとしてエクスポートし、スタートアップスクリプトである456.pyで、それらのJSONファイルをインポートすることができます。

Context Options Editor

To...Do this

Context Options Editorウィンドウを開く

Edit ▸ Context Options を選択します。

Context Options Editorをペインタブとして開く

Context Options Editorを開きたいペインにある New Tabボタンをクリックして、 New Pane Tab Type > USD > Context Options Editor を選択します。

新しいコンテキストオプションを追加する

左上コーナーにある Addアイコンをクリックして、追加したいオプションのタイプを選択します(オプションタイプに関する詳細は、以下のオプションの構成を参照してください)。

オプションを削除する

オプションを選択して、左上コーナーにある Removeアイコンをクリックするか、または、Deleteを押します。

オプションの構成を編集する

  • オプションを選択して、右上コーナーにある Editアイコンをクリックすると、編集パネルが表示されます。

  • 編集パネルを表示させたままオプションの設定を続けることができます。この編集パネルは、選択したオプションが常に表示されるように更新されます。

  • 編集パネルを非表示にするには、再度 Editアイコンをクリックします。

オプションのラベルを編集する

オプションを選択して、ラベルをクリックするか、または、そのままタイピングを開始します。

Note

ラベルを編集する際に オプションがまだ汎用的な内部名になっている場合 、このエディタは自動的にそのオプションの内部名をそのラベル名に合わせます(そのラベル名を小文字にしてスペースをアンダースコアに置換します)。 これは一度だけ行なわれます。 それ以降にオプションの内部名を変更する場合は、編集パネルを使用します。

オプションの内部名を編集する

オプションを選択して、右上コーナーにある Editアイコンをクリックして編集パネルを表示します。 Internal Nameフィールドを変更します。

オプションの値を編集する

オプションの行の右側にあるエディタを使用します。

Context Options Editor内のオプションの順序を変更する

オプションの行をテーブル内で上下にドラッグします。

Context Options Editor以外で加えた変更をContext Options Editorに反映させる

左上コーナーにある Reloadアイコンをクリックします。

例えば、hou.setContextOption()を使って新しいコンテキストオプションを作成した場合は、その新しいオプションを表示するにはContext Options Editorをリロードする必要があります。

現在のコンテキストオプション(構成を含む)をJSONファイルにエクスポートする

右下コーナーにある Export ボタンをクリックして、エクスポート先のファイルを選択します。

JSONファイルからコンテキストオプションをインポートする

右下コーナーにある Import ボタンをクリックして、インポートしたいファイルを選択します。

既にシーンファイルにコンテキストオプションが存在している場合、Houdiniは、そのファイルをインポートする前にそれらのコンテキストオプションをクリアするか、または、既存のコンテキストオプションにマージするかどうかを尋ねます。

コンテキストオプションの使い方

  • パラメータエクスプレッションに@nameを使用することで、そのコンテキストオプションの値を使用することができます。

  • Pythonスクリプトでhou.contextOption()を使用することで、コンテキストオプションの値を取得することができます。

オプションの構成

パラメータなどの他のHoudiniエレメントと同様に、コンテキストオプションは 内部名 (@nameエクスプレッションやスクリプトで使用する名前)と ラベル (Context Options Editorに表示される人が解読できる名前)を持ちます。

Internal Name

このオプションを@nameエクスプレッションやスクリプトで使用する名前。

Label

このオプションをContext Options Editorで表示した時の人が解読できるラベル。

Tooltip

ユーザーがContext Options Editorのテーブル内でこのオプションにマウスカーソルを載せると表示されるツールチップ。 これを使用することで、ユーザーに各オプションの補足ヘルプを表示させることができます。

Type

Text

自由形式な文字列。このインターフェースはプレーンテキストボックスです。

Number

自由形式な数値。このインターフェースはプレーンテキストボックスです。

File Path

(プラットフォーム固有の)ファイルパス文字列。このインターフェースはインライン自動補完が付いたテキストボックスとファイル選択ボタンです。

Node Path

Houdiniノードパス文字列。このインターフェースはインライン自動補完が付いたテキストボックスとノード選択ボタンです。

Float Slider

範囲内の浮動小数点。このインターフェースはテキストボックスとスライダです。ユーザーがこの範囲の最小/最大外の値を入力できるかどうかを指定することができます。

Int Slider

範囲内の整数。このインターフェースはテキストボックスとスライダです。ユーザーがこの範囲の最小/最大外の値を入力できるかどうかを指定することができます。

(実際は、この値は整数ではないことに注意してください。コンテキストオプションの数値は常に 浮動小数点 として保存されます。このタイプのユーザーインターフェースは、その数値を整数に制限しますが、その数値は内部的には浮動小数点で保存されています。)

String Menu

メニューから選択される文字列。Context Options Editorの編集パネルを使用することで、このメニューの内容をセットアップすることができます。

Int Menu

メニューから選択される数値。Context Options Editorの編集パネルを使用することで、このメニューの内容をセットアップすることができます。

(実際は、この値は整数ではないことに注意してください。コンテキストオプションの数値は常に 浮動小数点 として保存されます。このタイプのユーザーインターフェースは、その数値を整数に制限しますが、その数値は内部的には浮動小数点で保存されています。)

Python Menu

Pythonスニペットで生成されたメニューから選択される文字列。Context Options Editorの編集パネルでPythonスニペットを記述/ペーストすることができます。

Checkbox

1.0(オン)または0.0(オフ)のどれか。このインターフェースはチェックボックスです。

Heading

行間に大きな文字のラベルを表示します。 これは、コンテキストオプションをセクションで分けるのに役立ちます。

スライダのタイプ

通常では MinimumMaximum はスライダ範囲を設定しますが、この最小値未満の値やこの最大値より大きい値をユーザーが手動で入力することができます。 Min LockedMax Locked を有効にすれば、ユーザーが手動で入力した値を強制的に最小値/最大値の範囲に収めることができます。

Min Locked

ユーザーが Minimum 未満の値を入力しないようにします。

Minimum

スライダ範囲の最小値。

Maximum

スライダ範囲の最大値。

Max Locked

ユーザーが Maximum より大きい値を入力しないようにします。

String/Int Menuのタイプ

Automatically generate values

これを有効にすると、各メニューアイテムに関連付けられた"値"が自動的に生成されます。 String Menuに関しては、その値はラベルと同じです。 Integer Menuに関しては、その値は0から始まる選択アイテムのインデックスです。

例えば、 Automatically generate values を有効にして、AppleBearCactusの3つのアイテムを含んだメニューをセットアップしたとします。 そのオプションがString Menuで、ユーザーが Bear を選択すると、その変数にはBearが設定されます。 そのオプションがInt Menuで、ユーザーが Cactus を選択すると、その変数には2が設定されます。

Menu items

  • メニューアイテムを追加するには、 Addボタンをクリックします。

  • メニューアイテムを削除するには、そのアイテムを選択して Removeボタンをクリックします。

  • ラベルを編集するには、その行を選択して、そのラベルをクリックします。

  • 値を編集するには、その行を選択して、その値をクリックします。

  • メニューの順序を並べ替えるには、テーブル内でアイテムを上下にドラッグします。

Python Menuのタイプ

Menu Generation Script

(name, value)ペアのリストを生成するPythonコードを入力します。

  • そのPythonがエクスプレッション(値を評価する)の場合、Houdiniは、それをエクスプレッションとして評価し、その値が(name, value)ペアのリストで返されることを前提にします。

  • そのPythonがステートメントまたは一連のステートメントの場合、Houdiniは、それを 関数のボディ として作用させます。つまり、Pythonスクリプトでreturnキーワードを使用して(name, value)ペアのリストを返す必要があります。

以下は、アイテムラベルが環境変数名で、そのアイテム値がその環境変数の値となっているメニューを構築するPythonコードの例です:

import os
menu = []
for name, value in os.environ.items():
    if not name.startswith("HOUDINI"):
        continue
    item = ("$" + name, value)
    menu.append(item)
return menu

コンテキストオプションのスクリプト制御

以下のHOM関数は、コンテキストオプションの値をスクリプト制御することができます:

Context Options EditorのExportとImportをスクリプト制御することもできます:

import contextoptions

# このシーン内のすべてのコンテキストオプションをJSONファイルにエクスポートします。
contextoptions.exportJson("options.json")

# JSONファイルからコンテキストオプションをインポートして、それらをこのシーン内の既存のコンテキストオプションにマージします。
contextoptions.importJson("options.json")

コンテキストオプションをインポートする前に既存のコンテキストオプションをすべてクリアするには、既存のコンテキストオプションすべてに対してループさせることで、それらのコンテキストオプションを削除することができます:

for name in hou.contextOptionNames():
    hou.removeContextOption(name)

リファレンス

ユーザインターフェース

  • メニュー

    メインメニュー内のそれぞれの項目について説明します。

  • ビューア

    ビューアペインタイプ。

  • ペイン

    色々なペインのオプションを説明します。

  • ウィンドウ

    色々なユーザインターフェースウィンドウのオプションを説明します。

プログラミング

  • エクスプレッション関数

    エクスプレッション関数は、パラメータの値を計算することができます。

  • エクスプレッションクックブック

    エクスプレッションを記述して色々なエフェクトを表現するためのTipsとテクニック。

  • Pythonスクリプト

    PythonとHoudini Object Modelを使用してHoudiniのスクリプトを記述する方法。

  • VEX

    VEXはシェーダの記述などのHoudiniのほとんどの場所で使われているハイパフォーマンスなエクスプレッション言語です。

  • HScriptコマンド

    HScriptはHoudiniのレガシースクリプト言語です。

コマンドライン

導師レベル

プラグインのインストール

  • Houdiniパッケージ

    プラグイン、ツール、アドオンが異なる環境変数定義ファイルを複数作成して、それらを組み合わせる方法。

Houdini Engine