スポンサーリンク
BlenderTips

【Blender】リグの作成方法

まえがき

この記事では何も分からない筆者が手探りでリグを作成する中で気付いた事など書いていきます。

もっと簡単にリグを組む方法を教えてくれと思う方も居られるかもしれませんが、リグの作成であればRigfyやAutoRigProを用いるなど幾らでも方法はあると思いますが、楽をしたいと思うと同時にそれを超えるリグを自らで組みたいと思う気持ちありませんか?

環境

Blender 3.6

ボーンの命名規則

リグを作成する前にボーンの命名規則について少し考えます。
ボーン名はbone.001,002,003….で最悪問題は無いのですが、煩雑化され管理が困難となり後々のウェイトペイントやコンストレイントの設定で泣くことになりますので、部位や役割に応じた名前を付ける必要があります。Blenderファイル内で作業を完結させる場合は日本語で(頭,肩のように)命名しても恐らく問題は発生しないと思われますが、外部ソフトでファイルを読み込む際などにエラーが出たり、文字化けしたり様々な問題の原因になる恐れがあるので、命名は基本的に英語で行います。(推奨はされていませんが、第三者にファイルを見せる必要も無ければローマ字表記の日本語でも大丈夫だと筆者的には思います)

英語力皆無の筆者は明らかに英訳できる頭(head)や首(neck)以外の分からない部位についてはRigifyや広く使われている命名規則を参考に命名しました。

今回使用しなかったボーンについては命名規則を確立出来ておりませんので、使用する際に現在の規則とすり合わせながら調整します

筆者は、ボーン名を小文字で、upperarmのように長くなる際は_で区切り、IKやFKなど役割を持つボーンはボーン名の後に続けて大文字で_IK、左右対称のボーンがある場合は役割を持つボーンの後に続けて大文字で.L、同一名のボーンが複数ある場合は親階層が若くなるように.001としました。

またターゲットなどIKボーンのオプションで必要となるようなボーンは先頭大文字で役割を持つボーンの後に.Target.Controller.Switchとしました。

例:hand_FK.L spine.003 hand_IK.Target.L eye.Controller.Switch
※階層の1番上に来るボーンは例外で先頭大文字のRootとしました。

今回使用部位名ボーン名
全ボーンの親Root
head
neck
脊椎spine
shoulder
上腕upper_arm
前腕fore_arm
hand
×親指thumb
×人差し指index
×中指middle
×薬指ring
×小指pinky
大腿thigh
shin
foot
つま先toe
×足の親指foot_thumb
×足の人差し指foot_index
×足の中指foot_middle
×足の薬指foot_ring
×足の小指foot_pinky
眼球・目eye
眉間middle_forehead
nose
上顎upper_jaw
下顎jaw
上の歯upper_teeth
下の歯lower_teeth
tongue
×上瞼 upper_eyelid
×下瞼lower_eyelid
ear
尻尾tail

リギング

アーマチュア(骨入れ)

リギングのファーストステップです。
アーマチュアを作成してターゲットのモデルにボーンを入れていきます。

最初はボーンの位置や親子関係について深く考えず、曲げたい、動かしたい部分にボーンを追加、調整していくと良いかと思います。

筆者はミラーしながら作業していましたが、リネームの際や親子関係の設定で単純に手間なので左右どちらかにボーンを入れた後で対称化するのが良いかと思われます。

雑な骨入れを推奨していますが、雑な骨入れをすると幾つか問題が出てくるので、その原因と対策を紹介します。
骨の入れ方以外にコンストレイントの設定で対応可能な問題もあります

親ボーンとの接続

親ボーンに接続された子ボーンは位置が親ボーンに依存するので、子ボーンを独立して移動させたい時に動かせない原因になります。
編集モードでボーンの関係から接続のチェックを外すことで、子ボーンを独立させて移動させることが可能になります。

レストポーズとの位置ずれ

コンストレイントにも関連する話ですが、ボーンの位置が原因で起こる事が多いです。
IKのターゲット用ボーンはIKを設定するボーンからヘッドとテールを離れた位置に作成してしまうと、レストポーズとポーズ位置がずれます。
意図してずらす場合もあるのかもしれませんが、編集モードでスナップ機能などを使って修正します。

また、現在のポーズをレストポーズに適用することも可能です。

ボーンのロール

ロールの数値が意図しない値だった場合に、ローカル軸での回転が絡む処理や動作をさせると予期せぬ動作をするなどの原因になります。

ロールの設定は編集モードでアーマチュアのボーンロールから設定できます。
個別で設定したり、まとめて設定でき項目がそこそこ多いです。

