Houdini 20.0 ネットワークとパラメータ

パラメータのモーションエフェクト

モーションエフェクトは、簡単にキーフレームパラメータ(通常は、移動、回転、スケールのパラメータ)にジッターやオーバーシュートのような 副次的なモーション を追加することができます。

On this page

概要

パラメータエディタのパラメータ、またはタイムライン(スコープしたパラメータ)でクリックしたメニューから Motion Effects サブメニューのエフェクトにアクセスすることができます。また、シェルフの Animation にあるJiggleツールLagツールを使ってモーションエフェクトをセットアップすることもできます。Overriddenパラメータはパラメータエディタでは背景がオレンジになります。

シーンの裏側では、モーションエフェクトは、パラメータの値を上書きするCHOP(チャンネルオペレータ)ノードのネットワークを構築します。そのエフェクトはプロシージャルなので、CHOPネットワークを編集することによって、エフェクトを編集、改良、拡張させることができます。複数のモーションエフェクトを同じパラメータに適用することができますが、それは単にHoudiniがネットワークでそれらのエフェクトを結合しているだけです。ネットワークを調べてからCHOPノードを編集することで、エフェクトを変更することができます。

モーションエフェクトを使う時、Houdiniはmotionfxと呼ばれるCHOPネットワークノードをシーンレベル(/obj/motionfx)に作成して、Houdiniが作成したCHOPノードをそこに格納します。motionfxノードをダブルクリックして中に入ってノードを調べたり、またはmotionfxネットワークを削除してモーションエフェクトすべてを削除することができます。

利用可能なエフェクト

上級ユーザなら利用可能なエフェクトのリストを編集・追加することができます。

Cycle

キーフレーム値をオフセットして繰り返します。例えば、進んで戻るボールを1周期分としてキーフレームして、CycleをTranslateパラメータに適用すると、ボールはキーフレームアニメーションが終わった後も同じ動きを続けます。

De-spike

“スパイク”(急に大きく変化するパラメータ値)を削除します。これは、どこからか取り込んだノイズのあるアニメーションデータを綺麗にするのに役に立ちます(これは“De-spike”モードに設定したFilter CHOPノードを適用します)。

Lag

アニメーションを遅く、且つオーバーシュートして、重い感じを表現します。

Limit

パラメータ値をクランプ、ループ、量子化します。これを使えば、アニメーションパラメータをある制限内に抑えたり、連続モーションをグリッドにスナップさせることができます。

Noise

アニメーションノイズをパラメータ値に追加します。Translateパラメータに追加すれば、オブジェクトが振動します。

Shift

キーフレーム値をタイムシフトして、アニメーションの一部の開始時間と終了時間を移動します。以下のStretchも参照してください。

Smooth

ジッターを除去するためにキーフレーム値を滑らかにします(これは“Gaussian”モードに設定したFilter CHOPノードを適用します)。

Spring

アニメーションにオーバーシュートと振動を追加して、オブジェクトをスプリングのような動きにします。

Stretch

キーフレーム値を時間圧縮または時間を広げます。アニメーションの一部がより遅くなったり、より速くなります。上記のShiftも参照してください。

Wave

パラメータの値に単純なWave関数を適用した結果を上書きします。例えば、WaveエフェクトをオブジェクトのTranslate Yパラメータに適用すると、波のように動きます。

How to

To...Do this

モーションエフェクトをパラメータに追加する

  1. パラメータをクリックして Motion Effects サブメニューを開きます。

  2. エフェクトを選択します。

モーションエフェクトをスコープしたパラメータに追加する

  1. パラメータをクリックして Motion Effects サブメニューを開きます。

  2. エフェクトを選択します。

    CHOPノードのフローティングパラメータエディタが表示されます。このウィンドウを使ってエフェクトを修正します。

エフェクトのパラメータを編集する

  1. パラメータをクリックして Motion Effects サブメニューを開きます。

  2. Edit Effect Parameters サブメニューを選択します。

  3. エフェクトを選択します。

    エフェクトのパラメータを編集するポップアップパラメータエディタが開きます。

