On this page |
パックキャラクタフォーマット は、ビューポート内で1体以上のキャラクタを作成およびアニメーションさせるのに必要なデータを定義し、まとめて、整理することができます。 パックキャラクタフォーマットは、ディスク上のディレクトリ構造に似たフォルダ構造で整理されたジオメトリデータで構成されていて、データは入れ子化(ネスト)されたパックプリミティブとして追加します。
パックキャラクタフォーマットには、アニメーションシーン、キャラクタ、キャラクタ要素という3つのレベルのデータコンテナがあります。 パックキャラクタフォーマットの階層は、Rig Treeビューで確認することができます:

アニメーションシーン
アニメーションシーンは、ポージング可能な1体以上のキャラクタを含んだトップレベルのデータコンテナで、複数のキャラクタをお互いに作用させることができます。 このシーンコンテナには、アニメータがAnimateステートでインタラクティブに追加したアニメーションや拘束も含めることができます。 このシーンコンテナは、パックフォルダ構造内の“フォルダ”と考えることができます。
キャラクタ
キャラクタコンテナには、アニメータがビューポート内で操作できるポージング可能なKineFXキャラクタを格納します。 このキャラクタコンテナには、キャラクタをアニメーションさせるのに必要なすべての要素が含まれており、最低でもリグが含まれています。 このキャラクタコンテナは、パックフォルダ構造内の“フォルダ”と考えることができます。
キャラクタ要素
キャラクタ要素は、キャラクタをアニメーションさせる際に使用される単一のパックジオメトリ要素です。 デフォルトのタイプにはスケルトン、シェイプ、リグ、コントロールがあります。 カスタムの拡張子を使用して独自の要素を定義することもできます。 キャラクタ要素は、パックフォルダ構造内の“ファイル”と考えることができます。
パックキャラクタフォーマットを使用すると、様々な要素をパックしてまとめ、シーン内で使い回したり、必要に応じて個々の要素を抽出することができます。
Pack Folder SOP、
Unpack Folder SOP、
Packed Folder Split SOPを使用して、パックキャラクタフォーマット内のキャラクタ要素を整理、組み立て、抽出することができます:
Pack Folder
Pack Folder SOPは、その入力をパックして、フォルダ構造として整理します。
新規のフォルダ構造を作成することも、既存の構造にパックすることもできます。
Unpack Folder
Pack Folder SOPを使用してデータをパックフォルダ構造に組み立てた後、そのデータを引き出して操作したい場合があります。
このためにはUnpack Folder SOPを使用します。
Unpack Folder SOPは、パックフォルダ構造を入力として受け取り、APEXパスパターン構文を使用して抽出するデータを検索します。
Unpack Folder SOPの1本の出力には、その抽出されたデータが格納されます。
Packed Folder Split
Packed Folder Split SOPはUnpack Folder SOPと似ていますが、抽出されたデータをただ出力するのではなく、入力のパックフォルダ構造を2つの出力に分割します。
この2つの出力とは、抽出されたデータを取り除いた元のパックフォルダ構造と、抽出されたデータのことです。
データコンテナ ¶
アニメーションシーンコンテナ ¶
キャラクタシーンコンテナは、お互いに作用し合えるように1体以上のキャラクタを含んだトップレベルのデータコンテナです。 通常、シーンの出発点は、シーンに渡されているキャラクタから始まります。 その後、Animateステートでアニメーションが付けられると、他の要素がシーンに追加されます。 これらの要素には、アニメーション、拘束、scene.graphが含まれます。
Note
アニメーション作業時にシーンに追加される要素(アニメーション、拘束、scene.graph)とキャラクタコンテナ内の キャラクタ要素 を混同しないようにしてください。

