On this page |
概要 ¶
KineFXとは、ユーザがジオメトリ(SOP)レベルでキャラクタを作成および編集することができるHoudiniのリギングおよびアニメーションキャラクタツールセットです。 ゼロから独自のKineFXキャラクタを作成したり、特別なKineFX SOPとお馴染みのHoudini SOPを使用して、取り込んだキャラクタとアニメーションを編集することができます。 KineFXの主な機能は、リギングとアニメーション、そしてアニメーションのリターゲットです。
リギングとアニメーション ¶
キャラクタをネットワークに取り込んだり、キャラクタの要素(スケルトン、ジオメトリキャプチャウェイト、リグ)をすべてSOPレベルで作成することができます。 キャラクタ要素を組み立ててキャラクタを作成したら、複数のキャラクタを、Houdiniのビューポートアニメーション環境であるAnimateステートに入力されるアニメーションシーンに追加することができます。

KineFXはプロシージャルリギングの思想に基づいて構築されており、リグのイテレーションを迅速に行ったり、非破壊的に試行錯誤することができます。 KineFXのリギングは、キャラクタリグがAPEXグラフを使って表現されるグラフ評価フレームワークである、APEXによって駆動されます。
KineFXはHoudiniのSOPベースのキャラクタツールセットの総称であり、APEXはそのKineFX下で実行されるリギングエンジンです。 KineFXはAPEXを利用しており、KineFX基盤の一部はAPEXグラフ評価を使用しています。
アニメーションのリターゲット ¶
リターゲットとは、あるキャラクタのアニメーションを受け取り、それを別のキャラクタに転送する工程のことです。 KineFXは柔軟で堅牢なシステムなので、ソースキャラクタとターゲットキャラクタ間で形態や階層構造が大きく異なっていても制御することができます。 リターゲットワークフロー内で利用可能なツールを使用すると、モーションキャプチャデータ、セカンダリモーションエフェクト、MotionClipを使用してキャラクタやアニメーションに変更を加えることができます。

キャラクタ要素 ¶
リギング用のスケルトンを作成および準備する ¶
キャラクタのスケルトンは、ジオメトリレベルでポリゴンラインで繋がったポイントによって表現されます。 KineFXのジョイントベースのシステムでは、SOPノードを使用して様々な方法でキャラクタのジョイント階層を作成および編集することができます。 詳細は、スケルトンの扱い方を参照してください。

リギング用のスケルトンを準備するために参照スケルトンが必要になりますが、 これは、キャラクタのベーススケルトンに追加情報を付与することで、 ガイドスケルトン と呼ばれる参照スケルトンを作成することができます。 ガイドスケルトンの情報は、下流のリグコンポーネントによって取得され、キャラクタのリグ機能が構築されます。 追加できる情報には、以下のようなものがあります:
-
リグにコントロールを作成するための参照として使用される追加ジョイント。
-
ジョイントのグループを識別するタグ(ラベル)。
-
ガイドスケルトンのジョイントに情報を設定するプロパティ。
ガイドスケルトンの作成方法に関する詳細は、リギング用のスケルトンを準備するを参照してください。

ジオメトリにキャプチャウェイトを作成する ¶
キャラクタのスケルトンとスキンが用意できたら、スキンキャプチャを使用して、スキン変形のためにジオメトリにウェイトを作成することができます。 ジョイントが動くと、ジオメトリはキャプチャウェイトとジョイントの位置に応じて変形します。 キャプチャウェイトを作成および変更可能な様々なSOPに関しては、スキンのキャプチャを参照してください。

プロシージャルリギング ¶
KineFXのリギングは、APEX(All-Purpose EXecution)によって駆動されます。 APEXとは、キャラクタリグを構築および実行するグラフ評価フレームワークのことです。 APEXでは、キャラクタリグはAPEXグラフを使用して表現されます。
背景 ¶
Houdini20より前のバージョンでは、キャラクタのリグロジックは(Rig Pose SOPなどの)リグビヘイビア系ノードに存在し、評価もそれらのノード上でされていました。
これは、ネットワークでリグの挙動を決定する部分に達すると、ネットワーク上のまさにその場所でこの機能を評価しなければならないこと意味しました。
つまり、リグロジックとリグの評価の両方が結び付けられていたわけです。
以下の例は、Houdini20より前のバージョンのリギングセットアップです。チューブジオメトリを変形させています。
キャラクタ要素は、チューブジオメトリ、スケルトン、ジオメトリ上のキャプチャウェイトを作成することでセットアップされています。
Rig Pose SOPでは、スケルトンのポーズを操作(スケルトンを変形)し、キーフレームを設定してアニメーションを追加することができます。
その後、Rig Pose SOPはそのスケルトンの変形とアニメーションを評価し、この評価の結果がBone Deform SOPに渡され、そこでもう1つの評価が実行されて、ジオメトリが変形されます。

