揺れプルプル、Blenderでクロース物理演算テスト

 揺れるポリゴン実験中。クロース物理演算で重力で弾むぷるぷるポリゴンオブジェクトを実験中。男子が喜ぶような画像はまだありません。Blenderを使用。

これを使用すれば、いつか胸が揺れるアニメーションができるかもしれん。

・参考にしたユーチューブ

Breast Collision and Jiggle Physics in Blender through Cage Deforms - Kris Stone

>上記タイトル名をユーチューブで検索(裸オブジェクトがあるので直リンクはやめた。グーグルの外部リンク規制が厳しいので、何でもかんでもリンクを入れると通報されてランクを下げられたり、上位検索位置から除外されることもあるある。しかも審査を請求してもなかなか再審査させてもらえず面倒なことになる)

単に胸ポリゴンに物理演算を与えるのではなくて、別オブジェクトを作り、この別オブジェクトに対して物理演算を設定して、胸ポリゴンが同期して柔らかなシミュレーションができるようにしてる。

 理由はよくわかっていないが、物理演算が対象のオブジェクト全体に影響を与えるので、人体の一部だけに設定をできないのかもしれない。なので別オブジェクトを作成することでこの別オブジェクト全体に物理演算結果を、人体胸部分である一部の頂点トレースさせて揺れの動きを再生させていると解釈した。(この解釈は間違ってるかもしれんけど)

ただ、例のごとくBlenderは設定が面倒で忘れる。

以下にその設定を記載した。

構成は次の2つのオブジェクトの設定

1.ダミーオブジェクト:Modifiers(スパナアイコン):VertexGroup:Pin、クロースCloth演算、datatransfer

2.胸オブジェクト:Modifiers(スパナアイコン):Surface Deform(Vertex Group:Purupuru)

<手順>

ダミーオブジェクト作成は、キューブを追加してその後、胸オブジェクト用に複製する。

ダミーオブジェクトのときに、1面を平面のままにするにはEditモードで面を選択して、右側のItemタブのTransform>Edges DataのMeanCreaseを1.0に増やす。するとその面が曲面にならずに、平面状態になる。

サブディビジョンを追加して確定する。複製して胸ポリゴンとする。


ダミーオブジェクト名を「B」(他の名称でもOK)にして判別しやすいようにしておく

ここまでオブジェクトの作成

つぎに、ダミーオブジェクト:Modifiers(スパナアイコン):クロースCloth演算、datatransfer

ダミーBの頂点(Ctr+G)を設定する。まず、Editモードになり平面側の頂点を選択してCtr+Gを押すと、頂点グループが作成される。グループ名を「Pin」(変更OK)にしておく。

次にModifiers(スパナアイコン):クロースCloth演算を追加する。クロース演算の注意点は、揺らすときはある程度長い状態の形状のほうが揺れやすい。低い丘形状は、揺れの動き表現が難しいことがあった。ここらへんはやはり物理演算であり、大きなものほど揺れやすく小さいものほど揺れにくいシミュレーションになるということであろう。


設定数値が面倒でむずかしい。オブジェクトの大きさや期待する揺れなど、いくつの数値をいじって都合の良い動きを設定する


数値を入れる

Physical PropertiesのVertexMass 3kg

PressureのPressure 0.05

Pressure Scale 60

Fluid Density 0.5


次に

ShapeのPin Groupは Pin

Shrinking Factorは0.14

次にdatatransferを追加する

Edit>Data Transferを選択する。Source:Cube(胸オブジェクト)

Vertex DataのチェックをONにして、VertexGroupsをクリック反転させる。

その後Generate Data Layersをクリックする

Modifierの順番は、上がData Transferで次にClothになるように順番を入れ替える


次に胸オブジェクトの設定。プルプル動く頂点グループを登録する。選択ツールで一気に選択しても良いけど、揺らすポリゴンの先端の一部を選択してCtr+「+」を押すと領域が広がる。

Editモードにして頂点に当たる面を選択状態にする。Ctr+「+」を押すと領域が広がる。

均等に広がるので、最初の選択面もできるだけ均等に選択しておくとよい

このまま領域を選択してCtr+GでVertex Group:「Purupuru」(変更OK)とする。


そしてModifiers(スパナアイコン):Surface Deformを追加して、Vertex Group:Purupuruを登録する。Deform>Surface Deformを選択する

Target:B(ダミーオブジェクト)、VertexGroupはPurupuruを選択する。つまり、胸オブジェクトのPurupuruをダミーのように動かすということ。

Bindをクリックする

Unbindに変わる

胸オブジェクトのウェイト状態。赤い部分がよく動き、青い部分が静止する



ダミーオブジェクトを胸オブジェクトの位置に移動させる。なおダミーポリゴンは胸ポリゴンと完全一致である必要はない。ほぼ同じ形(輪郭とかだいたい同じ)であればよいらしい。今回はテストのために同じ形状とした。


全部の設定が終わったらプレイボタンを押すと、変形する。

変形しなかったり、動きが小さかったり大きかったりする。この場合は、Cloth演算の設定値を色々と変えて実際の動きを確認する必要がある。

ポリゴン数が少なかったので、柔らかい動きができていないので改善が必要


プレイすると下に垂れ下がり揺れ揺れになる。ちょっとイメージと違うので改善が必要だ。


これだけを見ると、ダミーオブジェクトの必要性が感じられない。おそらく人体全体の構成で試す必要があるのかもしれん。ひとまずこれでもう少し研究してみる

結論

要するに結果がすべて。何を使おうがイメージ通りのアニメが作れれば方法はどれでもよい。実際に、参考ユーチューブを見てやってみたけど、面白くはあるが実際にイメージした揺れはおそらく難しい。設定用の数値を色々と変更してもオブジェクトのサイズやポリゴン形状によっては、設定の経験が活かせない。たぶん設定を忘れているからまた最初から学習し直してトライアンドエラーを繰り返して無駄な時間が過ぎていって気力がなくなるパターン。

それならいっそ地道にボーンを入れてIK、FKで1フレームごとに調整したほうがイメージ通りにアニメーションが作成できると思う。

それかKeymapだっけ、ポリゴンを登録できる機能で、1フレームごとに動かしたほうが良いと思った。

 株式ランキング
株式ランキング にほんブログ村 株ブログ 株 デイトレードへ
にほんブログ村 にほんブログ村 デザインブログ 3DCGへ
にほんブログ村

このブログの人気の投稿

メモ、BlenderPythonスクリプトで参考になるオブジェクトや頂点の選択ツリー選択スクリプトリンクメモ

楽天証券、信用取引口座から楽天FX口座へ振替手順

10/15デイトレは、ジュース代を確保した、日経平均が4万200円超