アニメーション
Animateステートでアニメーションが付けられると、アニメーション用のチャンネルプリミティブがシーンコンテナの/animation
ディレクトリに追加されます。
このチャンネルプリミティブは、ジオメトリと一緒に保存され、Animateステート用に最適化されたアニメーションカーブになっています。
拘束
拘束は、2個のコントロール間の依存関係を評価するミニリグのようなものです。
拘束がAnimateステートで作成されると、その拘束のグラフがシーンコンテナの/constraints
ディレクトリに追加されます。
scene.graph
scene.graphは、Animateステートでリグと拘束が評価される順番を管理および定義するグラフです。 シーンコンテナ内に作成および格納されます。 scene.graphはリグを実行するだけで、リグを作成しません。
scene.graphは、シーンコンテナ内のすべてのキャラクタを検索し、それらのキャラクタを組み立て、シーンを作成します。 拘束がAnimateステートで作成されると、コントロール間の依存関係がscene.graphに追加されます。 scene.graphには、拘束が作成される順番も格納されます。
Warning
scene.graphは、コントロール/リグ間に依存関係があるシーンに不可欠です(これらは通常、拘束です)。 scene.graphを削除すると、シーン内に作成した拘束が失われます。
1つのHoudiniシーン(.hip
)ファイル内で複数のアニメーションシーンを持つことができます。
これは、様々なバージョンのシーンを使用したい場合などに役立ちます。
キャラクタコンテナ ¶
キャラクタコンテナには、リグと、そのリグが適切に評価されるのに必要なすべてのキャラクタ要素が含まれます。 キャラクタには、任意のタイプのキャラクタ要素を複数含めることができます。 例えば、3個のシェイプをキャラクタコンテナに含めることができます。
キャラクタのオペレーションは“リグ中心”であり、リグがそのリグの入力に基づいて必要とされるキャラクタ要素を決定します。 キャラクタコンテナに特定のキャラクタ要素が含まれていても、その要素が入力としてリグに接続されていない場合、その要素は使用されません。 例えば、キャラクタコンテナに10個のシェイプがあっても、そのうちの2個だけがリグに入力されていたとします。 この場合、リグはその2個のシェイプのみを使用します。 ただし、残りのシェイプを今後使用できるように、キャラクタコンテナ内に保持することは可能です。
Note
“キャラクタコンテナ”という用語は、リグロジックのピースと、そのリグロジックの入力から参照されている要素を含んだ汎用コンテナのことを指します。 実際には、このキャラクタコンテナは、キャラクタ、プロップ、アセットが該当します。
Houdiniでは、キャラクタコンテナの名前に.char
拡張子が付いている必要があります。
この.char
拡張子から、自動的に.char
パックプリミティブがパックフォルダ構造内のフォルダであると解釈されます。
Animateステートは、その.char
フォルダ内でリグ(.rig
拡張子)を検索し、そのリグの入力に基づいて、その.char
フォルダに格納されているそれに関連するキャラクタ要素(スケルトンやシェイプなど)を取得します。

キャラクタ要素コンテナ ¶
キャラクタ要素は、キャラクタをアニメーションさせる際に使用される単一のパックジオメトリです。 以下がデフォルトのタイプです:
スケルトン(.skel
)
KineFXスケルトン。
シェイプ(.shp
)
変形のための静止スキンとして使用可能なシェイプ。
リグ(.rig
)
スケルトン/シェイプを修正するグラフ。
コントロール(.ctrl
)
ビューポート内でUIイベントがどのように解釈されるかを定義したビューポート操作ツール。 例えば、ビューポート内でドラッグした時の挙動を定義することができます。 コントロールは、グラフとそれに関連付けられたシェイプのセットです。
カスタムの拡張子を使用して、独自の要素を定義することもできます。
キャラクタデータの組み立てと抽出 ¶
Pack Folder SOPを使用することで、入力のキャラクタ要素をパックキャラクタフォーマットに組み立てることができます。
Pack Folder SOPは、新規にフォルダ構造を作成したり、キャラクタ要素を既存のフォルダ構造にパックすることもできます。
キャラクタ要素の追加 ¶
この例では、パックフォルダ構造にキャラクタ要素を追加します。
キャラクタ要素には、チューブジオメトリ、そのチューブのスケルトン、ボーン変形を実行するリグロジックがあります。
Joint Capture Biharmonic SOPは、ジオメトリ上にキャプチャウェイトを作成するのに使用します:

