Houdini 21.0 キャラクタ KineFX

アニメーションワークフロー

On this page

アニメーションワークフローでは、ユーザはキャラクタとアニメーションをシーンに追加したり、モーションリターゲットを通してアニメーションをキャラクタに転送したり、シーンアニメーションを再生することができます。アニメーションシーンは、キャラクタや他のシーン要素と共に、パックキャラクタフォルダ構造でまとめます。

基本的なアニメーションシーンセットアップ

以下は、キャラクタをシーンに追加したり、アニメーションを実行するための基本的なワークフローです。この例では、キャラクタとしてElectra Test Geometry SOPを使用します:

基本的なアニメーションワークフロー
  1. Electra SOPの、 OutputAPEX Character に設定します。これにより、Electraは一連のキャラクタ要素(スケルトン、シェイプ、リグ)で構成されたキャラクタとして出力されます。Rig Treeビューでは、このノードの中身を確認することができます:

    • Electra SOPを選択します。

    • Rig Treeビューを開きます - ペインの上部で New Tabアイコンをクリックし、 New Pane Tab Type ▸ Animation ▸ Rig Tree を選択します。

    • Type ドロップダウンメニューから Packed Folders を選択します。以下のパックキャラクタフォルダ構造が表示されます:

      /
      -- Base.rig
      -- Base.shp
      -- Base.skel
      
  2. APEX Scene Add Character SOPは、パックキャラクタフォルダ構造のキャラクタ(.char)フォルダにキャラクタ要素を追加します。このキャラクタが、アニメーションシーンに追加されることになります。

    • Character Name パラメータでキャラクタの名前を指定します。APEX Scene Add Character SOPの名前を変更すると、 Character Name が自動的に更新されます。この例では、 Character Namecharacterに設定します。

    • APEX Scene Add Character SOPを選択します。Rig Treeビューでは、以下の構成になっています:

      /
      -- character.char/
          -- Base.rig
          -- Base.shp
          -- Base.skel
      -- scene.graph
      

      scene.graphの詳細は、キャラクタフォルダ構造を参照してください。

  3. APEX Scene Animate SOPAnimateステートを使用すると、シーン内のキャラクタを表示したり、ポーズを付けたり、アニメーションさせることができます。Animateステートに入るには、APEX Scene Animate SOPを選択し、そのDisplayフラグをオンにして、左側のツールバーで Animateをクリックします。

    Note

    Animateステートを終了しても、APEX Scene Animate SOPでシーン内のアニメーションを再生することができます。なぜなら、Display Options(ビューポートで D を押し、 Optimize タブを選択します)で、 Enable APEX Character Deformation オプションがデフォルトでオンになっているからです。 Enable APEX Character Deformation がオフの場合は、APEX Scene Invoke SOPを使用してアニメーションを再生およびプレビューする必要があります:

    アニメーションを再生
    1. APEX Scene Invoke SOPのDisplayフラグをオンにします。

    2. プレイバー Playを押して、アニメーションを確認します。

複数のキャラクタをシーンに追加する

各キャラクタに対してAPEX Scene Add Character SOPを使用することで、複数のキャラクタをアニメーションシーンに取り込みます:

複数のキャラクタをシーンに追加
  1. それぞれのAPEX Scene Add Character SOPで、 Character Name パラメータにキャラクタの名前を指定します。

  2. 2つ目のAPEX Scene Add Character SOPであるadd_character2を選択します。Rig Treeビューには以下のように表示されます:

    /
    -- character1.char/
        -- Base.rig
        -- Base.shp
        -- Base.skel
    -- character2.char/
        -- Base.rig
        -- Base.shp
        -- Base.skel
    -- scene.graph
    

プロップをシーンに追加する

APEX Scene Add Prop SOPを使用して、アニメーションシーンにプロップを追加することができます。プロップは、パックキャラクタフォルダ構造のキャラクタとして追加されます:

プロップをシーンに追加
  1. APEX Scene Add Prop SOPで、 Prop Name パラメータにプロップの名前を指定します。

  2. APEX Scene Add Prop SOPを選択します。Rig Treeビューで、<prop_name>.charフォルダがパックキャラクタフォルダ構造に追加されています:

    /
    -- character.char/
        -- Base.rig
        -- Base.shp
        -- Base.skel
    -- <prop_name>.char/
        -- Base.rig
        -- Base.shp
        -- Base.skel
    -- scene.graph
    

アニメーションをキャラクタに追加する

APEX Scene Add Animation SOPを使用して、アニメーションをキャラクタに追加することができます。

チャンネルプリミティブからアニメーション追加する

チャンネルプリミティブとは、ジオメトリと共に格納されるアニメーションカーブで、Animateステートでの使用に最適化されています。Animateステートでキャラクタのコントロールを選択すると、そのコントロールのチャンネルプリミティブがチャンネルルリストに追加され、アニメーションエディタで通常のチャンネルと同様に操作することができます。

