雲のアニメーション

雲をアニメーションさせる

フラクタル テクスチャーを使用した雲のアニメーションを作成してみましょう。
テクスチャーのアトリビュートを、 エクスプレッションによってアニメーションさせることによって作成します。

フラクタル テクスチャーは不規則な数値を発生させるために使い、 実際の色や透明度は ランプ テクスチャーによって決定します。
そして、色と透明度のテクスチャーを配置している place2dTexture の オフセットU と オフセットV をエクスプレッションでアニメーションさせて、 雲を移動させます。

雲のアニメーションの作り方

  1. 空のマテリアルをアサインするための NURBS プレーン と、 雲のテクスチャーをアサインするための NURBS プレーン を作成します。
    下から プレーン を照らすように ディレクショナルライト などを配置しておきます。
    また、一番上の プレーン には青色のマテリアルをアサインしておきます。
    サンプルシーン
  2. フラクタル ノードを作成します。
    名前を colorFractal に変更しておきます。
  3. ランプ ノードを作成します。
    名前を colorRamp に変更しておきます。
  4. colorFractal の outColorR を colorRamp の vCoord にコネクトします。
  5. フラクタル ノードを作成します。
    名前を transFractal に変更しておきます。
  6. ランプ ノードを作成します。
    名前を transRamp に変更しておきます。
  7. transFractal の outColorR を transRamp の vCoord にコネクトします。
  8. ランバート マテリアルを作成します。
  9. colorRamp の outColor を ランバート マテリアルの color にコネクトします。
  10. transRamp の outColor を ランバート マテリアルの transparency にコネクトします。
    Hypershade
  11. colorFractal と transFractal のアトリビュートを適当に変更します。
    colorFractal のアトリビュート
    transFractal のアトリビュート
  12. colorRamp と transRamp を適当に変更します。
    colorRamp のアトリビュート
    transRamp のアトリビュート
  13. ランバート マテリアルを真ん中の プレーン にアサインし、 カメラを移動してレンダリングしてみます。
    レンダリング結果
    レンダリング結果
  14. colorFractal にコネクトされている place2dTexture の オフセットU と オフセットV に エクスプレッションを定義します。
    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 にチェックを入れ、 時間 にエクスプレッションを定義します。
    colorFractal.time = 0.006 * time;
    colorFractal のアトリビュート
  16. transFractal にコネクトされている place2dTexture の オフセットU と オフセットV に エクスプレッションを定義します。
    offsetU = 0.006 * time;
    offsetV = 0.006 * time;
  17. transFractal の animated にチェックを入れ、 時間 にエクスプレッションを定義します。
    transFractal.time = 0.006 * time;
    transFractal のアトリビュート
  18. ここまででシェーディングネットワークは以下のようになります。
    Ramp ノード
  19. アニメーションをレンダリングします。
    Ramp ノード

参考

練習課題


Prev | Next
Index | Home
Mail