筆者はロールの数値が0だと心地良いのでロールクリアをしていましたが、指のような部分に入れるボーンは回転軸を同じような向きで揃えると良いようです。
今回は指を作成しなかったので、実際にどのように入れるかはいずれ検証して行きたいと思います。

ウェイトペイント(スキニング)

ウェイトペイントはオブジェクトとアーマチュアをペアレントして頂点とボーンを関連付ける作業です。

外部ソフトでモデルを扱う際にウェイトの正規化(頂点に乗っているウェイトの合計値を1.0にする)が必要になってくることがありますが、ひとまず正規化は忘れて塗り残しのないようにウェイトを乗せます。

今回作成したモデルは現段階では書き出す必要が無かった為、正規化していません

敢えてウェイトを乗せない場合を除いて、ボーンのヘッドからテールに対応する頂点にウェイトを乗せて行きました。

頂点との兼ね合いもある為、一概には言えませんが、ヘッドとテールを繋ぐ関節部分の調整が難しいと筆者は思います。
その辺りはポーズで確認しながら調整すると良いかもしれません。
ウェイトの調整だけでは改善されない場合には、コンストレイントを用いる事で調整します。

コンストレイントの設定

IKは幅広く設定方法についての記事などが出ているのでスルーしますが、それ以外のコンストレイントで今回使用したものを紹介します。

コントローラーに追従

眼球・目で使用しました。トラックさせたい眼球にトラックコンストレイントを追加してターゲットを設定するだけです。

IKとFKの切り替え

Rigify含め多くのリグに切り替えの機能が備わっていたので真似して設定してみました。

まず動かしたいボーンの他にIK用とFK用のボーンを同じ位置に2種類ずつ作成します、複製で作成してもOKですがボーン名は変更しておく方が良いです。

作成したらポーズモードでIK用ボーンにIKを設定し、FK用ボーンと共に動かしたいボーンからずらして作業しやすくします。

あとはIKとFKそれぞれに対応する動かしたいボーンへトランスフォームコピーのコンストレイントを設定します。

Blenderでは影響する要素が同じ影響度で存在する場合、後から追加したコンストレイントの影響を強く受けるようで、下側のコンストレイントの影響をSwitchなどの名前を付けた適当なオブジェクトやボーンのX位置などでドライバーに設定することで、IKとFKを切り替えることができます。

Switchの進行方向と動作方向が逆になっていますが特に意味はないです。

アニメーターの方の情報ではIKとFKはキッパリと切り替えるのが良いそうです。IKでもFKでも動いてしまう中途半端な状態は良くないそうな。

カスタムシェイプの設定

リグの操作性向上やボーンの機能を視覚的に伝える目的でカスタムシェイプの設定(コントローラーを作成)をします。

エクストラオブジェクトと言うインストール不要でプリファレンスから設定できるアドオンを有効にする事で、カーブの追加項目にカスタムシェイプ向きの矢印などのカーブが用意されます。

筆者にはマッチしなかった為、メッシュを繋げて作成したり、エンプティやテキストを使用しました。自分に合った方法を選択しましょう。

最悪凝ったモノを作らなくてもシンプルな形状で使い分けたり出来ると思います。
筆者にもイマイチ正解が分かりません。要はボーンを最前面に表示せずともカスタムシェイプが見える状態であれば操作しやすいでしょう?みたいな事だと思います。

カスタムシェイプのスケールや移動はボーン側には影響しないので、各ボーンで調整します。スイッチのように機能するボーンであれば移動させたりしますが、基本的に90度回転とスケールしか使用しないと思います。もし位置がずれているように感じたら、カスタムシェイプ用のオブジェクト側の原点や位置を確認すると良いかと思います。

カスタムシェイプ用のオブジェクトはビューポートに貯まって来ると邪魔なのでコレクションに入れて隠しておくのが便利です。

その他の設定項目

ボーングループ

色分け以外の役割を知りませんが、グループ毎にボーンのカラーを設定できます。

ボーンレイヤー

ボーンを選択してMキーでレイヤーを移動できます。
操作に関係ないボーンを移動しておくのが良いのかと思います。
次の更新で機能の変更があるらしいです。覚えなくて良い。

あとがき

文章力?記憶力?いろいろ欠如してしまっているので、しばらく置いて改めて読み直したり書き直したりすると思います。暖かく見守って。。。

更新してたら一瞬で時間経って夜になるから、新手のスタンド攻撃の可能性ある。

参考記事

キャラクタのジョイントにラベルを付けるまたは名前を変更する

Mayaリギング:キャラクターにおける解剖学的ジョイント位置と方向付け

ボーンのローカル回転軸設定

【Blender】検証と考察:ボーンの適切な軸方向、回転軸

コメント

タイトルとURLをコピーしました