2021-12-04

【Blender】クッションのシワをアニメーションで作る【BlueFox extension】

無料プラグインでモデリングではなくアニメーション用のシワを作る。

Article Image

クッションのシワをAnimation Nodeで作る

今回は次の作例

クッションのシワをAnimation Nodeで生成、つまり動画として使える素材として作る。

中級者向けなので、基本すぎるところは説明しない。

今回使うプラグイン

次のプラグインのインストールが必須

Animation Nodes

こちらはノードでアニメーションをコントロールする拡張。

Animation Nodes

マスターするのは非常に難解なので私は殆どわからないが突き詰めたらすごいことになるはず。

AN BlueFox extension

今回のメインプラグイン。

harisreedhar/an_bluefox_extension: Additional nodes for animation nodes

インストール用のファイルはReleasesから。インストールについては解説しない。

picture 1

こちらが本当に素晴らしい。

今回使うメッシュの縮んでいる箇所の検出用ノードのみならず他にも色々入っているので研究してみると面白いと思う。

この記事の目的

今回の目的だが、実はこのシワのアニメを作る時「tension map add-on」というプラグインが有名でよく検索にヒットするのだが、残念ながら私のBlender(2.93.4)では動かないという状態。

コメントでも同様の報告がされているので、恐らくバージョンアップされるまで動かないと思われる。

ともかく、そういった理由で代替案を探した所BlueFox extensionに到達。

こちらが非常に良くできたプラグインな上にGit Hub管理のためバージョンアップが期待できそうだ。

今回はそういった経緯から紹介させていただこうと思った次第。

尚、tension map add-onに関しては次のリンクで公開がされている。

Revised mesh tension add-on - Coding / Released Scripts and Themes - Blender Artists Community

モデルとアニメを用意

まずはモデルとアニメを用意した。モデリングやリギングは解説しない。

アニメーションはモディファイアを通して行った変形が検出されるようなので、今回はアーマチュアを使った形状変形にソフトボディをプラスして面白い動きにしている。

picture 2

Animation Nodes

まずはウィンドウを分割して左上のエディタータイプを選択するボタンからAnimation Nodesにしておく

picture 3

中央のNewをクリックして新規作成

picture 4

あとは通常のマテリアルノードと同じようにshift + Aキーからノードを追加。次のように追加する。

picture 5

軽く解説

Mesh Object Inputを2つ用意。

picture 6

これが変形元となるメッシュデータを引っ張ってくるノード。

上のノード、下のノードともにどのメッシュが変形されるのかを指定しておく。

下のノードにだけUse Modifiersをチェック

これはつまり元となる未変形のメッシュと、モディファイアーによって変形されたメッシュを比較するということだ。

picture 16

Set Vertex ColorのタブをVertexへ変更

残りは解説しないでも分かると思うが、こちらのFind Mesh TensionというのがBlueFox extensionのノード。

picture 7

画像四角でかこったStrength, Biasでシワの量を調節する。

こちらはすべての設定が終わってからのほうがわかりやすいので後述。

頂点カラーを設定しておく

picture 8

クッションのメッシュに頂点カラーを追加しておく。とりあえず追加されていればOK。特に操作はいらない。

ここまでで変形すると色が変わる

さて、ここまでの作業だけでモディファイアをつかってオリジナルのメッシュを変形させると圧力がかかっている場所が赤くなり、伸びている場所が緑になる。

picture 9

全く変形していないときは真っ黒に。

picture 15

仕組みとしては、この赤くなっているところにマテリアルノードでシワの模様を重ねるだけのシンプルなものだが、これが絶大な表現力となる。

シワのテクスチャ(マテリアル)を作る

次のようにノードを組む。

横に引き伸ばしたノイズを使ってシワを表現している。

picture 10

赤くなった場所にテンションがかかっているということなのでSeparate RGBRを使っていることがわかる。

今回は使っていないが逆に伸びているグリーンの値を使って更に面白いことができそうだ。

ノイズだけをプレビューすると、私の作例では次のようになる。

picture 11

このノイズをノーマルに繋ぐことでシワになるわけである。

シワの量を調整

後は上で解説している各ノードのパラメータをいじってシワを調整しよう。

picture 13

あまりに動きが重いときはAnimation NodesAlwaysを外すといいかも。

picture 14

その他追加項目

基本的には以上で完成で、あとは自由にモディファイアにキーフレームをつけていけば良い。

私の場合はマテリアルでクッションっぽいテクスチャを追加し、キーフレームでリグによるアニメーションを行った。

このときのTipsとして、アニメーションの補完をBackにするとバネっぽい動きが入り、簡単にディズニーアニメのようになる。

※ただしこれだけ多用してると不自然なアニメになる。

picture 12

これだけだと曲がってから戻った時にカクっとした動きとなるため更にソフトボディの物理演算を入れた。

こちらもモディファイア扱いなので問題なくシワのアニメと混同できる。

ソフトボディに関してはゼリーのようなぷるんとしたイメージをつける事ができるが、クッションに入れると中に人が入っている着ぐるみっぽさが出せる。

※ただし、調整を詰めてないのでよく見ると動きがちょっとゼリーっぽくて不自然ではある。

本家解説

長くなったがこの記事はかなり簡略化して書いている。

もっと詳しく見たい場合は英語解説ではあるが本家を参照するのが早い。

Animation nodes Find Mesh Tension node [BLENDER 2.90+] - YouTube

さいごに

非常に良いプラグインが無償公開されていたので紹介させていただいた。

これは使わない手はないと思う。

Animation Nodes, BlueFox extensionの両作者様にはこの場を借りて感謝。



謎の技術研究部 (謎技研)