この例では、.bgeoファイルにアニメーションがあり、それをElectraに追加していきます:

チャンネルプリミティブからのアニメーションをキャラクタに追加
  1. File SOPの.bgeoファイルにはAPEXシーンが含まれており、そのシーンにはキャラクタとアニメーションが含まれています。File SOPを選択し、Rig Treeビューで.bgeoファイルのパックキャラクタフォルダ構造を確認します:

    /
    -- animation/
        -- anim
    -- electrarun.char/
        -- Base.rig
        -- Base.shp
        -- Base.skel
    
  2. Unpack Folder SOPを使用して、.bgeoファイルからチャンネルプリミティブを取り出します。 Extract Pattern/animation/animに設定します。

  3. APEX Scene Add Animation SOPで:

    • Character パラメータをキャラクタの名前に設定します。

    • Input TypeChannel Primitives に設定します。

    • Animation Clip に名前を指定します。<animation_clip>.clipフォルダがシーンの/animationフォルダの下に追加されます。Rig Treeビューでは、シーンについて以下のようなパックキャラクタフォルダ構造が表示されます:

      /
      -- animation/
          -- <animation_clip>.clip/
      -- character.char/
          -- Base.rig
          -- Base.shp
          -- Base.skel
      

アニメーションされたパラメータ値からアニメーションを追加する

キャラクタのスケルトンコントロール階層を抽出したり、Rig Pose SOPを使用してキャラクタにポーズを付けたりキーフレームを追加することで、キャラクタにアニメーションを追加することができます。APEX Scene Add Animation SOPはそのアニメーションをシーン内のキャラクタへと戻し、追加のアニメーションはAPEX Scene Animate SOPを使用して実行することができます:

アニメーションされたパラメータをキャラクタに追加
  1. APEX Control Extract SOPは、スケルトンのコントロール階層を抽出します:

    • Extract From Folder をオンにします。

    • Graph Geometry Path でリグを指定します。この例では、 Graph Geometry Path/character.char/Base.rigに設定します。

    • Group パラメータで抽出するコントロールを指定します。 Group パラメータをデフォルトのままにすると、リグのコントロール階層全体が抽出されます。

  2. Rig Pose SOPビューアステートでキャラクタにポーズを付けて、キーフレームを設定します:

    • Rig Pose SOPを選択し、左側のツールバーにある Show Handleをクリックしてビューアステートに入ります。

    • ポーズを付けている間にキャラクタを表示するには、APEX Scene Add Animation SOPのパラメータを以下の手順のように設定し、Displayフラグをオンにします。

  3. APEX Control Update Parms SOPは、Rig Pose SOPで実行されるアニメーションを使って、スケルトンコントロールを更新します。APEX Control Update Parms SOPとAPEX Control Extract SOPを併用して、スケルトンのコントロールを更新します。

  4. APEX Scene Add Animation SOPは、Rig Poseアニメーションをキャラクタに追加します:

    • Character をキャラクタの名前に設定します。

    • Input TypeAnimation Parms に設定します。

  5. Animateステートでは、キャラクタにポーズを付けてキーフレームを設定するか、アニメーションエディタでアニメーションデータ(チャンネルプリミティブ)を操作することで、Rig Poseアニメーションの上で追加のアニメーションを実行することができます。

    Tip

    アニメーションツールバーのReduce Resampleツールを使用して、キーフレームを削減することができます:

    1. Animateステートでコントロールを選択します。

    2. アニメーションエディタのGraphビューで、キーを選択します。

    3. Reduce Resampleツールのスライダを調整します。

アニメーションをキャラクタにリターゲットする

APEX Animation from Skeleton SOPを使用すると、あるキャラクタのアニメーションを別のキャラクタに転送することができます。

アニメーションチャンネルをリターゲットする

この例では、Electra(ソース)から別のElectra(ターゲット)にアニメーションを転送します:

ソースElectraからターゲットElectraにアニメーションをリターゲット
  1. Electra SOPsource_electraで、 OutputAPEX Character に設定します。

  2. APEX Scene Add Character SOPで、キャラクタの名前を指定します。今回は Character Nameelectra_srcに設定しました。

  3. APEX Scene Add Animation SOPで:

    • Characterelectra_srcに設定します。

    • Animation Clip に名前を指定します。

    • Input TypeChannel Primitives に設定します。

  4. APEX Scene Invoke SOPを使用して、アニメーションスケルトンを取得します:

    • OutputUnpacked Geometry に設定します。

    • Animation セクションで、 Animation Clip をアニメーションクリップの名前に設定します。

    • Extra Outputs セクションで、出力したいアニメーションスケルトンを指定します:

      • Scene Output Path/electra_src.char/Base.rig/outputに設定します。

      • KeyBase.skelに設定します。

  5. Electra SOPのtarget_electraで、 OutputAPEX Scene に設定します。このターゲットElectraは、パックキャラクタフォルダ構造にelectra.charとして格納されます。

  6. APEX Animation from Skeleton SOPで、アニメーションを更新したいリグとスケルトンへのパスを設定します:

    • Rig Path/electra.char/Base.rigに設定します。

    • Skeleton Path/electra.char/Base.skelに設定します。

  7. APEX Animation from Skeleton SOPのDisplayフラグをオンにしたら、プレイバー Playを押して、ターゲットElectraのアニメーションを確認します。

