Blenderで基礎剛体/連結Jointの作成をアドオン無しで作成する方法

本記事では髪の毛を剛体シミュレーションを行いヘアーリギングをするときに利用する、基礎剛体/連結Jointというものを、アドオンを使わずに作っていきたいと思います。

試していないため、本当にできるかわかりませんがMMDモデルの髪等の剛体シミュレーションも同様のようになっているため、そちらでも使える可能性はあります。未確認なためご注意ください。

本記事の内容は複雑であるため、練習用としてblendファイルの無料配布を行っております。DLは下記の記事から行ってください。

始めに

まず始めに本記事をご覧になる前に注意点が2点あります。

1点目として本記事の内容はアドオンのボタンを押すだけで作成できるので、アドオン無しで作成する本記事の内容は無駄です。

もし、Blenderで基礎剛体/連結Jointをしたいだけという方は次章の参考動画の通りアドオンを入れ作成してください。

 

2点目として、本記事の内容はあらゆる機能や操作を元にしています。そのため、それらの紹介をしていると非常に長くなるため基本操作の説明は割愛させていただきます。

そのため、本記事は初心者の方向けの記事ではないためご注意ください。

なぜ本記事を執筆したか

本記事の内容は無駄だと言っているにも関わらず、なぜ本記事を執筆したのか気になる方もいると思います。

理由と致しまして、単純にアドオンがうまく作動しなかったとき手動で修正する必要があります。

その時、どのように設定がされているか知らないと修正のしようがないため、本記事ではそのように原理を知りたい方に加え、修正を行いたいという方向けの記事となるよう執筆しております。

参考動画

www.youtube.com

上記の動画でアドオンを使って、基礎剛体/連結Jointの作成を行う場面があります。

筆者も上記で紹介されているアドオンを利用したところ、正常に動作しない、そのため原理を学びました。その時の学んだ結果を記事にしたものが本記事となります。

基礎剛体/連結Jointの基本

Blenderの基礎剛体/連結Jointの完成図

まず基礎剛体/連結Jointの基本ですすが、上図のように作成します。

右の1つだけ向き等が異なるボーンはルートボーンで、ほかはすべて髪の毛としてのサンプルボーンとなります。根本(右上)から、b.000~b.003という名前になっています。

次に緑の線の箇所に剛体用オブジェクトが存在します。最後に黄色の正方形がJoint用エンプティとなっています。

この基礎剛体/連結Jointの基本的な動きですが、Jointで連結されたオブジェクトを剛体シミュレーションで動かす。そしてその動いた結果をボーンに伝達するというのが、基礎剛体/連結Jointの基本です。

こちらは実際やってみたらわかるので、次章から基礎剛体/連結Jointの作成方法についてご紹介していきます。

基礎剛体/連結Jointの作り方

本章からはBlenderで基礎剛体/連結Jointの作り方をご紹介します。先述した通り基本はすべて割愛するため、ご注意ください。

アーマチュアを用意

まずは基礎剛体/連結Jointを適用するために、アーマチュアを用意してください。

Blenderの基礎剛体/連結Joint用アーマチュアサンプル

本記事では上図のようなアーマチュアを例としてご紹介していきます。

このアーマチュアのボーンはすべてペアレントをクリア(親子関係を削除)しておいてください。

また本記事での各ボーンの名称は前章の基本でご紹介したままです。

剛体用オブジェクトを作成

次に剛体シミュレーションを行わせるオブジェクトを用意していきます。

Blenderで基礎剛体/連結Jointを作成する時の剛体用オブジェクト

上図のようにボーンを覆うくらいの大きさの立方体を各ボーン毎に設置してください。ルートボーンのオブジェクトは覆わなくても問題ありません。

この時の注意点として、各剛体用オブジェクトの原点はすべて重心に移動させておいてください。簡単な立方体なので、サーフェスでもボリュームでも結果は変わらないと思います。

名前は何でも問題ないのですが、本記事でルートの剛体は剛体Root、それ以外は根本(右上)から剛体000~剛体003とします。

連結Joint用エンプティを作成

