20/3/2023

Blenderで水面をループさせる

少ないフレーム数でループする水面アニメの作り方。フレーム1ではなくフレーム0にキーフレームを打つのがスムースにループさせるコツです。

なるべく簡単に、少ないフレーム数でループする水面のアニメーションの作り方です。

このような場合に使えます。↓

上の例では僅か15コマでループさせています。

  1. アニメーションの終了フレームを初期設定の250から24に変更します
    Blenderの初期設定は24fps(1秒間24フレーム)なので、今回は24コマでループさせてみます。
  2. フレーム0に移動します
  3. 立方体のモディファイアータブから
  4. モディファイアーを追加します

『海洋』モディファイアーを追加します。

初期設定ではこのようになります。

値を自由に調整します。
今回の例では「ビューポートの解像度」を15
「レンダー」を倍の30
「スケール」を0.200
「スペクトル」→「スペクトル」を「浅水域」に設定しています。

ちなみに冒頭に載せた部屋のアニメーションの例では「スケール」は0.100です。

「時間」と「スケール」の◆ボタンを押してアニメーションのキーフレームを設定します。
フレーム1ではなくフレーム0にキーフレームを打つのがスムースにループさせるコツです。

  1. フレーム24に移動します
  2. 「時間」を2.00に変更してキーフレームを打ちます
  3. 「スケール」を0.000に変更してキーフレームを打ちます
  4. グラフエディタでポイントを全て選択します

「補間モード」を「リニア」に変更します。
これは初期設定では減速・加速するイージングを無くして均一にするためです。
この工程は最後にまとめてやってもかまいません。

このような直線的なグラフになればOKです。

  1. 『海洋』モディファイアーを選択し、Shift+Dで複製します。
  2. 複製した2番めの『海洋』モディファイアーの「ジオメトリ」を「ディスプレイス」に変更します。

フレーム0に移動します。
「時間」と「スケール」の値をそれぞれ0.0にしてキーフレームを更新します。

  1. フレーム24に移動します
  2. 「時間」を1.00に変更してキーフレームを打ちます
  3. 「スケール」を0.200に変更してキーフレームを打ちます
  4. グラフエディタでポイントを全て選択します

「補間モード」を「リニア」に変更します。

これで水面のゆらぎをループさせる設定が出来ました。
アニメーションさせて確認してみましょう。

水面ループのワイヤーフレーム・アニメーション

要は「時間」と「スケール」という2つの設定次第でループさせることが可能です。

グラフエディタ画面

つまり「スケール」の値が『海洋』モディファイアー1と2でそれぞれクロスするように、そして「時間」は同じ周期で増えていくようグラフ直線の角度が同じになるように設定します。

2番めの『海洋』モディファイアーの「ジオメトリ」を「ディスプレイス」にするのも忘れないでください。
そうすることで2つのモディファイアーの「スケール」を逆相のような状態になります。

『海洋』モディファイアー1「生成」
フレーム024
時間1.002.00
スケール0.2000.000
『海洋』モディファイアー2「ディスプレイス」
フレーム024
時間0.001.00
スケール0.0000.200

海の大きな波をループさせる場合はフレーム数を増やす必要がありますが、考え方は同じです。

フレーム数を240に増やし、一周10秒でループさせてみます。
『海洋』モディファイアーのスペクトルは両方「荒れた海洋」にします。

『海洋』モディファイアー1「生成」
フレーム0240
時間10.0020.00
スケール2.0000.000
『海洋』モディファイアー2「ディスプレイス」
フレーム0240
時間0.0010.00
スケール0.0002.000

これで様々な異なるサイズと時間の水面や波をループさせることができます。