Utility ノード 4

雲のアニメーション

テクスチャーのアトリビュートをエクスプレッションによってアニメーションさせてみましょう。 ここでは、例として fractal を使用した雲をアニメーションさせてみます。

fractal テクスチャーは不規則な数値を発生させるために使い、 実際の色や透明度は ramp テクスチャーによって決定します。
そして、色と透明度のテクスチャーを配置している place2dTexture の offsetU と offsetV をエクスプレッションでアニメーションさせます。

  1. 適当にシーンを作成します。
    下から plane を照らすように Directional Light などを配置しておきます。
    また、一番上の plane には青色のマテリアルをアサインしておきます。
    サンプルシーン
  2. fractal ノードを作成します。
    名前を colorFractal に変更しておきます。
  3. ramp ノードを作成します。
    名前を colorRamp に変更しておきます。
  4. colorFractal の outColorR を colorRamp の vCoord にコネクトします。
  5. fractal ノードを作成します。
    名前を transFractal に変更しておきます。
  6. ramp ノードを作成します。
    名前を transRamp に変更しておきます。
  7. transFractal の outColorR を transRamp の vCoord にコネクトします。
  8. lambert マテリアルを作成します。
  9. colorRamp の outColor を lambert マテリアルの color にコネクトします。
  10. transRamp の outColor を lambert マテリアルの transparency にコネクトします。
    Hypershade
  11. colorFractal と transFractal のアトリビュートを適当に変更します。
    colorFractal のアトリビュート
    transFractal のアトリビュート
  12. colorRamp と transRamp を適当に変更します。
    colorRamp のアトリビュート
    transRamp のアトリビュート
  13. lambert マテリアルを真ん中の plane にアサインし、 カメラを移動してレンダリングしてみます。
    レンダリング結果
    レンダリング結果
  14. colorFractal にコネクトされている place2dTexture の offsetU と offsetV に エクスプレッションを定義します。
    offsetU = 0.006 * time + 0.006;
    offsetV = 0.006 * time + 0.003;
    適度なスピードでアニメーションさせるために time を 0.006 倍しています。 もし、スピードを変える場合は time に乗算している 0.006 をすべて違う数値に変えます。 また、0.006 と 0.003 を加算して色に変化をつけています。
  15. colorFractal の animated にチェックを入れ、 Time にエクスプレッションを定義します。
    colorFractal.time = 0.006 * time;
    colorFractal のアトリビュート
  16. transFractal にコネクトされている place2dTexture の offsetU と offsetV に エクスプレッションを定義します。
    offsetU = 0.006 * time;
    offsetV = 0.006 * time;
  17. transFractal の animated にチェックを入れ、 Time にエクスプレッションを定義します。
    colorFractal.time = 0.006 * time;
    transFractal のアトリビュート
  18. ここまででシェーディングネットワークは以下のようになります。
    Ramp ノード
  19. アニメーションをレンダリングします。
    Ramp ノード

参考


Index | Home
Mail