次に連結用エンプティを作成していきます。

Blenderで基礎剛体/連結Jointを作成する時の連結Joint用エンプティ

上図のようにルートボーン以外のボーンヘッドにエンプティを配置していってください。

このエンプティの設置は、ボーンのヘッドに3Dカーソルを移動させてから行うと手間を短縮させることができます。

こちらも名前は何でも問題ないのですが、本記事では右上から、エンプティ000~エンプティ003とします。

連結Joint用エンプティにコンストレイント追加

次に前節で作成したエンプティ全てにリジットボディコンストレイントを追加していきたいと思います。

Blenderで基礎剛体/連結Jointを作成する時の連結Joint用エンプティのコンストレイント設定の概要

上図のようにエンプティを選択後、リジットボディコンストレイントを追加、タイプを【汎用ばね】に変更してください。

また【反復の上書き】にはチェックを入れてください。

Blenderで基礎剛体/連結Jointの連結Jointのオブジェクト設定

オブジェクトの中に入れる項目ですが、上図のようにエンプティ001を参考にしたとき、より根本に近い剛体001をオブジェクト設定の【最初】に、より先端に近い剛体002をオブジェクト設定の【秒数】に設定させてください。

エンプティ000の場合、根本の剛体は存在しないと思いますので、その場合は剛体ルートを選択してください。

Blenderで基礎剛体/連結Jointを作成する時の連結Joint用エンプティのコンストレイント設定のリミット部分

また、もう1つ設定を行う箇所として、【リミット】があります。

この【リミット】の【リニア】はすべてチェックを入れ値を0に、【角度】もすべてチェック入れてください。

この【角度】のZ軸角度を0にすると、髪等に利用したとき変に裏返ったりしないようになります。

剛体オブジェクトにリジッドボディ追加

次に剛体オブジェクトに剛体シミュレーションを行わせるためリジッドボディを追加していきたいと思います。

Blenderで基礎剛体/連結Jointの基本的な剛体オブジェクトのリジッド設定

剛体000~剛体003までの基本的な剛体は上図のように、【物理演算】から【リジッドボディ】を追加し、タイプを【アクティブ】に、シェイプを【カプセル】に変更してください。

Blenderで基礎剛体/連結Jointのルート剛体オブジェクトのリジッド設定

上図のように、剛体Rootのみタイプを【パッシブ】に変更してください。

これをアクティブにしていると全ての剛体がずっと下に落ちていくことになります。

ボーンにコンストレイントを追加

最後にルートボーン以外のボーンにボーンコンストレイントを追加していきたいと思います。

Blenderで基礎剛体/連結Jointのボーンコンストレイント設定

上図のようにポーズモードにした後、ボーンコンストレイントから【チャイルド】を追加してください。

ターゲットには各ボーンに合わせて作成した剛体オブジェクトを設定してください。

b000なら剛体000、b002なら剛体002のようになると思います。

ペアレント設定

最後にアーマチュアを親に、全ての剛体とエンプティを子になるようペアレント設定をしてください。

これで、Blenderで基礎剛体/連結Jointの作成が完了となります。

各エラーと修正方法

最後に筆者が実際に起こった各エラーと修正方法についてご紹介していきたいと思います。

ポーズモードにするとボーンの位置がおかしい・おかしくなる

この場合はペアレント設定の結果おかしくなっている可能性が高いです。

そのため、ボーンコンストレイント設定のチャイルドを一旦つけなおすと直る場合があります。

もし直らない場合アーマチュアのトランスフォームを適用してみてください。

剛体がつながらない・どこかにとんでいく

この場合はエンプティに追加したリジッドボディコンストレイントの設定が誤っている可能性が高いです。

そのため、オブジェクトの最初と秒数に設定した剛体は誤っていないか、リミットのリニアの制限がされているかを再度確認してください。


本記事の内容は以上となります。

アドオンのボタン1つでこれらのことを行っているということは非常に便利に思えますが、仕組みを知らないと修正方法も分からないため、もし正常に動作しない場合は是非参考にしてみてください。

本記事は以上です。お疲れさまでした。