Houdini 20.5 キャラクタ KineFX

KineFXキャラクタツールセット

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を使用してキャラクタやアニメーションに変更を加えることができます。

Christophe Desse氏によるキャラクタモデル

キャラクタ要素

リギング用のスケルトンを作成および準備する

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

キャラクタスキン(左)、KineFXスケルトン(右)

リギング用のスケルトンを準備するために参照スケルトンが必要になりますが、 これは、キャラクタのベーススケルトンに追加情報を付与することで、 ガイドスケルトン と呼ばれる参照スケルトンを作成することができます。 ガイドスケルトンの情報は、下流のリグコンポーネントによって取得され、キャラクタのリグ機能が構築されます。 追加できる情報には、以下のようなものがあります:

  • リグにコントロールを作成するための参照として使用される追加ジョイント。

  • ジョイントのグループを識別するタグ(ラベル)。

  • ガイドスケルトンのジョイントに情報を設定するプロパティ。

ガイドスケルトンの作成方法に関する詳細は、リギング用のスケルトンを準備するを参照してください。

スケルトンのタグ

ジオメトリにキャプチャウェイトを作成する

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

キャプチャウェイトを使用して変形したジオメトリ

プロシージャルリギング

KineFXのリギングは、APEX(All-Purpose EXecution)によって駆動されます。 APEXとは、キャラクタリグを構築および実行するグラフ評価フレームワークのことです。 APEXでは、キャラクタリグはAPEXグラフを使用して表現されます。

背景

Houdini20より前のバージョンでは、キャラクタのリグロジックは(Rig Pose SOPなどの)リグビヘイビア系ノードに存在し、評価もそれらのノード上でされていました。 これは、ネットワークでリグの挙動を決定する部分に達すると、ネットワーク上のまさにその場所でこの機能を評価しなければならないこと意味しました。 つまり、リグロジックとリグの評価の両方が結び付けられていたわけです。

以下の例は、Houdini20より前のバージョンのリギングセットアップです。チューブジオメトリを変形させています。 キャラクタ要素は、チューブジオメトリ、スケルトン、ジオメトリ上のキャプチャウェイトを作成することでセットアップされています。 Rig Pose SOPでは、スケルトンのポーズを操作(スケルトンを変形)し、キーフレームを設定してアニメーションを追加することができます。 その後、Rig Pose SOPはそのスケルトンの変形とアニメーションを評価し、この評価の結果がBone Deform SOPに渡され、そこでもう1つの評価が実行されて、ジオメトリが変形されます。

Houdini 20より前のKineFXリギング

この方法にはいくつかの問題があります:

  • スケルトン上のジオメトリを変形させるために、評価ステップが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より前のバージョンと同じ

リグロジック

リグビヘイビア系ノード(Rig Pose SOPIK Chains SOPFull Body IK SOP)など

APEXグラフ

以下の例は、APEXによるリギングワークフローを示しています。 リグロジックはAPEX Edit Graph SOPのAPEXグラフに存在し、リグはさらに下流のAPEX Scene Invoke SOPで評価されます。 このように、ユーザはリグのピースをプロシージャルに構築/組み立てることができ、ネットワーク内の後の時点で最終的なリグが評価されるように選択することができます。 この 遅延評価 という考え方により、リグロジックとリグ評価を切り離すことができるので、結果としてパフォーマンスが大幅に向上します。

APEXによるリギング

APEXでリグを構築する

APEXでキャラクタリグを構築する方法はいくつかあり、それらの方法を組み合わせて、最終的なリグを構築することができます:

APEX UIでグラフノードを配置して、接続する

APEXネットワークビューは、APEXグラフノードを配置し、それらを手動で接続してグラフを構築できるUIです。 それを行なう方法に関する詳細は、APEXグラフの基本ページをまず参照し、その後数値演算ビューポートアニメーションジオメトリ変形などのグラフの例を確認してください。

APEX Scriptコードインターフェースを使用する

APEX Scriptは、Pythonライクな構文を使用してAPEXグラフを生成できるコードインターフェースです。 APEX Scriptスニペットは、APEX Script SOPAPEX Autorig Component SOPAPEX Rigscript Component SOPで記述して、リグにカスタム機能を追加することができます。 APEX Scriptの説明は、APEX Scriptの基本ページを参照してください。 KineFXドキュメントの“APEX Scriptによるグラフの構築”セクションで、追加情報や例を紹介しています。

