見出し画像

【b3d_mkn】自分で作ったblenderリグの概念まとめ【blender】

神は言った、リグあ(ってく)れと

さて、本来リガーになる予定はなかったけどなってしまった人間が今までに培った経験を書きます、リグ全然わからん人にお勧めしますん

blenderのベーシックな骨表示
自作リグワイヤフレーム

リグって何と言われると3D上のオブジェクトを動かしやすくするための仕組みである、MMDもIKがあったりするのでMMDリグなのだ
blenderで言うとrigifyとかAutoRigProアドオン等がそれにあたります
さて、自前でリグを用意した理由は単純で上のどれも個人的な仕様にそぐわなかったので開発する必要があった

この仕様に至った説明と理由

必要な仕様
1ボタンでコントロールリグの削除/適用切り替えができる事
 ┗再編集のしやすさと、流用性を上げる為にマスト
ベーシックなIK/FK切り替えリグの実装
 ※IKFKを混ぜたリグにしない事(motionbuilderのhumanIKみたいなの)
 ┗操作性よりメンテナンス性と拡張性を考える為
リバースフットリグ/頭のワールド切り替え

他は別に要らない、拘ってメンテナンス性を落とせば自分が苦しむし、blenderは後で軸を変更したり位置を調整する事は難なくできる(mayaはめんどい)
maxは頂点編集が優秀なのでそういう事考えなくて良いかもしれないが
blenderはmax程頂点編集が優秀ではないのです
なのでちょっと凝ったリグは一応要る

何より重要な事はただ一つ リガーの為のリグを創るな
これはとても重要な話で、リガーがリガーとしての仕事を会社に証明しようと複雑なリグを用意すると大体要らない機能で重くなるし壊れた時の面倒くささが半端ない、大体は直FKで良い、特殊なカットならその特殊カット用にリグを組んだ方が最終的には効率が良いと私は信じてますからね

そんなこんなでこのリグが最終的に出来るようになったのは139の骨(FK用IK用、他調整用そして諸々膨大な数のボーンコンストレイント)を1ボタンで配置しすぐにアニメーションリグとして稼働出来る半自動リグとなりました

骨数248(顔や髪骨含む)
骨数387

rigifyの場合は
①モデルに対してリグを調整する②スキニング作業③本セット
このリグの場合は
①モデル&スキニング作業②本セット
つまりそれぞれ体系が違うモデルに対してリグを都度編集しなきゃいけないのではなくモデルにすでにスキニングが施されているのであれば1ボタンでアニメーションしやすいリグが付く
これは別の記事で描く積み立てCISAプロジェクト なる流用システムの
基幹システムと言っても過言ではなく、骨の名前が一緒なのでblenderのアクション(アニメーションデータみたいなもん)の流用が可能なリグであるという事でもあるのです


ごちゃごちゃぁ!

手足のIKFK切り替えシステム図

ざっと手足の数値の流れ

腕とか足は単純に言うと上図の通り、FKかIKか切り替えたらそれぞれ入力スケール用FKかIKに入り、最終的にそれらのローカル値がMasterに入ってDeformリグに数値を与える
最期細かい調整やニュアンスが必要ならベイクをして余計な骨を消してデフォームリグでFK調整をすれば良いという一方向のリグ
簡単に例えると機動戦士ガンダム逆襲のシャアのリ・ガズィBWSシステム
みたいな設計思想、強力な武器を担いで一撃かまして、その後はそれを破棄して更に身軽になる、割り切り型のリグです

閑話休題:リグの話とか需要ある……?

これ書いててつくづくリグ作業っておかしいな、頭おかしくなりそうって気分になりました、書いてる側がそう思ってる以上多分見てる側はもっと退屈だと思いますすみません

胴体のシステム図

図と言うか親子図?難しいよねー
胴体の骨はノーマルなまま、上半身下半身を分けて動かせるリグの仕組み

もうこの辺は覚えてない……
確かrigifyの設計を流用したら巧く行った覚えがあります(というかこんな記事視る前にrigifyのリグをリバースエンジニアリングした方が実力付きます
blenderちょっと触ってると分かると思いますが上図の右側の骨の組み方をしてる場合、骨盤の骨(root)を動かすと体全部が動いてしまいます

なのでMCHという(メカニカル)骨とコンストレイントで骨を参照する順序をごり押しで変更して、下半身は下半身だけで動くような設計になっています(MMDとかだとデフォーム骨自体を上半身下半身に分けてるけど、あの設計は余所のソフトとかだと不具合の原因になりやすいので採用できなかった)利点としてはblender以外のfbxとかで書き出す場合、デフォームリグ以外削除するだけなのでmotionbuilderのhumanIKの割り当てとかも特に何かしないでも対応できる

リバースフットリグの実装

まぁ典型的というか普遍的なリグですな

リバースフットリグは伝説のdskjal さんの記事の概念そのままです
ここまで書いて読んでいただいてる方には大変申し訳ないですが
やり方書いても大体の人はrigifyかautorigProでオーバースペックなので、概念だけまとめてます、この概念図というか考え方だけ受け取って何らかの参考にして貰えればと

顔コントロールスペースの実装

どこだっけ……

すみません事故りました、何処のコンストレイントだったか失念しました
ざっくり言うとボーンコンストレイントのチャイルドで切り替えるようにすると出来ます、他の手段もあるけどチャイルド使うのが一番楽です(自分のは別手段使ってるせいで事故りましたメンテナンス性とは

指の実装

シンプルー!

すみません、指は一番何らかのリグを入れる必要が無いと思ってます
何故なら大体ポーズアセット(決まった指形状の登録)さえあれば楽できるし、アニメーターはFK用意してあげればいい感じにやってくれると思います
(FK至上主義という宗教もあるので私はそっち寄りです)

細かいニュアンスで複雑なコントロールリグを実装するのは重さに繋がり、その重さがアニメーターにとっての煩わしさになるのであれば要らないという判断です、但し指の軸自体は綺麗に(XYZのどれか1軸を入れれば綺麗なグーポーズになるように)設定してあげる必要がありますが、逆に言えばそれだけでOKです

正座膝の実装

要するに足首に膝骨をもう一個追加してる

正座とか腕とかを無理に曲げると膝部分が太腿を貫通したりする、それを防ぐために通常の膝骨の子供にもう一個骨を追加して足首に配置する、足首から回転させる事で膝の形状をマシにする事が出来ます(肘の場合はあんまお勧めしないです、捻じりの概念があるので)


一旦まとめ

ざっくりと概念まとめを書きました、こういうリグを創ったよーっていう紹介でもありますが、何度も書いてるけど普通はRigifyかAutoRigProでええねん、IKとかポールベクターとか初歩的なものに関しては他記事で解説してるので省いてます

リグを創る時は必ず仕様をたてて、その組織やチームの目的に合致し、且つリガーの為ではないリグを作りましょうという事ですね

こんなん見ても何やってるかわかんねーよって感想が出てきてもしょうがない位ざっくりな書き方をしているので、次の記事とかはボーンコンストレイントとの機能の説明を交えつつ、このリグ概念の補強解説を行えたらなと思ってます(需要は無いと思うけど)

この記事が気に入ったらサポートをしてみませんか?