エフェクトを無効にする

  1. パラメータをクリックして Motion Effects サブメニューを開きます。

  2. Enable Effect チェックボックスをオフにします。

CHOPネットワークを編集する

エフェクトをパラメータに追加すると、CHOP(チャンネルオペレータ)ノードのネットワークが構築されます。このネットワークに入って、ノードのパラメータを編集、再配置、削除などを行ないます。

  1. パラメータをクリックして Motion Effects サブメニューを開きます。

  2. Jump to Effect Network を選択します。

Tip

Space + Gを押せば、選択したノードを中央に表示することができます。

クリップとポーズ

Channel CHOPは、他のCHOPを使って操作して元のパラメータに戻すことが可能なチャンネルアニメーションを保持することができます。 Motion Effects サブメニューを使えば、簡単にパラメータにChannel CHOPを作成することができます。

To...Do this

パラメータにChannel CHOPを新しく作成する

パラメータをクリックして Motion Effects サブメニューから Create Clip を選択します。 Create Clip ダイアログのオプションは、以下を参照してください。

パラメータの現在の値を使ってChannel CHOPを新しく作成する

パラメータをクリックして Motion Effects サブメニューから Create Pose を選択します。

Tip

クリップを作成すると、Houdiniは気を利かせて、元のノード上のハンドルを修正することができますが、その代わりにそれ以降は、パラメータ値がChannel CHOP上で変化します。

例えば、ジオメトリコンテナオブジェクトTransform パラメータからクリップを作成する場合、ジオメトリノードのトランスフォームハンドルを移動すると、ジオメトリノードの値ではなく、作成されたChannel CHOPの値が変化します。

この動作を回避するには(例えば、アーティストが意図せずにオブジェクトのハンドルを操作してChannel CHOP上の値を変更してしまわないように)、 Create Clip を選択した時に表示されるダイアログボックスの Lock Clip をオンにします。

Create Clipダイアログボックス

Clip Name

作成するChannel CHOPの名前。新しいチャンネルを既存Channel CHOPに追加するには、そのChannel CHOPの名前を入力して、 Create New CHOP Node をオフにします。

Location

どのCHOPネットワークにChannel CHOPを作成するのか( Create New CHOP Node がオフの場合は、Channel CHOPが既に存在するCHOPネットワーク)を指定します。デフォルトは、他のモーションエフェクトコマンドで作成される/obj/motionfxCHOPネットワークです。

Channels

Channel CHOPに追加するチャンネル。デフォルト値はクリックしたパラメータと同じですが、チャンネルのリストを自由に編集・展開することができます。

Channel Range

チャンネルのアニメーションをコピーするフレームの範囲。

Create New CHOP Node

このオプションがオフで Clip Name に付けた名前のChannelノードが存在すれば、Houdiniはチャンネルを既存のノードに追加します。逆にオンの場合は、Houdiniは常にCHOPネットワーク内に新しいChannelノードを作成します。

Apply Immediately

ChannelノードのExportフラグが有効になっていれば、パラメータは直ぐにCHOPネットワークで上書きされます。もし、このオプションをオフにすれば、パラメータを上書きするためには、手動でCHOPネットワークのノードのExportフラグをオンにしなければなりません。

Remove Original Animation

パラメータのチャンネルアニメーションをChannel CHOPにコピーした後に、そのパラメータのアニメーションを削除します。

Lock Clip

コピーした値が入っているChannel CHOPのパラメータをロックします。これはHoudiniが元のノードのハンドルを変更しても、それに対応するChannel CHOPのパラメータに伝搬しないようにすることができます。