Pack Folder SOPの2番目の入力は、複数のキャラクタ要素を受け取り、パックフォルダ構造に追加します。
キャラクタ要素をPack Folder SOPに接続すると、その入力の接続順で、自動的に Name パラメータがPack Folder SOPに作成されます。
Name パラメータには、入力ノードの名前が自動的に入ります。この例では以下のようになります:
-
1番目の入力: Name :
create_capture_weights
-
2番目の入力: Name :
create_capture_weights
-
3番目の入力: Name :
rig
入力ノードの名前には拡張子が付いてないため、Pack Folder SOPの Type パラメータには何も入りません。
入力が何であるかを分かりやすくしたい場合は、Pack Folder SOPのパラメータを更新して、パックフォルダ構造内のキャラクタ要素の名前とその拡張子を変更します:
-
1番目の入力: Name :
Base
、 Type :shp
-
2番目の入力: Name :
Base
、 Type :skel
-
3番目の入力: Name :
Base
、 Type :rig
Note
リググラフの入力によって参照されるキャラクタ要素の名前は、パックフォルダ構造内のキャラクタ要素の名前と一致していなければなりません。 こうすることで、リグは、取得して使用すべきキャラクタ要素を特定することができます。
以下の画像が示しているのは、上記の例で使用しているrig
ノードのグラフ入力です。
グラフ入力ポートの名前をクリックすると、そのポート名をパックフォルダ構造と一致するように変更することができます。
グラフの構築と実行の詳細については、APEXグラフを参照してください。

パックフォルダ構造を確認する ¶
パックフォルダ構造の内容は、Rig TreeビューとGeometry Spreadsheetの2つの方法で確認することができます。 Rig Treeビューは、パックフォルダ構造の階層全体を表示し、Geometry Spreadsheetは、パックフォルダ構造のトップレベルのみを表示します。
Rig Treeビュー
-
ネットワークエディタでPack Folder SOPを選択します。
-
Rig Treeビューを開くために、ペインの上部にある
New Tabアイコンをクリックし、 New Pane Tab Type ▸ Animation ▸ Rig Tree を選択します。
-
Rig Treeビューで、ノード名(ここでは
assemble_character_elements
)の横にあるドロップダウンボックスを出力に設定します。 -
Type を Packed Folders に設定します。
-
パックフォルダ構造は、2通りの方法で表示することができます。
-
Hierarchy を Topology に設定すると、パックフォルダ構造がツリービューとして表示されます。
-
Hierarchy を Flat List に設定すると、パックフォルダ構造が平坦なリストとして表示されます。
次のパックフォルダ構造が表示されます:
/ -- Base.rig -- Base.shp -- Base.skel
-
Geometry Spreadsheet
-
ネットワークエディタでPack Folder SOPを選択します。
-
Geometry Spreadsheetを開くために、ペインの上部にある
New Tabアイコンをクリックし、 New Pane Tab Type ▸ Inspectors ▸ Geometry Spreadsheet を選択します。
-
Geometry Spreadsheetの上部のツールバーにある
Primitivesをクリックします。キャラクタ要素(Base.shp、Base.skel、Base.rig)がリストされます。
アニメーションシーンを組み立てる ¶
以下の例では、APEX Scene Add Character SOPを使用して、キャラクタ毎にアニメーションシーンを組み立てます。
APEX Scene Add Character SOPは、キャラクタの要素をキャラクタ(
.char
)フォルダに追加してから、キャラクタをアニメーションシーンに追加します:

