Rigifyの謎に迫る!
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

Rigifyの謎に迫る!

2015-12-13 08:15
    こちらはBlender Advent Calendar 2015・12月13日の記事です。

    Blenderの標準アドオンとして長らく搭載されており、最も有名なアドオンの一つであると思われる”Rigify”についてお話します。
    また、この記事は自分の覚書のような物なので、”Rigify”と調べて見つかる基本的な使い方・BlenderのArmature関連の機能を一通り理解していないとわかりにくいかも知れないですが、ご了承ください。
    あとぶっちゃけ謎を解明できてない部分があるのでわからない所はわからないとはっきり言っちゃいます。詳しい方が居れば教えて欲しいな!

    Rigifyについての自分の印象は「人型リグが位置を合わせただけでほぼ自動で出来るのは便利だけど、リグの機能をカスタムできないし、だったら自分でフルスクラッチした方が良いじゃん」という物でした。
    まぁ、この考えは単に自分の無知と浅はかさによるものだったわけですが、半年前にこちらの動画を見て覆されることになります。

    結論から言うと『Rigifyとはリギング補助ツールであり、割と好きなようにカスタムできる』ということです。
    (正確には違うかもしれませんが、モジュラー型リギングシステムというのが近しい概念だと最近思っています。おおまかな考え方は3DCGMU #8で登壇されていた上原達也さんのMGEARの解説スライドがわかりやすいので、興味のある方はどうぞ)


    Blender2.76b現在、Rigifyをアクティブにして何が起こるのか、ということをまとめていきます。
    Add→Armatureで作れるようになるリグは”Human(meta-rig)”と”Pichipoy Human(meta-rig)”の2つです。



    Generateボタンを押すとそれぞれこうなります。



    また、いくつかのタブが色んなときに色んな所に現れるようになります。(もうちょっとUIどうにかならないのかなー)

    Rigify Buttons:Object・Pose Mode時はGenerateボタンのみ。元のアーマチュアの調整が済んだら押します。




    Edit Mode時には選択欄(詳しい話は後述)とAdd sampleというボタンが現れます。



    Rigify Layer Names:常に現れます。Generate後のRig Layers(後述)の設定を決めます。左端の四角は現在表示されているArmatureのレイヤー。真ん中は生成後のRig Layersで使われる名前。右端の数字はRig LayersのUIを決めます。




    Rigify Type:Pose Mode時のみ。ある意味Rigifyの本質的な部分です。ここでGenerate後どんなリグができるのかを決めます。(キャプチャでは上腕を選択しています)
    先ほど説明したAdd sampleはこのRigify Typeのテンプレートのような物を呼び出します。




    例えば、全体をPichipoyで編集していて、指は標準のhumanの物を使いたいなぁというときは、指の根元のボーンを選択してRig Typeを”pitchipoy.simple_tentacle”から”finger”に変更するとGenerate後に指のリグだけが標準の物になります。




    Rigify Dev Tools:Tキーで現れるタブに存在。Edit Mode時にアクティブ。現在のアーマチュアを生成するPythonスクリプトが出来る。(Text Editorで確認可能)
    カスタムした生成前のアーマチュアを保存する物のようですが、正直よくわかってないです。
    Encode Metarig to PythonとEncode Sample to Pythonの用途の違い等、調べてみたけどさっぱりわからない。謎である。(Git Hubでそれっぽいことを説明した英文を見つけたのでコツコツと翻訳中ですが、今一ピンと来てないです……)





    ここまでが自分が確認したGenerateボタンを押す前に弄るであろう部分です。(まだあるかもしれないですが)

    次は、Generate時に何が起こるか。その後何ができるのかをまとめていきます。

    まずGenerateボタンを押すと設定されたRigify Typeを読み取り、そこから何層かの子ボーンをリグに変換します。(要するにリグができるということです)
    また、rig_ui.pyというスクリプトを生成します。


    Generate後のリグは固有のIDが設定され、このスクリプトに紐付けられることでRigifyで作ったリグが複数あっても”Rig Main Properties”と”Rig Layers”(後述)を独立して使うことが出来ます。リンク時・アペンド時などはこれも引っ張ってこないとRigifyをこれらの機能が使えなくなります。(アペンド時はRun Scriptを押すこと。Auto Run Python Scriptsのチェックを入れておくのも忘れずに)


    3Dビュー上での20番のレイヤーにカスタムシェイプ用のオブジェクトができます。これらをそれぞれ編集することでリグの形を変えることが可能です。




    nキーで現れるタブに”Rig Main Properties”と”Rig Layers”が出来ます。
    ”Rig Main Properties”の内容は選択したリグによって変わり、それぞれの特殊な機能の値を変更することができます。これはGenerate前のRigify typeによって変わります。

    ”Rig Layers”ではGenerate前の”Rigify Layer Name”でそれぞれ設定したレイヤーの表示・非表示を選択できます。先ほど説明を軽くすませた”Rigify Layer Name”の右端の数字は、上から何番目の段にレイヤーのボタンを作るかを設定します。(同じ数字がある場合は並列に表示していく)




    こんな所でしょうか。
    ちなみに、リグのウェイトを調整したい場合はプロパティのアーマチュアタブで18番レイヤーに入ってるボーンがデフォームボーンなので、それを表示させれば調節可能になります。



    さて、今回の記事はこの辺でお開きとします。
    本当はすべての”Rigify Type”と”Rig Main Properties”について言及したかったのですが、どうしても使い方がわからないRigify Typeがある・量的にアドペンドカレンダーに間に合わないという理由などから、割愛することにしました。その内、続きとして書こうとは思っていますが……。
    特に理由として大きいのが

    「ふーん、”pitchipoy.limbs.super_limb”のLimb TypeにはArm、Legの他にPawなんてのがあるのかーPawってなんだろ」
    【名詞】【可算名詞】

    1(犬・猫などのつめのある動物の)足
    weblioより抜粋

    「ん?動物の足、作れるの???
    とロマン溢れる機能があるっぽいのですが、どういうボーンの組み合わせをすればエラーなくGenerateしてくれるのかわからず、これは、Rigifyの中身を読んでいくしか……。となっています。(使い方を知ってらっしゃるBlender有識者の方が居れば教えて頂けると、とても、ありがたいです……)


    こういう文章を書くのは慣れていないので、読みにくい・分かりにくい等あったかも知れませんが、ここまで読んで頂きありがとうございました。

    そして明日12月14日のBlender Advent CalendarはYOSHIOKA_Ko57さんの『傾いてアンラップされたUVの整理(仮』です!

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。