Houdini 20.5 キャラクタ KineFX

グラフ構築向けのAPEX Scriptの基本

On this page
この機能はまだ開発中です。現在の機能は未完成で変更される予定であり、 ドキュメントが手薄だったり、なかったりします。 これを使用するときは、そのことに我慢してください。

APEX Scriptは、APEXグラフを構築できるコードインターフェースです。Pythonのような構文を使用して、コードロジックを表すグラフを生成できます。APEX Scriptスニペットは、APEX Script SOP(入力を受け取り、コードスニペットを実行し、結果を出力する)で記述することができます。APEX Autorig ComponentおよびAPEX Rigscript Component SOPには、APEX Scriptスニペットを記述するためのインターフェースも用意されています。

APEX Scriptスニペットは、APEXグラフとして直接的に表現されます。APEX Scriptコードを入力すると、グラフ表現がAPEXネットワークビューで生成されるのを確認できます:

APEX Scriptは、新しいグラフを構築したり、既存のグラフを変更したり、グラフデータを取得するためのツールとして使用できます。詳細は、以下のページを参照してください:

APEX Scriptをグラフとして表示する

APEX Scriptでは、BindInput()はグラフへの入力を定義する特殊関数です。グラフ入力を表すポートを持つparmsノードを作成します。BindOutput()関数はグラフ出力を定義し、グラフから出力される値を表すポートを持つoutputノードを作成します。

この例では、入力として値を受け取り、同じ値を出力するAPEX Scriptスニペットを記述します:

  1. 以下のスニペットを、APEX Script SOPSnippet パラメータに配置します:

    a = BindInput(3.5)
    
    BindOutput(a)
    
  2. グラフとして表されたAPEX Scriptスニペットを確認するには、APEXネットワークビューを開きます。ペインの上部で New Tabアイコンをクリックして、 New Pane Tab Type ▸ Animation ▸ APEX Network View を選択します。

  3. APEX Script SOPの Visualizer セクションで、 ShowComponent Script に設定します。

    グラフとして表されたAPEX Scriptコード

グラフ入力を表示する

グラフ入力値を表示するには:

  1. Geometry Spreadsheetで、ノード名の横にあるドロップダウンメニューから Apex Script Graph を選択します。

    または

    APEX Script SOPの2番目の出力(APEX Script Graph出力)をNull SOPに接続し、Null SOPを選択します。

  2. Geometry Spreadsheetで、上部のツールバーの Detailをクリックします。入力パラメータは、グラフのparms Detailアトリビュートに格納されています。

APEX Script SOPで Reload Setup Parmsボタンをクリックすると、調整可能なパラメータとして、パラメータエディタにグラフ入力が表示されます。

グラフ出力を表示する

グラフ出力値を表示するには:

  1. デフォルトでは、APEX Script SOPの Invocation セクションにある Output Dictionary Bindings の最初のエントリは、以下のように設定されています。

    • Apex Outputs Groupoutputに設定されています。これは、グラフの出力ノードの名前です。

    • Output Attribparmsに設定されています。これは、辞書形式で格納される出力の名前です。任意の名前に設定することができます。

  2. Geometry Spreadsheetで、ノード名の横にあるドロップダウンメニューから Invoked を選択します。

  3. 上部のツールバーの Detailをクリックします。グラフ出力は、 Output Attrib で指定した辞書に格納されます。

新規グラフを構築する

この例では、APEX Scriptを使用して単一のTransformObjectノードを含む新規グラフを作成します:

  1. APEX Script SOPで、 Snippet パラメータに以下のコードを追加します:

    # グラフを初期化します
    graph = ApexGraphHandle()
    
    # 新しいグラフにTransformObjectノードを追加します
    graph.addNode('test_a', 'TransformObject')
    
    # グラフをジオメトリとして書き出します
    geo = graph.writeToGeo()
    BindOutput(geo)
    
  2. APEXネットワークビューでAPEX Scriptスニペットのグラフ表現を確認します。APEX Script SOPの Visualizer セクションで、 ShowComponent Script に設定します:

    グラフとして表されたAPEX Script
  3. ジオメトリとしてグラフを出力するには、 Bind Output Geometry<output_node>:<output_port>に設定します。この場合は、output:geoです。

  4. APEX Scriptスニペットによって作成された新しいグラフを確認するには:

    • APEX Script SOPの Visualizer セクションで、 ShowOutput 1 に設定します。

      または

    • APEX Script SOPの1番目の出力をNull SOPに接続し、Null SOPを選択します。

      APEX Scriptによって作成されたグラフ

既存のグラフを変更する

この例では、APEX Scriptを使用して既存のグラフにTransformObjectノードを追加します:

  1. APEX Edit Graph SOPで、入力ノードと出力ノードのみを含むグラフを作成します:

    元のグラフ
  2. グラフを入力としてAPEX Script SOPに接続します:

    元のグラフを更新
  3. APEX Script SOPで、定義済みのヘッダを使用して、入力グラフを受け取って変更するAPEX Scriptコマンドを自動的に追加します:

    • Header パラメータをオンにします。

    • Header セクションで、 TemplateGraph に設定します。すると、以下のコードがAPEX Scriptスニペットの先頭と末尾に追加されます:

      ヘッダ

      geo: Geometry = BindInput()
      graph = geo.loadFromGeo()
      

      フッタ

      geo = graph.writeToGeo()
      BindOutput(geo)
      
  4. APEX Script SOPへの入力を指定します。 Invocation セクションの Input1 Bindings で、 Bind To Geometry Parameter をオンにして、そのパラメータをgeoに設定します。geoは、APEX Script SOPに入力されるグラフジオメトリで、前の手順のヘッダで指定されています。

  5. 更新されたグラフを出力するには、 Bind Output Geometryoutput:geoに設定します。

  6. APEX Script SOPは入力グラフを受け取り、それを変更せずに出力するようになりました。APEX Script SOPによって出力されるグラフを確認するには:

    • APEX Script SOPの Visualizer セクションで、 ShowOutput 1 に設定します。

      または

    • APEX Script SOPの1番目の出力をNull SOPに接続し、Null SOPを選択します。

  7. TransformObjectノードを入力グラフに追加するには、以下のコードを Snippet パラメータに配置します:

    graph.addNode('test_a', 'TransformObject')
    
    更新されたグラフ

How-to

To...Do this

コードの変更を反映させる

コードスニペットを変更した後、⌃ Ctrl + Enterを押します。

APEX Scriptの行番号に関連付けられたグラフノードを確認する

  1. ShowComponent Script に設定します。

  2. Inspect Line パラメータをオンにします。APEXネットワークビューで、APEX Scriptの行番号に関連付けられたグラフノードが赤で表示されます。

グラフにノードをレイアウトする

APEX Scriptスニペットにgraph.layout()を追加します。

コードブロックをコメント化またはコメント解除する

コードブロックを選択し、⌃ Ctrl + /を押します。

コードスニペットのフォントサイズを変更する

Snippet パラメータ内をクリックし、⌃ Ctrl + +または⌃ Ctrl + -を押します。

グラフをAPEX Scriptコードに変換する

グラフをAPEX Scriptコードに変換するを参照してください。

KineFX

概要

キャラクタ要素の準備

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

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

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

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

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

変形

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

H20以前

ペイン

別表