Houdini 21.0 キャラクタ 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グラフを使用して表現されます。

背景

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

以下の例は、Houdini 20より前のバージョンのリギングセットアップです。チューブジオメトリを変形させています。キャラクタ要素は、チューブジオメトリ、スケルトン、ジオメトリ上のキャプチャウェイトを作成することでセットアップされています。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によるリギング

Houdini 20でAPEXが導入されても、キャラクタ要素を組み立てて準備する手順に変わりはありません。変わったのは、APEXグラフでリグロジックを表現するようになったことです:

Houdini 20より前のバージョン

Houdini 20

キャラクタ要素の準備と組み立て

スケルトンの構築キャプチャウェイトの作成

Houdini 20より前のバージョンと同じ

リグロジック

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

APEXグラフ

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

APEXによるリギング

APEXでリグを構築する

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

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

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

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

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

Autorig Builderを使用する

ビューポートでインタラクティブにリグコンポーネントを適用および設定することで、Autorig Builderで完全なリグを構築することができます。

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

SOPネットワークに留まったまま、事前構築済みリグコンポーネントを使用して、リグの一部をAPEXグラフとして自動的に内部で構築することができます。これらのリグコンポーネントは、APEX Autorig 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言語リファレンスでは、APEX Scriptの構文および言語要素(用意されている型、演算、ステートメントなど)を説明しています。

リグコンポーネントによるリギング

アニメーション用にキャラクタデータを組み立てる

キャラクタの要素の用意ができたら、それらを パックキャラクタフォルダ構造 (Houdiniのアニメーション環境用のキャラクタデータをバンドルおよび整理する手段)に組み立てます。パックフォルダ構造は、ディスク上のディレクトリ構造に似た形で整理されています:

Rig Treeビューでのパックキャラクタフォルダ構造

パックキャラクタフォルダ構造は、アニメーションシーン、キャラクタ、キャラクタ要素という3つのレベルのデータコンテナで構成されます。キャラクタ要素はキャラクタを構築するためにキャラクタコンテナに追加され、キャラクタはアニメーションシーンを組み立てるためにシーンコンテナに追加されます。アニメーションシーンはその後、ビューポートアニメーション用にAnimateステートに渡されます。

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

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

異なるワークフローでリグをパックキャラクタフォルダ構造に追加

アニメーション

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

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

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

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

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

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

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

  • Animateステートに慣れ、トランスフォームハンドルを使用してキャラクタにポーズを付けたり、キャラクタコントロールのグループを移動させたり、スキンコントロールをセットアップしたり、コントロールの制限を設定する方法について学びます。

  • Animateステートでは、キャラクタのポーズ付けを支援したり、コントロールのモーションパスを操作したり、拘束Dynamic MotionラグドールシミュレーションフルボディIKをアニメーションに追加するためのツールや機能が利用可能です。

  • Animateステートの様々な機能、構成、設定には、以下のメニューやHUDからアクセスすることができます。

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

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

  • Motion Mixerを使用すると、トラック、クリップ、エフェクトを使用して複数のキャラクタのアニメーションクリップを組み合わせたり、編集したりすることができます。

  • アニメーションカタログを使用すると、アニメーションや単一フレームのポーズを保存や管理したり、アニメーションシーンに適用することができ、異なるプロジェクトでのアニメーションの再利用が可能になります。

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

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

  • アニメーションのブックマークは、プレイバー/アニメーションエディタのタイムライン上のマーカーで、色々な部分のアニメーションを整理して一目で区別が付くようにするのに役立ちます。

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

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

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

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

KineFX

概要

キャラクタ要素の準備

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

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

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

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

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

変形

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

H20以前

ペイン

別表