こちらの記事では、「Labs CSV Exporter」「Labs Multi File」「Labs Turntable」ノードの概要および各ノードのパラメーターについてご紹介します。
SideFXLabsツールのノードは、SideFX社のホームページで紹介されています。併せてご覧ください。
SideFXLabsツールのインストール手順
SideFX Labsツールセットのインストール手順については、以下の記事をご参照ください。
●Houdiniの内部システムからの直接インストール
●Githubからの手動インストール
Labs CSV Exporterとは
ジオメトリのアトリビュートをCSVファイルに出力します。
CSV(Comma Separated Value(=カンマ(,)で区切った値))は、他のフォーマットが利用できない場合の一般的なローレベルの交換フォーマットです。スプレッドシート形式で、Microsoft ExcelやGoogle Spread Sheetのようなツールに簡単に読み込むことができ、大半のスクリプト言語には、CSVファイルを読み取るための対応が組み込まれています。
このROPは、選択したジオメトリの@Pをデフォルトでエクスポートしますが、必要に応じてカスタムアトリビュートをエクスポートすることもできます。また、フォーマットを簡単に制御することもできますが、より複雑なエクスポートフォーマットが必要な場合は、Python SOPを使用することが適切な場合があります。このHDAのスクリプトコードは、カスタムCSVエクスポーターを構築するためのリファレンスとして使用することができます。
各パラメーターについて
①Render
指定した場所にCSVファイルをエクスポートします。
②Export Node
エクスポートするジオメトリのHoudiniパスを設定します。
③CSV Path
CSVファイルを保存する場所と名前を設定します。
④Separate Vector Components
有効にすると、ベクトルコンポーネントをスプレッドシートの個別の列にエクスポートします。無効にすると、ベクトルは{1,2,3}のような中括弧で保存されます。
⑤Component Suffixes
ベクトルコンポーネントに使用するサフィックス(接尾辞)であり、したがって、サフィックスがxでベクトルがPの場合、列名はPxになります。
⑥Filtered Export
これを有効すると、エクスポートするアトリビュートを定義するためにmultiparmを使用します。それ以外の場合は、@Pをエクスポートします。
Labs CSV Exporterノードの機能
Labs CSV Exporterノードの機能についてご紹介します。今回は、Houdini18.0.460を使用しています。最初に、Houdiniを起動してSideFX Labsツールが正常に読み込まれていることを確認します。
ジオメトリネットワーク上でBoxノードを作成し、パラメーターの[Primitive Type:Polygon Mesh]に変換します。
Boxノードの下にColorノードを作成して、パラメーターの[Color Type:Random]に設定します。
CSVデータを出力する際に、判別しやすいようにColorノードの下にNullノードを作成し、[Export_CSV]と名前を変更します。
次に、ROP Networkノードを作成して、ROPネットワークに移動します。
ROPネットワーク上で、Labs CSV Exportノードを作成します。
パラメーターの[Export Node]の右端アイコンをクリックします。
アイコンをクリックすると、Choose Operatorウィンドウが展開されます。先ほど作成したNullノード[Export_CSV]を選択し、[Accept]をクリックします。
すると、[Export Node]欄に指定したNullノードが入力されます。次に、[CSV Path]パラメーターで出力名を設定します。こちらでは、[export_box]と入力しています。
[Separate Vector Components]にチェックを入れ、[Render]ボタンをクリックします。
保存先を確認すると、[export_box.csv]ファイルが出力されたことが確認できます。
このCSVファイルは、Microsoft ExcelやGoogle Spread Sheetで展開することが可能です。
■補足
[Separate Vector Components]が無効の場合、ベクトルコンポーネントは個別に出力されず、中括弧()表示で出力されます。
Labs CSV Exporterノードについては以上です。次に、Labs Multi Fileノードについてご紹介します。
Labs Multi Fileとは
複数のジオメトリファイルを一度にロードします。
File SOPは、一度に1つのファイルしかロードできないように制限されています。
モデルがパーツに分割されている場合や、多くのファイルをFor Loopで簡単にバッチ処理したい場合など、いくつかのワークフローがあります。
このノードは、File SOPをFor Loopでラップして、複数のFile SOPの内容を1つのジオメトリに結合する補助ノードです。
各パラメーターについて
①Reload All
すべてのジオメトリファイルを強制的にリロードします。
②Load Multiple
[Load Multiple]ボタンを押すと、複数のジオメトリファイルを一度に選択できるファイルブラウザがポップアップします。
③Output Source Path
インポートされたジオメトリにSourcePathアトリビュートを追加して、ジオメトリがどのファイルで作成されたかを識別します。
④Visualize Parts
さまざまなファイルを色分けして切り替えます。
⑤Files
[Load Multiple]ボタンから自動生成されるマルチパラメーターです。
⑥File
個別のファイルパスはここに一覧表示され、手動で追加または削除することができます。
Labs Multi Fileノードの機能
Labs Multi Fileノードの機能についてご紹介します。こちらも同様に、Houdini18.0.460を使用しています。
まず、最初にLabs Multi Fileノードで読み込むデータを作成します。こちらでは、2つのジオメトリをFBX形式で出力して、Labs Multi Fileノードで読み込みます。
オブジェクトネットワーク上でTestgeometry Tommyを作成します。ノードをダブルクリックして、ジオメトリネットワークに入ります。
testgeometry_tommy1ノードを選択して、パラメーターの[Textures]のチェックを外します。
次に、Deleteノードを作成して、Groupパラメーターの右端カーソルアイコンを選択します。
カーソルアイコンをクリックすることで、ビューポート上で削除するプリミティブを選択することができます。こちらでは、衣服以外のボディを選択しています。選択後、ビューポート上でEnterキーを押します。
Enterキーを押すことで、ボディが削除され、Groupパラメーターに数値が入力されたことが確認できます。
次に、衣服をFBX形式で出力するために、ROP Networkノードを作成します。
ROPネットワークに入り、Filmbox FBXノードを作成します。
パラメーターの[Output File]に出力するFBXの名前を設定します。こちらでは、[out_cloth]と設定しています。
次に、[Export]パラメーターの右端カーソルアイコンをクリックして、出力するデータを選択します。
アイコンをクリックすることで、Operator Bundlesウィンドウが展開されます。ここで、[testgeometry_tommy1]を選択して、[Accept Pattern]をクリックします。
FBXデータを出力するため、[Save to Disk]をクリックします。
もう1つFBXで出力するジオメトリを作成します。オブジェクトネットワーク上で再度、Testgeometry Tommyを作成します。こちらでは、ボディ部分を出力します。
同様に、ジオメトリネットワークに入り、パラメーターの[Clothing]、[Textures]のチェックを外します。
次に、ROP Networkノードを作成して、ROPネットワークへ移動します。
再度、FilmboxFBXノードを作成して、[Output File]に名前を設定し、[Export]パラメーターでtestgeometry_tommy2を指定します。パラメーターの[Save to Disk]をクリックしてFBXデータを出力します。
以上で、FBXデータの作成は完了です。
次に、ジオメトリネットワーク上でMulti Fileノードを作成して、FBXデータを読み込みます。
ノードを選択し、[Load Multiple]をクリックします。新たにウィンドウが展開されるので、出力したFBXデータ(Cloth、Body)を選択し、[開く]をクリックします。
すると、ビューポート上にTestgeometry Tommyが表示されます。
パラメーターの[Visualize Parts]にチェックを入れることで、各パーツ毎に色が割り当てられジオメトリを確認することが出来ます。
■補足:出力したパーツを個別で確認する場合
Multi Fileノードの下にBlastノードを接続します。
BlastノードのGroupパラメーター右端アイコンをクリックして、[@out_body]を指定します。
out_bodyを指定することでボディ部分が削除されたことが確認できます。
また、[Delete Non Selected]にチェックを入れることで、Groupパラメーターで選択していないものを削除することができます。この場合は、Groupパラメーターでボディを選択したため、Delete Non Selectedを有効にすると、Clothが削除されたことが確認できます。
Labs CSV Multi Fileノードについては以上です。次に、Labs Turntableノードについてご紹介します。
Labs Turntableとは
タイムラインに基づいて、入力ジオメトリを回転させます。
これは、オブジェクトのターンテーブルレンダリングを素早く設定するために使用できるシンプルなノードです。
タイムライン上の開始/終了フレームと指定された回転数に基づいてオブジェクトを回転させます。
■補足:反時計回りの動きが必要な場合は、回転数を負の値に設定します。
各パラメーターについて
①Axis
回転させる軸を指定します。
②Number of Turns
タイムラインの開始/終了フレーム内でオブジェクトが回転する回数を設定します。
③Rotate Around Origin
重心またはワールドの原点を中心に回転を切り替えます。
Labs Turntableノードの機能
Labs Turntableノードの機能についてご紹介します。こちらも同様に、Houdini18.0.460を使用しています。
ジオメトリネットワーク上でTestgeometry Rubbertoyを作成します。
テストジオメトリの下にLabs Turntableノードを接続します。このノードは、とてもシンプルです。ノードを接続して、タイムラインの再生ボタンをクリックすることでジオメトリを回転させることができます。
下動画は、Y軸に対して120フレームで1回転する設定を実施した結果です。
また、[Axis]パラメーターを[X,Y,Z]に変更した結果や、[Number of Turns]パラメーターの数値を調整した結果について、動画でまとめてご紹介しています (字幕付き)。併せてご覧下さい。
「Labs CSV Exporter」「Labs Multi File」「Labs Turntable」ノードについては以上です。
これらのノードを使用することで、CSV形式の出力や複数のジオメトリデータの読み込みおよびジオメトリの回転など、Labsツールを使用することで容易に作業を行うことが出来ます。