本記事ではBlenderでスカートのリギングを行っていく方法をご紹介していきたいと思います。
スカートのリギングを入れる方法は多くあります。本記事でご紹介する方法は、IKとクロスシミュレーションを利用したものとなっています。
本記事の結果
今日のBlender進捗。
— 智G (@tomohikog12) 2020年10月21日
スカートのリギングを入れました。
クロスシミュレーション+IKの方法でやっています。
体の方にコリジョン入れたら当たり前ですが、重たくなるし胸の揺れ方もおかしくなるから、非表示にしてコリジョン用のオブジェクトを複製。
ちょっと当たり判定甘目だけど、原形はできた。 pic.twitter.com/8bNcWB9Jks
本記事の実行結果は上記のツイートのようなものになっています。
前提知識
必須の前提知識として、Blenderのリギングの基礎知識となります。本記事では基本知識は基本的に割愛するため、分からなくなった場合は下記のカテゴリーの記事をご覧ください。
Blender-基本操作-リギング カテゴリーの記事一覧 - TomoGのごちゃまぜ倉庫
また本記事ではクロスシミュレーションを利用するため、初めてクロスシミュレーションを利用するという方は下記の記事を参考に旗を作ってみてから本記事を試してみてください。
概要
まず始めにスカートのリギングにIKとクロスシミュレーションをどのようにして利用するのか、その概要についてご紹介していきます。方法だけ知りたい方は読み飛ばして頂いても問題ありませんが、応用するときには重要になります。
まずどのようにスカートを動かしているのかというと上図のような流れとなっています。
上図の左から順に説明すると、まずクロスシミュレーションを適用したクロスシミュレーション用のオブジェクトでスカートの動きを再現させます。
次に再現されたスカートの動きを上図の真ん中に当たるアーマチュアに伝えます。簡単に言えばメッシュに合わせてアーマチュアを変形させていきます。
最後に変形させたアーマチュアをIKを動かしたときのようにスカートオブジェクトに適用することで、スカートオブジェクトにスカートの動きを再現させています。
ここで重要なのは、クロスシミュレーション用に簡単なオブジェクトを用意しているため、比較的処理が軽量になる、かつ複雑なスカートにも適用しやすいというメリットがあります。
スカートのリギングを入れる方法
前章ではBlenderでスカートのリギングを行う方法の概要についてご紹介しました。本章からはそんな概要で説明したことをどのように実行させていくのかについてご紹介していきたいと思います。
クロスシミュレーション用のオブジェクトを用意
まず始めにクロスシミュレーション用のオブジェクトを用意する必要があります。本記事では上図のように用意しましたが、いくつかの注意点が存在するための、その注意点について次項からご紹介します。
注意点:メッシュの位置
メッシュの位置について注意点がいくつか存在します。本記事ではスカートの内側にメッシュを配置しましたが、これはこのメッシュの位置が当たり判定の位置になるためです。
そのため、スカートは通常脚に当たって動くため、基本的にはスカートの内側に沿ってメッシュを配置するのがいいと思います。
反対に脚以外の場所から触ることが多い場合、スカートを覆うようにメッシュを配置するといいと思います。
内外どちらからも対応させたいという場合は、スカートの中に入れるようにメッシュを配置すれば問題ないと思いますが、スカートが厚ければ厚いほど問題が顕著になってきます。
その場合は脚やスカートを触る物体に追加するコリジョンを大きくすることで対応してください。
注意点:頂点の位置・数
次にクロスシミュレーション用の頂点の位置・数についてですが、頂点の位置にボーンが配置されるということを意識してください。
そのため、前後左右またボーンを縦にどれだけ分割するかによって頂点の位置、数が大きく変わってくることになります。
こちらの注意点は後述するアーマチュアの設定の時に調整できる項目なので、その時に調整頂点の位置や数を意識しておいてください。
クロスシミュレーション設定
前節でクロスシミュレーション用のオブジェクトを作成したと思います。次にこのオブジェクトにクロスシミュレーションを設定していきたいと思います。
クロスシミュレーションの設定はどのようなスカートを作るのかによって異なるため、詳細な値は自分の作るスカートに合わせて調節を行ってください。
重要なポイントとして、上図のようにクロスシミュレーションのシェイプの固定グループを必ず設定しておいてください。
これを設定しておかないと、クロスシミュレーション用のオブジェクトだけが下に落ちていき、スカートの揺れを再現できなくなるため、必ず設定をしておいてください。
アーマチュアを作成
次にアーマチュアを作成していきたいと思います。
この時、前節までで作成してきたクロスシミュレーション用のオブジェクトの頂点の位置が非常に重要になってくるため、上図のようにオブジェクトをワイヤーフレーム表示にしておくと操作がしやすくなります。
アーマチュアですが、上図のように作成してください。頂点の位置にボーンのテールと先端が来るように位置を調整します。
本記事では上図のように上下に4つに分割しているため、それに合わせてクロスシミュレーション用のオブジェクトも大きく4つに分割しています。(上の2分割は固定用)
本記事では分かりやすくするため、一方向にしか行っていませんが、スカートをしっかり動かそうと思った場合、上図のように前後左右その中間に計8つのボーンを用意する必要があります。
クロスシミュレーション用のオブジェクトの頂点グループ作成
次に前節に作成したボーンに対応した頂点グループをクロスシミュレーション用のオブジェクトに作成していきます。
上図のようにボーンの先端にある頂点だけの頂点グループを作成してください。
頂点グループの名前は適当で問題ありませんが、ボーン名と同じにしておくと次節で分かりやすくなるため便利です。
このボーンの先端にある頂点だけ頂点グループをボーンの数だけ作成してください。例えば上図のようにボーンが4つある場合は、頂点グループが4つできることになります。
個人的に便利なやり方
ボーンの数だけ頂点グループを作成する方法ですが、非常に面倒な作業となっています。そのため、筆者が個人的にやった便利な方法を簡単にご紹介します。
まずは、クロスシミュレーション用のオブジェクトにアーマチュアモディファイヤーを追加し、アーマチュアを設定、そして自動ウェイト割り当てを行ってください。
すると、全ボーンの名前が付いた頂点グループが出来上がるため、その頂点グループのウェイトを一旦全て削除してください。
後は各頂点グループ名に沿って頂点を割り当ててください。この方法を使うことで頂点グループを作っては名前を決めるという作業を短縮することができます。
IKを設定
次に前節で作成した頂点グループとアーマチュアをIKで紐づけを行っていきます。
アーマチュアを選択しポーズモードに変更した後、ボーンんを選択してボーンコンストレイト画面に行ってください。
そこでIKを追加すると、そのボーンに対応した頂点グループを選択してください。
上図の例ですと、SkirtFront1というボーンに対応した頂点グループはSkirtCollision.001の中にあるSkirt_Front1なのでそのように選択しています。
これをアーマチュアに存在する全てのボーンに行ってください。非常に面倒ですが、下記の記事でご紹介しているCopy Attributes Menuを使えばいくらか楽になります。
Blenderの操作に関する便利な無料アドオンまとめ - TomoGのごちゃまぜ倉庫
このあたりでクロスシミュレーション用オブジェクトが正常に動作するか確認しておいてください。
適当なオブジェクトにコリジョンを追加して、アニメーション実行中にクロスシミュレーション用オブジェクトに当ててみてください。
クロスシミュレーション用オブジェクトがなびく、かつそれに合わせてボーンも動いているようでしたら成功となります。成功の場合はクロスシミュレーション用のオブジェクトは非表示にしていても問題ありません。
もしできていないという場合は、本節までの作業工程をもう一度見直すか、最終章にある【よくあるミス】をご覧ください。
スカートオブジェクトにウェイト設定
最後に上図のように作成したアーマチュアをスカートオブジェクトに適用させていってください。
これは通常のリギングと同様に、アーマチュアモディファイヤーを適用しボーン名と同じ名前と頂点グループを作成し、ウェイト設定を行ってください。
本記事で使用した結果のサンプルは自動ウェイト割り当てにて行った後、少し調整を行いました。
よくあるミス・解決法
最後に本章では筆者がスカートのリギングを行っていて起こったことがあるミスとそれに対する解決法についてご紹介していきたいと思います。
一部のボーンが動かない・固定される
一部のボーンが動かないということが偶にあります。これはほぼIKの設定忘れか頂点グループのミスとなります。
そのため、動かないボーンに設定したIKは正常に設定されているか、対応する頂点グループのウェイトはしっかり設定されているかを確認してください。
スカートが動いた後止まる
スカートが動いた後止まるという場合、基本的にはクロスシミュレーション用のオブジェクトがあらぬところに行っている可能性が高いです。
クロスシミュレーション用のオブジェクトを表示させてどこにあるか確認し、おかしければ修正を行ってください。
基本的にはスカート用のアーマチュアの親に設定したボーンに対してクロスシミュレーション用オブジェクトをペアレント設定させると正常に動くと思います。
スカートの挙動がおかしい全般
スカートの挙動がおかしいということ全般の解決法として、クロスシミュレーション用オブジェクトに設定されたクロスシミュレーションの値がおかしいことになると思います。
この場合はクロスシミュレーションのプリセットを利用するなどして、値を調整して修正を行ってください。
本記事の内容は以上となります。
スカートのIKとクロスシミュレーションを利用したリギングは非常に複雑なように見えて、やっていることは非常に簡単なのでやり方さえわかれば簡単に利用・応用もできるようになると思います。
本記事は以上です。お疲れさまでした。