事前構築済みリグコンポーネントを使用する

SOPネットワークに留まったまま、事前構築済みリグコンポーネントを使用して、リグの一部をAPEXグラフとして自動的に内部で構築することができます。 これらのリグコンポーネントは、APEX Autorig Component SOPおよびAPEX Rigscript Component SOPから利用可能です。

リギングに関するドキュメント

以下では、リギングに関するドキュメントを紹介します:

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つのレベルのデータコンテナで構成されます。 キャラクタ要素はキャラクタを構築するためにキャラクタコンテナに追加され、キャラクタはアニメーションシーンを組み立てるためにシーンコンテナに追加されます。 アニメーションシーンはその後、ビューポートアニメーション用にAnimateステートに渡されます。

Animateステートで表示できるのは、パックキャラクタフォーマット内のデータのみです。 パックキャラクタフォーマットのキャラクタ要素の一部には、特別な拡張子(.skel、.shp、.rigなど)が付いており、Animateステートによって取得され、アニメーションシーンに組み立てられます。

Rig Treeビューでのパックキャラクタフォーマットの階層

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

異なるワークフローでリグをパックキャラクタフォーマットに追加

アニメーション

ビューポートアニメーション

Od Studiosによるキャラクタの概念、モデル、リグ、アニメーション

ビューポートアニメーションは、APEX Scene Animate SOPのビューアステートである Animateステート で実行されます。 このビューアステートでは、複数のキャラクタを表示することができ、キャラクタに対してFKやIKといったポージングを実行したり、キャラクタのコントロールを操作したり、キャラクタ間に拘束を付けることができます。 また、Animationステート内では、物理ベースのモーションやラグドールといった機能をアニメーションに適用することできます。

Animationステートの入力は、パックキャラクタフォーマットのアニメーションシーンです。 Animationステートは、パックキャラクタフォーマットのキャラクタ要素(特別な拡張子で識別されます)を取得し、それらを使用してビューポートでのアニメーション用のシーンを構築します。

ビューポートアニメーションに関するドキュメント

以下では、ビューポートアニメーションのページを紹介します:

  • アニメーションワークフローページでは、シーンにキャラクタとアニメーションを追加する方法、モーションリターゲットを通してアニメーションをキャラクタに転送する方法、シーンアニメーションを再生する方法を説明しています。

  • トランスフォームハンドルを使用してキャラクタにポーズを付ける方法、利用可能なメニューやHUDを使用して様々な設定を行なう方法など、Animateステートの使い方を学習します。

  • Animateステートには、キャラクタのポージング、コントロールのモーションパスの操作、拘束、Dynamic Motion、ラグドールシミュレーションのアニメーションへの追加を支援するツールがいくつか用意されています。

  • Animateステートのホットキーのクイックリファレンスは、ここで確認できます。

  • Animateステートでは、キャラクタコントロールは選択セットと呼ばれるグループに整理されています。 これらのセットを使用すると、コントロールをまとめて選択、非表示、ピン留め、Isolate(単独表示)させることができ、コントロールの選択と表示を簡単に管理できます。

  • アニメーションレイヤを使用すると、元のアニメーションに影響することなく、アニメーションの複数の“レベル”あるいは“レイヤ”を作成できます。

  • Animationツールバーは、アニメーションワークフローの改善に役立つ単純なスライダツールで構成されたカスタマイズ可能なツールバーで、これによりブロッキングポーズを素早く作成したり、アニメーションコントロールやアニメーションカーブに簡単に変更を加えることができます。

SOPベースのアニメーション

SOPベースのアニメーションでは、特別なSOPノードを使ってネットワークを構築することで、キャラクタにモーションを追加することができます。 SOPネットワークエディタでのアニメーションの場合、キャラクタをパックキャラクタフォーマットに組み立てる必要はありません:

アニメーションのリターゲット

以下のページでは、KineFXへのデータのインポート、キャラクタとアニメーションへのエフェクトの編集と追加、最終結果のエクスポートなど、リターゲット工程の様々な側面について説明しています:

KineFX

概要

キャラクタ要素の準備

APEXグラフを使用したリギング

APEXスクリプトを使用したリググラフの構築

リグコンポーネントを使用したリギング

ビューポート内でアニメーションを付ける

SOPベースのアニメーション

変形

アニメーションのリターゲット

H20以前

ペイン

別表