この方法にはいくつかの問題があります:
-
スケルトン上のジオメトリを変形させるために、評価ステップが2回あります。1つはRig Pose SOP、もう1つはBone Deform SOPで、この2つの間には評価の依存関係があります。
-
リグロジックとリグ評価が結び付けられています。Rig Pose SOPでスケルトンのポーズを変更する度に、その変更が評価されます。
-
アニメーション(Rig Pose SOP上)と変形の結果(Bone Deform SOP上)を、別々のノードで確認する必要があります。
APEXによるリギング ¶
Houdini20でAPEXが導入されても、キャラクタ要素を組み立てて準備する手順に変わりはありません。 変わったのは、APEXグラフでリグロジックを表現するようになったことです:
Houdini 20より前のバージョン |
Houdini 20 |
|
---|---|---|
キャラクタ要素の準備と組み立て |
Houdini 20より前のバージョンと同じ |
|
リグロジック |
リグビヘイビア系ノード( |
APEXグラフ |
以下の例は、APEXによるリギングワークフローを示しています。
リグロジックはAPEX Edit Graph SOPのAPEXグラフに存在し、リグはさらに下流の
APEX Scene Invoke SOPで評価されます。
このように、ユーザはリグのピースをプロシージャルに構築/組み立てることができ、ネットワーク内の後の時点で最終的なリグが評価されるように選択することができます。
この 遅延評価 という考え方により、リグロジックとリグ評価を切り離すことができるので、結果としてパフォーマンスが大幅に向上します。

APEXでリグを構築する ¶
APEXでキャラクタリグを構築する方法はいくつかあり、それらの方法を組み合わせて、最終的なリグを構築することができます:
APEX UIでグラフノードを配置して、接続する |
APEXネットワークビューは、APEXグラフノードを配置し、それらを手動で接続してグラフを構築できるUIです。 それを行なう方法に関する詳細は、APEXグラフの基本ページをまず参照し、その後数値演算、ビューポートアニメーション、ジオメトリ変形などのグラフの例を確認してください。 |
APEX Scriptコードインターフェースを使用する |
APEX Scriptは、Pythonライクな構文を使用してAPEXグラフを生成できるコードインターフェースです。
APEX Scriptスニペットは、APEX Script SOP、 |
事前構築済みリグコンポーネントを使用する |
SOPネットワークに留まったまま、事前構築済みリグコンポーネントを使用して、リグの一部をAPEXグラフとして自動的に内部で構築することができます。
これらのリグコンポーネントは、 |
リギングに関するドキュメント ¶
以下では、リギングに関するドキュメントを紹介します:
APEXグラフによるリギング ¶
-
APEXグラフの基本ページでは、APEXグラフを構成する要素の説明と、APEXネットワークビューでグラフを手動で作成する方法の説明が載っています。
-
APEX Scriptの基本ページでは、いくつかの単純な例を使ってAPEX Scriptを紹介しています。
-
数値演算用のグラフでは、2つの値を加算したり、複数の結果を取得したり、ジオメトリからの情報を取得するといった数値演算のためにAPEXグラフを作成して実行する方法の手順を段階を追って説明しています。
-
ビューポートアニメーション用のグラフでは、APEXグラフを使用して、コントロールや拘束の作成、ジョイント階層の定義など、Houdiniのアニメーション環境の一部の機能を構築する方法を説明しています。
-
ジオメトリ変形用のグラフでは、3つのジョイントの単純なジオメトリを変形するのに使用するAPEXグラフノードを説明しています。
-
APEXグラフ要素では、タグ、プロパティ、アトリビュートなど、様々なタイプのメタデータが利用可能です。
-
APEXパスパターン構文は、APEXグラフおよびパックキャラクタフォーマット内の特定の要素をフィルタリングして選択できるルールセットです。 APEX Scriptと事前構築済みリグコンポーネントは、APEXパスパターンを利用しています。
-
APEXグラフノードの完全なリストは、ここを参照してください。
APEX Scriptによるグラフの構築 ¶
-
グラフの扱い方では、APEX Scriptを使用してグラフ要素にアクセスしたり操作する方法、グラフロジックを別のグラフに直接追加する方法、グラフ内から他のグラフを呼び出す方法を説明しています。
-
コードスニペット内ではAPEX Scriptの関数を独自に作成したり、ビルトインのAPEX関数を使用することができます。 また、APEX Scriptには、ビルトインのAPEX関数の一部に便利な名前のマッピングが用意されています。
-
APEX Script言語リファレンスでは、APEX Scriptの構文および言語要素(用意されている型、演算、ステートメントなど)を説明しています。
リグコンポーネントによるリギング ¶
-
Houdiniの事前構築済みリグコンポーネントを使用して、3つのジョイントのチューブジオメトリをリギングする方法を学びます。
-
事前構築済みリグコンポーネントを使用して、キャラクタ用のリグを構築します。
-
使用可能な事前構築済みリグコンポーネントのリストは、ここを参照してください。
アニメーション用にキャラクタデータを組み立てる ¶
キャラクタの要素の用意ができたら、それらを パックキャラクタフォーマット (Houdiniのアニメーション環境用のキャラクタデータをバンドルおよび整理する手段)に組み立てます。 パックキャラクタフォーマットは、ディスク上のディレクトリ構造に似たフォルダ構造で整理されています。
キャラクタフォルダ構造は、アニメーションシーン、キャラクタ、キャラクタ要素という3つのレベルのデータコンテナで構成されます。 キャラクタ要素はキャラクタを構築するためにキャラクタコンテナに追加され、キャラクタはアニメーションシーンを組み立てるためにシーンコンテナに追加されます。 アニメーションシーンはその後、ビューポートアニメーション用にAnimateステートに渡されます。
Animateステートで表示できるのは、パックキャラクタフォーマット内のデータのみです。 パックキャラクタフォーマットのキャラクタ要素の一部には、特別な拡張子(.skel、.shp、.rigなど)が付いており、Animateステートによって取得され、アニメーションシーンに組み立てられます。

キャラクタリグの構築方法に応じて、Pack Folder SOPまたはリグコンポーネントSOPのいずれかを使用して、リグはパックキャラクタフォーマットに追加されます:

アニメーション ¶
ビューポートアニメーション ¶
ビューポートアニメーションは、APEX Scene Animate SOPのビューアステートである Animateステート で実行されます。
このビューアステートでは、複数のキャラクタを表示することができ、キャラクタに対してFKやIKといったポージングを実行したり、キャラクタのコントロールを操作したり、キャラクタ間に拘束を付けることができます。
また、Animationステート内では、物理ベースのモーションやラグドールといった機能をアニメーションに適用することできます。
Animationステートの入力は、パックキャラクタフォーマットのアニメーションシーンです。 Animationステートは、パックキャラクタフォーマットのキャラクタ要素(特別な拡張子で識別されます)を取得し、それらを使用してビューポートでのアニメーション用のシーンを構築します。
ビューポートアニメーションに関するドキュメント ¶
以下では、ビューポートアニメーションのページを紹介します:
-
アニメーションワークフローページでは、シーンにキャラクタとアニメーションを追加する方法、モーションリターゲットを通してアニメーションをキャラクタに転送する方法、シーンアニメーションを再生する方法を説明しています。
-
トランスフォームハンドルを使用してキャラクタにポーズを付ける方法、利用可能なメニューやHUDを使用して様々な設定を行なう方法など、Animateステートの使い方を学習します。
-
Animateステートには、キャラクタのポージング、コントロールのモーションパスの操作、拘束、Dynamic Motion、ラグドールシミュレーションのアニメーションへの追加を支援するツールがいくつか用意されています。
-
Animateステートのホットキーのクイックリファレンスは、ここで確認できます。
-
Animateステートでは、キャラクタコントロールは選択セットと呼ばれるグループに整理されています。 これらのセットを使用すると、コントロールをまとめて選択、非表示、ピン留め、Isolate(単独表示)させることができ、コントロールの選択と表示を簡単に管理できます。
-
アニメーションレイヤを使用すると、元のアニメーションに影響することなく、アニメーションの複数の“レベル”あるいは“レイヤ”を作成できます。
-
Animationツールバーは、アニメーションワークフローの改善に役立つ単純なスライダツールで構成されたカスタマイズ可能なツールバーで、これによりブロッキングポーズを素早く作成したり、アニメーションコントロールやアニメーションカーブに簡単に変更を加えることができます。
SOPベースのアニメーション ¶
SOPベースのアニメーションでは、特別なSOPノードを使ってネットワークを構築することで、キャラクタにモーションを追加することができます。 SOPネットワークエディタでのアニメーションの場合、キャラクタをパックキャラクタフォーマットに組み立てる必要はありません:
-
物理ベースのモーションを使用して、現実感のある斜方投射と振り子のモーションを適用します。
-
キャラクタにラグドールシミュレーションを適用します。
アニメーションのリターゲット ¶
以下のページでは、KineFXへのデータのインポート、キャラクタとアニメーションへのエフェクトの編集と追加、最終結果のエクスポートなど、リターゲット工程の様々な側面について説明しています:
-
モーションキャプチャ、群衆、Solaris、FBXなど、様々なソースからアニメーションとキャラクタデータをKineFXに取り込むことができます。
-
あるキャラクタから別のキャラクタにアニメーションを転送し、そのリターゲットの結果を仕上げることができます。
-
モーションキャプチャデータをリターゲットネットワークで使用できます。
-
キャラクタにセカンダリモーションエフェクトを追加できます。
-
MotionClipを使用して、アニメーションを確認および編集することができます。
-
リターゲットが完了したら、キャラクタデータをエクスポートすることができます。