それぞれのAPEX Scene Add Character SOPで、 Character Name パラメータにキャラクタの名前を指定します。 アニメーション用にシーンを組み立てる方法の詳細については、アニメーションワークフローを参照してください。
Pack Folder SOP内のキャラクタ要素の名前を変更すると、シーンコンテナ内には以下のパックフォルダ階層が出来ます:
/ -- character1.char/ -- Base.rig -- Base.shp -- Base.skel -- character2.char/ -- Base.rig -- Base.shp -- Base.skel
Animateステートでキャラクタにポーズを付けたりアニメーションさせるには:
-
シーンを
APEX Scene Animate SOPに接続します:
APEX Scene Animate SOPでアニメーションを実行する -
そのAPEX Scene Animate SOPを選択してディスプレイフラグを有効にします。
-
ビューポートの左側にあるツールバー上の
Animateをクリックします。
パックフォルダ構造からデータを抽出する ¶
Unpack Folder SOPや
Packed Folder Split SOPを使用することで、パックフォルダ構造からキャラクタ要素を抽出することができます。
どちらのSOPもパックフォルダ構造を入力として受け取り、APEXパスパターン構文を使用して、抽出したいデータを検索することができます。
Unpack Folder SOPは、抽出されたデータが格納された1本の出力を持つのに対して、Packed Folder Split SOPは、入力のパックフォルダ構造を2本の出力に分割します。1つ目の出力は、抽出されたデータが除去された元々のパックフォルダ構造(デフォルト設定)で、2つ目の出力は、抽出されたデータです。
Note
キャラクタ内の単一の要素を分析したい場合は、Unpack Folder SOPを使用してその1つの要素を抽出できます。 既存のキャラクタの何かを変更したい場合は(例えば、現在のスケルトンを取得し、ジョイントを追加して、スケルトンに戻すなど)、Packed Folder Split SOPを使用すると良いでしょう。
この例では、Unpack Folder SOPを使用して、シーンからリグを抽出します:

