Houdini 20.0 Solaris Karmaユーザガイド

Karmaユーザガイド モーションブラー

On this page

概要

Karmaのモーションブラーには、USDステージで作成されたタイムサンプルが必要です。 レンダーブラーの品質はレンダリング設定の影響を受けます。

Karmaは、デフォルトでモーションブラーをレンダリングします。 デフォルト設定で、適切なトランスフォームブラーと変形ブラーが得られます。Karmaでモーションブラーがおかしいあるいは生成されない場合、原因はたいていUSDのデータ不足です。

USDタイムサンプル

デフォルトでは、Houdiniは現在のフレームのみをインタラクティブにクックします。通常はこれで問題ありません。 Solarisでは、アニメーションを付けるノードがUSDタイムサンプルを作成しますが、これは現在のフレームにのみ作成されます。 しかし、モーションブラーをレンダリングするには、1個のタイムサンプルでは不十分です。 USDは、作成されたタイムサンプル間では線形補間しか対応していないので、急速に変化するモーションをレンダリングする場合は、多数のサブフレームサンプルが必要になります。

Note

Houdini20.0以降、Karmaは内部的には回転をクォータニオンとして表現しています。 つまり、ある程度十分なモーションブラーを得るのには、USDでそれほど多くのサンプルを作成する必要が 必ずしもありません

モーションブラーの品質を向上させるには、次のノードを使用して、タイムサブサンプルを追加および管理します。

Motion Blur LOP

十分なタイムサンプルを作成する最も簡単な方法。 このノードをKarma Render Settingsの後に追加すると、そのレンダー設定で設定されたカメラを使用して、シャッターフレーム全体をブラーするのに十分なタイムサンプルが自動的にキャッシュ化されます。

Cache LOP

現在のフレーム周辺で、または、タイムライン全体で、タイムサンプルをキャッシュするのに便利です。 このノードは、サブフレームサンプリングの管理も制御できます。

File Cache LOP

中に埋め込まれているUSD ROPを使用して、インラインかつファイルベースでUSDファイルをディスクにキャッシュ化します。

Resample Transforms LOP

理想は十分なサンプルを持つPrimをエクスポートすることですが、それができない場合には、このノードを使用して、USDの既存のアニメーショントランスフォームに基づいてサブフレームサンプルを作成します。 このようにすると、プロペラなどの回転するオブジェクトにスムーズな回転ブラーを生成することができます。

ボリュームはUSDに直接格納されないため、時間とともにボリュームを変化させるには、タイムサンプル毎に異なるボリュームアセットパスをアニメーションさせなければなりません。 タイムサンプル毎に個別のボリュームファイルが必要です。

モーションブラーの基本

ジオメトリPrimに2個以上のタイムサンプルが存在する場合、Karmaはトランスフォームまたはジオメトリのモーションブラーをレンダリングします。 Karmaレンダー設定の Motion Samples from Stage はデフォルトで有効になっているため、トランスフォームおよびジオメトリのモーションブラーにはシャッターフレーム全体ですべてのタイムサンプルが使用されます。 つまり、USDに十分なタイムサンプルがあれば、通常はTransformおよびGeometry Time Samplesを調整しなくても、よりスムーズなモーションブラーを得ることができます。

Houdini20.0以降、Karmaは内部的にはトランスフォームをクォータニオンとして表現しています。 これによって、KarmaはアーティストがUSDでさほど多くのタイムサンプルを作成する必要なく、回転を滑らかに補間できるようになりました。

Render Geometry Settings LOPを使用すると、Karmaのモーションブラー設定をプリミティブ毎に設定することができます。 これにより、画像全体のレンダリングを低速にすることなく、計算処理の重いモーションブラー設定が必要なシーン内のオブジェクトをターゲットにすることができます。

Note

ジオメトリおよびトランスフォームサンプルを手動で設定するには、Render Settings Editノードを追加して Motion Samples from Stage を無効にします。

トランスフォームブラー

Transform Time Samples: 2
Transform Time Samples: 3
Transform Time Samples: 12

プリミティブおよびカメラのアニメーションされたリジッドトランスフォームは、モーションブラーを生成します。 デフォルトでは、Karmaはモーションを補間するのに2個以上のサンプルを必要とします。 サンプル数を増やすと、非常に高速なモーションでも適切なブラーが得られます。

USDおよびHydraは、タイムサンプル間では線形補間しか対応していません。 ほとんどの場合これで問題ありませんが、高速回転するプリミティブを正確にブラーするには、多数のサブフレームタイムサンプルが必要になる可能性があります。 理想は十分なサンプルを持つPrimをエクスポートすることですが、それができない場合には、Resample Transforms LOPを使用します。 USDの既存のトランスフォームアニメーションを使用してサブフレームサンプルを作成することで、プロペラなどの回転するオブジェクトがスムーズに回転するようになります。

ジオメトリ/変形ブラー

Geometry Time Samples: 2
Geometry Time Samples: 4
Geometry Time Samples: 20

Primのpointsアトリビュートを時間の経過とともに変形することで、ジオメトリブラーを生成します。 ジオメトリブラーにはトランスフォーメーションブラーが乗算されます。 ジオメトリブラーを機能させるには、USDで複数のタイムサンプルが必要であり、ポイント数はサンプル間で変更できません。

Note

USDでは、pointsは単精度のアトリビュートです。(xformOpsなどの)トランスフォームは倍精度です。

Velocity/加速度ブラー

Velocityブラー/加速度ブラー、2個のジオメトリサンプル
加速度ブラー、3個のジオメトリサンプル
加速度ブラー、7個のジオメトリサンプル

時間とともに変化するパーティクルやメッシュトポロジの場合、Velocityアトリビュートを追加すると、ブラーを直接生成することができます。 velocitiesアトリビュートが使用可能な場合、Karmaは単にポイントをそのアトリビュートの方へブラーします。

Karmaは、より自然に見える加速度ブラーにも対応しています。 Karmaは、ポイントをvelocitiesベクトルに沿って線形にブラーするのではなく、accelerationsを使用して円弧沿いにブラーします。 Karmaは、ジオメトリタイムサンプルの数を使用して、パスを複数のセグメントに分割します。 モーションブラーを非線形にするには、3個以上のサンプルが必要です。 サンプルが2個の場合、Velocityブラーと同じ結果になります。

Note

加速度ブラーではジオメトリタイムサンプルが必要なため、 Motion Samples from Stage は無視されます。

ポイントインスタンス

Velocity/加速度ブラー、2個のインスタンスサンプル
Instance Motion Samples: 3
Instance Motion Samples: 8

Instance Velocity Blurは、ポイント上にインスタンス化されたジオメトリのモーションブラーを制御します。 これは、Velocityブラーの動作とよく似ています。 Karmaは、インスタンス化されたポイント毎にvelocitiesaccelerationsを使用して、Velocityブラーと加速度ブラーを生成します。 ただし、インスタンス化されたモーションブラーには独自のサンプル制御である Instance Motion Samples があります。

Karmaユーザガイド

リファレンス