インポートしたアニメーションをリターゲットする

この例では、インポートしたFBXファイルからElectraにアニメーションをリターゲットします。リターゲットワークフローを使用して、FBXファイルのアニメーションをElectraのスケルトンに転送します。すると、Electraのアニメーションスケルトンが元のアニメーションシーン内のElectraキャラクタに追加されます:

インポートしたFBXファイルからElectraにアニメーションを転送
インポートしたアニメーション
  1. Electra SOPで、 OutputAPEX Scene に設定します。

  2. Unpack Folder SOPは、Electraのスケルトンを抽出します。そのスケルトンはリターゲットワークフローへの入力として使用されます。 Extract Pattern/electra.char/Base.skelに設定します。

  3. Rig Match Pose SOPを使用して、インポートしたアニメーションスケルトンとElectraのスケルトンを一致させます(詳細はリターゲット時にポーズを合わせるを参照してください):

    • Enable Match Bounds をオフにします。この例では、Rig Match Poseビューアステートで手動でスケルトンを一致させます。

    • Rig Match Poseビューアステートに入ります - Rig Match Pose SOPを選択し、Displayフラグをオンにしたら、左側のツールバーにある Show Handleを押します。デフォルトで Enable Source パラメータがオンになっているため、ビューアステートでアニメーションスケルトンを調整することができます。

    • ジョイントを選択し、ハンドルを使用してジョイントを移動/回転させることで、アニメーションスケルトンをElectraのスケルトンに合うように調整します。

      Rig Match Poseビューアステートでスケルトンのポーズを一致させる
  4. Map Points SOPを使用して、アニメーションスケルトンとElectraのスケルトン間でジョイントをマッピングします。これを行なう手順については、ソースポイントをターゲットポイントにマッピングするを参照してください。

    マッピングされたジョイント
  5. Full Body IK SOPは、アニメーションスケルトンのアニメーションをElectraのスケルトンに転送します。

  6. APEX Animation from Skeleton SOPで、アニメーションを更新したいリグとスケルトンへのパスを設定します:

    • Rig Path/electra.char/Base.rigに設定します。

    • Skeleton Path/electra.char/Base.skelに設定します。

  7. リターゲットされたアニメーションはAPEX Animation from Skeleton SOPで確認することができます。Displayフラグをオンにして、プレイバー Playを押し、リターゲットされたアニメーションを確認します:

    Electraにリターゲットされたアニメーション

キャラクタをレンダリングする

この例では、ElectraをSolaris (LOP)に取り込みます:

  1. 以下のようなSOPネットワークが構築されています:

    SOPネットワーク
  2. Electra SOPで、 OutputAPEX Scene に設定します。

  3. APEX Scene Invoke SOPで、マテリアルがエクスポートされるように OutputUnpacked Geometry に設定します。

  4. Output SOPを配置することで、Displayフラグを変更しても、エクスポートされる内容に影響が出ずに済みます。

  5. ElectraをSolarisにインポートするためにstageに切り替えます:

    • ネットワークエディタの上部にある objをクリックし、オブジェクトレベルに入ります。

    • objを再度クリックして、 stageを選択します。

    以下のようなLOPネットワークになります:

    LOPネットワーク
  6. Scene Import LOPで、 Objects をSOPネットワークを含むオブジェクトレベルのノードに設定します。または、 Objects*に設定することもできます。これにより、オブジェクトレベルのすべてのカメラとライトがインポートされます。

    Note

    SOPネットワークを含むオブジェクトレベルのノードのDisplayフラグをオンにします。そうしないと、キャラクタをSolarisにインポートした際、キャラクタがビューポートに表示されません。

How to

To...Do this

シーンをファイルに保存する

  1. シーンを含むノード(APEX Scene Add Character SOPAPEX Scene Add Animation SOPAPEX Scene Animate SOP)を、ROP Geometry Output SOPに接続します。

  2. ROP Geometry Output SOPで、 Output File パラメータにシーンを保存するファイル名を指定します。

  3. Save to Disk をクリックします。

シーンファイルを使用する

  1. ネットワークエディタにFile SOPを配置します。

  2. File SOPの Geometry File でシーンファイルを指定します。

  3. File SOPを選択し、左側のツールバー上の AnimateをクリックしてAnimateステートに入ります。APEX Scene Animate SOPがFile SOPの後に自動的に配置されます。

KineFX

概要

キャラクタ要素の準備

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

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

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

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

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

変形

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

H20以前

ペイン

別表