Unpack Folder SOPで、 Extract Pattern を/character1.char/Base.rig
に設定し、character1
コンテナからリグを抽出します。
Warning
検索パターンがシーン内の複数のリグと一致した場合(例えば/**/*.rig
など)、それらの複数のリグが抽出され、それらが1つのアンパックジオメトリに結合されてしまいます。
APEX Network Viewでは有効に見えるグラフが表示されるかもしれませんが、予期せぬ動作を引き起こす可能性があります。
Note
Unpack Folder SOPでは:
-
Unpack Contents がオンの場合、抽出されたリグはアンパックされ、リググラフジオメトリが得られます。このリググラフは、APEXネットワークビューで確認することができます。
-
Unpack Contents がオフの場合、抽出されたリグはグラフジオメトリではなく、パックプリミティブです。APEXネットワークビューには、このパックプリミティブリグは表示されません。
Rig Treeビューに表示されるのは、パックフォルダ構造に パック されたデータのみです。 Unpack Contents がオンの場合、抽出されるデータはアンパックジオメトリであり、Rig Treeビューに何もデータは表示されません。
抽出されたパックプリミティブをRig Treeビューで確認するには:
-
Unpack Folder SOPで、 Unpack Contents をオフにします。
-
Rig Treeビューで、ノード名(ここでは
extract_rig
)の横にあるドロップダウンボックスを出力に設定します。 -
Type を Packed Folders に設定します。
抽出されるデータは以下のように表示されます:
/ -- Base.rig
How to ¶
To... | Do this |
---|---|
パックフォルダ構造を確認する |
パックフォルダ構造の内容は、Rig TreeビューとGeometry Spreadsheetの2つの方法で確認することができます。 Rig Treeビューは、パックフォルダ構造の階層全体を表示し、Geometry Spreadsheetは、パックフォルダ構造のトップレベルのみを表示します。 Rig Treeビュー
Geometry Spreadsheet
|
Geometry Spreadsheetでプリミティブを確認する |
Geometry Spreadsheetでは以下を確認することができます:
Note Geometry Spreadsheetには、選択したノードのトップレベルでパックされているものだけが表示されますが、Rig Treeビューでは、パックフォルダ構造の階層全体が表示されます。 Geometry Spreadsheetで
Note Unpack FolderまたはPacked Folder Split SOPで Unpack Contents がオンの場合、抽出されたデータはアンパックされるため、 |
Pack Folder SOP ¶
To... | Do this |
---|---|
パックフォルダ構造を新規に作成する |
Pack Folder SOPの1番目の入力には何も接続しないでください。2 番目の入力に接続されたデータが、新しいパックフォルダ構造を作成するために使用されます。 |
既存のパックフォルダ構造に追加する |
既存のパックフォルダ構造をPack Folder SOPの1番目の入力に接続します。 |
パックフォルダ構造にデータを追加する |
Pack Folder SOPの2番目の入力にデータを接続します。 Name および Type パラメータには、入力から検出された名前と拡張子が自動的に入力されます。 Name パラメータに相対パスを指定することもできます。
例えば、 Parent Folder が |
パックフォルダ構造の特定のフォルダにデータを追加する |
Parent Folder パラメータに、入力データを追加するフォルダのパスを指定します。パスが存在しない場合は作成されます。 または
Note Parent Folder パラメータに存在しないパスを入力した場合、そのパスが作成されます。 Parent Folder パラメータに要素(フォルダ以外)の名前を入力すると、Pack Folder SOPでエラーが発生します。 |
パックフォルダ構造で入力ジオメトリ名を使用する |
2つのボックスジオメトリが ![]() Pack Folder SOPの2番目の入力にデータを接続すると、 Name および Type パラメータには、接続した入力から検出された名前と拡張子が自動的に入力されます。
このケースでは、 Name は / -- mergepacked1 Name および Type パラメータの横にある / -- box1.shp -- box2.shp Note Name From Input オプションは、入力ジオメトリに Name SOPを使用する場合は、 Class パラメータを Primitive に設定します。 |
組み込みの拡張子を使用してデータを追加する |
組み込みの拡張子の.charと.ctrlは、パックフォルダ構造にフォルダとして追加され、それ以外の組み込みの拡張子は要素として追加されます。 入力をフォルダとして追加するとき:
|
カスタムの拡張子を使用してデータを追加する |
Type パラメータでカスタムの拡張子を指定します。
|
フォルダ構造内の既存データと同じ名前を持つ新しいデータの処理方法を指定する |
Replace Method パラメータで3つのオプションのいずれかを選択します: Add and Replace 新しいアイテムが追加され、既存のアイテムは置き換えられます。 Add and Keep Existing 新しいアイテムが追加され、既存のアイテムはそのまま維持されます。 Replace 新しいアイテムは追加されず、既存のアイテムが置き換えられます。 |
パックオブジェクトの名前/タイプを入力ノードのものにリセットする |
Reload Names ボタンをクリックします。 |
ジオメトリのない入力を無視する |
Ignore Empty Inputs オプションをオンにします。 |
アンパックされたデータのみをパックする(パック済みのデータはパックしない) |
これらのパラメータの詳細は、 |
Unpack Folder SOPとPacked Folder Split SOP ¶
To... | Do this |
---|---|
抽出されたデータを確認する |
抽出されたデータは、Rig TreeビューとGeometry Spreadsheetの両方に表示することができます。 Rig Treeビュー:
Geometry Spreadsheet:
|
特定のパスからデータを抽出する |
Extract Pattern パラメータで、 |
特定の名前を持つすべてのデータを抽出する |
例えば、box2.shpという名前のデータをすべて抽出するには、 Extract Pattern パラメータに |
特定の拡張子を持つすべてのデータを抽出する |
例えば、すべての.shpファイルを抽出するには、 Extract Pattern パラメータに |
アトリビュートまたはグループ名に基づいてデータを抽出する |
Extract Pattern パラメータで、検索パターンを“ 例えば、 Note データは、すべてのプリミティブが検索パターンに一致した場合にのみ抽出されます。
例えば、あるデータのプリミティブのインデックスが0-5であり、検索パターンが パスとアトリビュート/グループの検索パターンを組み合わせることもできます。例えば、
|
抽出されたデータをアンパックする |
Unpack Contents パラメータをオンにして、抽出されたデータをアンパックします。 データが複数回パックされている場合(複数レベルのパッキングがある場合)、 Unpack Contents をオンにすると、抽出されたデータのトップレベルのみがアンパックされます。 |
抽出されたデータをPacked Folders出力に保持する(Packed Folder Splitの場合) |
Extract Only パラメータをオンにします。 データは抽出されるだけで、Packed Folders出力から削除されません。 |
抽出されたデータ以外を出力する(Unpack Folderの場合) |
Invert をオンにします。 |
出力の順番を反転させる(Packed Folder Splitの場合) |
Invert Selection をオンにします。 |