Modelを使用してHoudiniのスクリプトを記述する方法。(HOM)とは、Pythonスクリプト言語を使ってHoudiniから情報を取得して制御することができるアプリケーションプログラミングインターフェース(API)です。HOMはHoudiniの以前のスクリプトソリューションであるエクスプレッション言語とHScriptの機能の代わりとなります。Pythonでは、houパッケージがHOMを定義しているモジュール、関数、クラスの階層のトップです。houモジュールは、パラメータエディタやhythonコマンドラインシェルでエクスプレッションを記述する時に自動的にインポートされます。Xでは、HoudiniはシステムのPythonを使用します。WindowsWindowsでは、HoudiniはHoudiniと一緒にインストールされたPythonのバージョンを使用します。LinuxLinuxでは、HoudiniはPythonライブラリを検索して読み込もうとする時に$PATHを見ません。その代わりに、Houdiniは$LD_LIBRARY_PATH、次に/lib、そして/usr/libのパス全てを検索します。システム内に適したPythonライブラリが見つけられない場合、Houdiniは$HFSのライブラリをデフォルトにします。Pythonライブラリが標準の場所になければ、$LD_LIBRARY_PATHにそのディレクトリパスを追加してください。サブトピックはじめようHOMの紹介PythonパラメータエクスプレッションデフォルトのHScriptエクスプレッション言語の代わりに、Pythonでパラメータエクスプレッションを記述することができます。スクリプトの場所Houdiniでは、Pythonスクリプトを使用することで、いろいろな場所で挙動をカスタマイズすることができます。ツールスクリプトシェルフツール用Pythonスクリプトを記述する方法。次のステップHOMクックブックこれらのサンプルでは、HoudiniのPythonスクリプトのAPIの簡単な使い方を説明します。ノード毎のユーザー定義データHOMを使って個々のノードに任意のデータを保存、取得することができます。組み込みブラウザで閲覧したHTMLページに特別なJavaScriptオブジェクトを使用することで、Houdiniと通信させることができます。コマンドラインスクリプトノード検索ネットワークエディタのFindダイアログと同じコードを使ってプログラム的にノードを検索することができます。PythonビューアステートPythonでビューアステートを記述することで、ビューポート内でノードのユーザー操作をカスタマイズすることができます。Stateは、ビューア内でのマウスの動き、クリック、キーといった解釈の方法を制御します。ノードの作成と編集ノードを制御するステートを実装する方法。ノードを使用しないステートビューアや検査ツールのように、特定のノードタイプに依存しないステートを実装する方法。選択SOPノードステートの動作の一部としてユーザーがジオメトリを選択できるようにする方法。ハンドル独自ステートとハンドルを紐づけて、そのハンドルを使ってユーザー操作に反応させる方法。ガイドジオメトリ独自ステートのデータとユーザー操作に基づいてビューポート内でガイドジオメトリを表示する方法。ユーザーインターフェースイベント直接的なUI入力を検知して反応させる方法。独自ステートのコンテキストメニューをセットアップして、そのメニューを使ってユーザー操作に反応させる方法。独自ステートでのアクションをUndo可能にする方法。インターフェースガイドライン独自ステートをHoudiniのビルトインツールと違和感なく使いやすくするためのルールとヒント。導師レベルRPC他のPythonセッションからHOMスクリプトを使ってネットワーク越しにHoudiniを制御することができます。ネットワークエディタの拡張C++を使ったhouモジュールの拡張リファレンスhouHoudiniにアクセスできるサブモジュール、クラス、ファンクションを含んだモジュール。Alembic拡張関数Alembicファイルから情報を抽出するための便利な関数です。基本Houdiniのユーザーインターフェースの扱い方の基本。シェルフツールメインウィンドウの上部のシェルフにあるアイコンの使い方とカスタマイズの方法。ネットワークとパラメータHoudiniで作業するネットワークエディタとパラメータエディタの使い方。サンプル色々なノードの動作方法を示したサンプルファイル。ヘルプの使い方オンラインヘルプの使い方と独自のツールのドキュメント化の方法。Houdiniの使い方ジオメトリHoudiniがどのようにジオメトリを表現し、どのように作成・編集するのか説明します。コピーとインスタンスコピー(実形状)とインスタンス(読み込みのみ、もしくはレンダリング時に作成される形状)の使い方。アニメーションHoudiniでのアニメーションの作成とキーフレームの方法。キャラクタHoudiniでのキャラクタのリグとアニメーションの方法。レンダリング3Dシーンから画像とアニメーションをレンダリングする方法。マテリアルマテリアルの割り当てとシェーディング用のカスタムマテリアルを作成する方法。コンポジットHoudiniのコンポジットネットワークはレンダーなどの画像を作成し処理することができます。デジタルアセットデジタルアセットは既存ネットワークから再利用可能なノードとツールを作成することができます。インポートとエクスポートHoudiniでのシーン、オブジェクト、他のデータのインポートとエクスポートの方法。TOPsを使ってプロシージャルディペンデンシーグラフ(PDG)を構築する方法TOPノードは、データをネットワークに送り込んで"ワークアイテム"に変換し、色々なノードでそれを制御するワークフローを定義します。ノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。MPlayビューアHoudiniのスタンドアローン画像ビューアの使い方。ダイナミクスパーティクルパーティクルシミュレーションの作成方法。ダイナミクスHoudiniのダイナミクスネットワークを使用したシミュレーションの作成方法。Pyro煙、炎、爆発のシミュレーションの方法。流体とオーシャンのシミュレーションをセットアップする方法。Grains(粒)(砂のような)粒状の材質をシミュレーションする方法。群衆シミュレーションHoudiniでのキャラクタの群衆の作成とシミュレーションの方法。HairとFurヘアーとファーを作成、スタイリング、ダイナミクスを追加する方法。Elements(有限要素)変形可能なオブジェクトを作成してシミュレーションする方法。オブジェクトノードオブジェクトノードはシーン内で、キャラクタ、ジオメトリオブジェクト、ライト、カメラなどのオブジェクトを表示します。ジオメトリノードジオメトリノードはGeoオブジェクト内で存在し、ジオメトリを生成します。ダイナミクスノードダイナミクスノードは物理シミュレーション用に条件とルールを設定します。シェーダノードVOPノードは、ノード同士を接続することで(シェーダなどの)プログラムを定義することができます。Houdiniは、そのノードネットワークを、実行可能なVEXコードにコンパイルします。レンダーノードレンダーノードは、シーンをレンダリングしたり、レンダーディペンデンシーネットワークをセットアップします。チャンネルノードチャンネルノードは、チャンネルデータの作成、フィルタリング、制御をします。コンポジットノードコンポジットノードはフィルターを作成し、画像データを操作します。タスクノードTOPノードは、データをネットワークに送り込んで"ワークアイテム"に変換し、色々なノードでそれを制御するワークフローを定義します。ノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。リファレンスメニューメインメニュー内のそれぞれの項目について説明します。ビューアビューアペインタイプ。ペイン色々なペインのオプションを説明します。ウィンドウ色々なユーザーインターフェースウィンドウのオプションを説明します。スタンドアローンのユーティリティHoudiniには便利なコマンドラインユーティリティプログラムがたくさんあります。Modelを使用してHoudiniのスクリプトを記述する方法。エクスプレッション関数エクスプレッション関数は、パラメータの値を計算することができます。HScriptコマンドHScriptはHoudiniのレガシースクリプト言語です。VEXVEXはシェーダの記述などのHoudiniのほとんどの場所で使われているハイパフォーマンスなエクスプレッション言語です。プロパティプロパティはレンダリング、シェーディング、ライティング、カメラといったパラメータを柔軟で強力な階層構造でセットアップすることができます。PythonパネルPythonを使用したカスタムペインタイプのスクリプトによって独自のUIを作成することができます。ギャラリーHoudiniに含まれている既製マテリアル。ライセンスクレジット。