サンプル

  1. シェルフのSphereツールで球を作成して、アニメーションを付けます。いくつか急なな戻りと方向の反転をアニメーションに加えます。

    例えば、球を移動→Kキーでキーフレームを設定→フレーム24に移動→球を新しい位置に移動→キーフレームを設定→フレーム48に移動→球を移動→キーフレームを設定→フレーム72に移動→球を移動→キーフレームを設定。

  2. 球オブジェクトを選択します。パラメータエディタで Translate パラメータをクリックします。

    パラメータの ラベルクリックします。もしX、Y、Zのテキストボックスのどれかをクリックすると、コンテキストメニューは、すべてのコンポーネントではなく、そのコンポーネントのみが適用されます。

  3. Motion Effects サブメニューから Spring を選択します。

  4. Spring CHOPノードのフローティングパラメータエディタで、 Spring Constant の値を下げます。これはエフェクトの“Springiness”を誇張します。

  5. アニメーションを巻き戻して再生します。球の元々のアニメーションの動きにスプリングの効果が追加されているのがわかります。アニメーションの方向を変更すれば、オーバーシュートや振動が起こります。

  6. フローティングパラメータエディタを閉じます。 Translate ラベルをクリックして、 Motion Effects ▸ Cycle を選択します。

  7. 再度アニメーションを巻き戻して再生します。アニメーションが、前に設定した最後のキーフレームからオフセットしながら繰り返します。このエフェクトは繰り返し処理を設定するのに非常に役に立ちます。

次のステップ

CHOP(チャンネルオペレータ)ノードはキーフレームしたパラメータを掴んで、ネットワークのノードを使ってプロシージャルに操作し、変更した値で元のパラメータを上書きすることができます。Motion Effectsメニューでは簡単且つ強力なCHOPネットワークを自動的にセットアップすることができますが、CHOPネットワークをもっと深く設定したい場合もあります。CHOPノードは数学や時間、オーディオ、周波数操作までのたくさんの機能のために存在しているので、高度なユーザが単純なキーフレームアニメーションに対して非常に高度なエフェクトを実装することができるようになっています。

利用可能なCHOPノードのリストを参照してください。

上級: エフェクトメニューの編集

$HFS/houdini/MotionEffectsMenu.xmlファイルには Motion Effects サブメニュー(パラメータのコンテキストメニュー)の内容を定義しています。これはXMLファイルで、XMLはメニューの構造を定義していて、組み込んだPythonスクリプトが各メニューアイテムの動作を定義しています。

Houdiniのメニュー設定ファイルの動作に関する詳細は、メインメニューのカスタマイズの方法を参照してください。<mainMenu>の代わりに、 Motion Effects サブメニュー設定ファイルはルートエレメントとして<menuDocument>を使います。

基本構造:

<?xml version="1.0" encoding="UTF-8" ?>
<menuDocument>
    <menu>
        <subMenu id="motion_effects_menu">
            <label>Motion Effects</label>

            <actionItem id="action_id">
                <label>Menu item label</label>
            </actionItem>

            <scriptItem id="item_id">
                <label>Menu item label</label>
                <scriptCode>
                    <![CDATA[

                    メニューアイテムが選択された時に実行されるPythonスクリプト

                    ]]>
                </scriptCode>
            </scriptItem>

            <separatorItem />

            ...
        </subMenu>
    </menu>
</menuDocument>
  • actionItemノードはビルトインのHoudiniの機能を参照します。

  • scriptItemノードのscriptCodeエレメントに記述したスクリプトは自動的にhouモジュールをインポートします。また以下のキーが含まれたkwargsという名前が事前に辞書として持っています:

    parms (list)

    ユーザがクリックしたパラメータを意味するhou.Parmオブジェクトのリスト。

    toolname (str)

    メニューアイテムのホットキーID(エレメントのIDの頭にはh.pane.parms.が付きます)。

    altclick, ctrlclick, shiftclick, cmdclick (boolean)

    メニューアイテムを選択中に、ユーザが指定したキーを保持していればTrueになります。これを使って修飾キーに基づいて、別の“パワーユーザ”の挙動を設定することができます。cmdclickはMac OS Xにのみ可能であることに注意してください。

  • idアトリビュートの値はh.pane.parmsで始まるHoudiniのホットキーアクションに相当します。actionItemノードでは、これはメニューアイテムを選択した時に実行されるアクションを定義しているものです。scriptItemノードでは、これはホットキーをメニューアイテムに割り当てることができます。

    例えば、ID revert_to_prev_valを持つアイテムは、Hotkey Managerh.pane.parms.revert_to_prev_valアクションを参照します。

See also

ネットワークとパラメータ

ネットワーク

パラメータの編集

次のステップ

エクスプレッション

導師レベル

リファレンス