Blender Animation nodes spline を草っぽく曲げる

Blender

はじめに

spline は曲線である。それを草っぽく曲げるメモ

参考

直線を作る

  1. Spline の作成元となるポイントを作成する
    1. Distribute Matrices を配置
      • Size を Stepに変更
      • XとY Division は1
      • Z は20程度入れておく
  2. Distribute Matricesで作ったポイントからSpline を作る
    • Spline from pointsを配置
      • Radius は1程度にしておく
  3. 結果確認の為、オブジェクトとして出力する
    • Curve Object Outputを配置
      • ボタンを押して Target オブジェクトを作成
    • Bevel depth を有効にして 0.21 程度にしておく

この直線を色々いじっていく

方法1: Vector Wiggle で曲げる

  1. 最初の直線からX方向にずらす
    • Vector Mathを配置
      • Add にして X を10とする
  2. ポイントをランダムにずらす
    • Vector Wiggle を配置
      • Create List を有効にする
      • Evolution はずれの形状を変える。ここでは-36.6としている
      • XY はXY方向へずれる最大幅。ここでは1.55としている
      • Z はZ位置がずれるため、ずれないように 0 にする
  3. Vector Math と Vector Wiggle の結果を足し合わせる
    • Vector Math を配置しAddにする
  4. ポイントからSpline を作る
    • Spline from pointsを配置
      • Radius は1程度にしておく
  5. 線をスムーズにする
  6. Smooth Bezier Spline を配置
  7. 最初の直線と今回作った曲線両方作る
  8. Create Spline List を配置
    • 最初に作った直線と、今回作った曲線を接続する
  9. Curve Object Output へ接続して出力する

問題点 それぞれのポイントでそれぞれランダムな方向に動いている為、草っぽく見えない。

方法2: Vector Noise で曲げる

  1. 最初の直線からX方向にずらす
    • Vector Mathを配置
      • Add にして X を20とする
  2. ランダムに曲げる
    • Vector Noise を配置
      • Amplitude が曲げ具合となる。ここでは2.37を設定
      • Offset の Z は数値を変えることで風になびいているような演出が可能。見るだけなら0でも問題ない
  3. Vector Noise の結果をベクトル化する
  4. Vector Math と Vector Noise の結果を足し合わせる
    • Vector Math を配置しAddにする
  5. ポイントからSpline を作る
    • Spline from pointsを配置
      • Radius は1程度にしておく
  6. 線をスムーズにする
  7. Smooth Bezier Spline を配置
  8. 前回までに作った曲線と今回両方作る
  9. Create Spline List に今回の分も接続

問題点 草の生え際である起点がずれる。

方法3: Vector Noiseの効き具合を0から徐々に強くしてゆく

  1. 最初の直線からX方向にずらす
    • Vector Mathを配置
      • Add にして X を40とする
  2. 効き具合を調整する
    • Loopを配置
      • 前に作ったVector Noiseの出力(Float List)を取るループ

ループ内

  1. 0~1の間でポイントの数の要素数の等差数列を作る
    • Float Range を配置
      • Amount にIterations(ループ数=ポイント数)を接続
  2. 等差数列から位置に応じて効き具合を取得
    • Get List Element を配置
      • Float Range と接続
      • Index は Loop Input の Indexを接続
  3. Float(ズレ具合)と効き具合をあわせる
    • Math を配置
      • Multiply (乗算) にする
      • Float と Get List Element の結果を接続
  4. 結果を出力
    • Loop Input の New Generator Output をクリックして Float List を選択
    • それをループ末尾に配置しMathの結果を接続する

  1. ループを呼び出す
    • Invoke Subprogram → My Loop を選び配置する
    • Vector Noise の結果を接続
  2. ループの結果をベクトル化する
    • Combine Vector を配置
      • Loop の結果を接続
  3. Vector Math と Loop の結果を足し合わせる
    • Vector Math を配置しAddにする
  4. ポイントからSpline を作る
    • Spline from pointsを配置
      • Radius は1程度にしておく
  5. 線をスムーズにする
  6. Smooth Bezier Spline を配置
  7. 前回までに作った曲線と今回両方作る
  8. Create Spline List に今回の分も接続

前回作ったspline とz0の位置が微妙に異なっている事がわかる。

前回作ったspline はx30の位置から微妙にずれているが、今回のsplineはずれていない。

終わり。

結果を残す為に、Vector AddのノードはCreate Spline List 等、本来不要なノードを配置し複雑化してしまった。

全体図も残しておこう。

黄色の枠は計4つで、上から直線、Vector WiggleVector Noise、Vector Noise+効き具合調節付きとなっている。

タイトルとURLをコピーしました