当たったらどうすんだよ

当たらなければどうということはない

AutoRigProの解説:その1 概要編

はじめに

おひさしぶりです、なんです。
今回はBlenderの有償アドオンとしては特に知名度が高く、プロの現場でも採用例の多いプリセット・リグである「AutoRigPro」について解説しようと思います。

恐らく長くなるのでいくつかの記事に分けてお話しすることになりますが、まずは概要からざっくり入っていきましょう。

AutoRigProとは?

名称からも分かるとおり「自動でリグを設定してくれるプロっぽいツール」です。そのまんまです。このアドオンをBlenderに導入することでリグの設定が自動化されて便利になります。

購入の際はBlenderMarketに行くと常時トップページで紹介されているくらいの人気ものです。

https://blendermarket.com/products/auto-rig-pro

価格は40ドル。
Blenderの有償アドオンとしては高価な部類かも知れませんが…他の商業3D DCC用アドオン・プラグインと比較するとびっくりするレベルでリーズナブルです。

具体的な機能については…

  • Smartという一連の操作で数回関節位置でマウスクリックすればヒト型リグを自動生成してくれる。
  • ヒト型リグ以外に四足(ウマ型、イヌ型)リグや鳥タイプのリグ・プリセットが用意されている。
  • その気になれば「骨ひとつから」AutoRigProでリグを生成することも可能
  • わりと使えるフェイシャルリグ(ボーンベース)も自動生成できる
  • 独自のスキニングメソッド(Voxel法をアレンジしたもの)が統合されている
  • プリセットで変形補正用の補助リグ、ツイストボーンを追加できる
  • シェイプキーと連動したボーン制御が可能
  • 独自のアニメーションリターゲット機能を実装している(ReMap)
  • ゲームエンジン向けに独自のFBXエクスポーターを統合している(Unreal Engine4とUnityに対応)

などなど…Blenderには標準でRigifyというリグ・プリセットも用意されていて、これもなかなかに機能的ではありますが、特にゲームエンジンとの連携や独自のスキニングメソッドという点ではAutoRigProが優っています。(有償なんだから当然といえば当然ですが)

さらに特筆すべきは、このアドオンの作者であるArtelさんが「めちゃくちゃ熱心」に開発と更新を続けていて、機能の追加だけではなくバグFixにも「おそろしく勤勉」なことは挙げておくべきでしょう。
※ただしその結果としてアドオンの更新で互換性が保たれなくなることもしばしばありました。

なにはともあれ、ぼく個人のパーソナルワークで使い始めたのがきっかけでしたが、今ではぼくが勤めるIndie-us Gamesでも標準リグとなっていますし、弊社の取引先さんの一部でもAutoRigProをスタンドダードリグとして採用する事例が増えています。

しかしそもそも「リグってなんだよ?」とか「ボーンとどう違うの?」という疑問があると思います。なので、まずはそこからかいつまんでお話ししていきましょう。

リグとボーン・スケルトンの違い

Blenderではボーンを追加するとき「アーマチュア(Armature)を追加」というコマンドでシーンにボーンを追加できます。
アーマチュアというのはそうやって追加された「骨(ボーン)をまとめたもの」という意味です。データとしてひとつの塊、階層になっている、というわけです。

一般にBlenderでいうアーマチュアのことを「スケルトン」と呼びます。骨格(骸骨)という意味ですね。ひとつのスケルトンは頭蓋骨だとか背骨だとかという細かいパーツを含んでいます。

f:id:kanianthi:20200912184731p:plain

ボーンとスケルトン(アーマチュア

ではリグってなんでしょう?
3Dソフトウエア特有の言葉であると勘違いされている方がたまにいるのですが、リグは「なにかを動かすための仕組み」のことです。映画などでカメラをクレーンで動かしたりするための仕組みを「カメラ・リグ」と呼んだりしていたことから、3Dの世界でもリグという単語が普及したのだと思います。

つまり、リグというのは「骨・関節」または「キャラクタ全体」を動かすための仕組みのことです。それは「リグ用のボーン」だったり「コンストレイント」だったり「ロケーター(BlenderではEmpty)」だったりもっと複雑な「リグ用スクリプト」だったりします。

Blenderでは「変形可能」というフラグがボーンのプロパティにあって、これをonにしてウエイトをメッシュの頂点に設定することでボーン変形が可能になります。
一般にスケルトンとはこうした「変形可能ボーン(デフォームボーン)の塊」のことを指します。そしてスケルトンを動かすために用意する「上位の階層」(またはすべてを統合した全体)をリグと呼ぶわけです。

初学者の方にとってボーンとリグの違いはなかなか分かりにくいものと思いますが、だいたいのところはこの説明で通用するはずです。

f:id:kanianthi:20200912211247p:plain

AutoRigでは赤枠で示したレイヤーにコントローラーを格納する。緑枠で示したレイヤーには変形用のスケルトンが格納されている。FBXエクスポートでゲームエンジンに出力するのはこのスケルトンだけになる。

f:id:kanianthi:20200912211009p:plain

画像はAutoRigが自動で生成してくれるコントローラー。コントローラーは実際のところカスタム設定をしたボーンなのだが、コントローラーはリグなのでウエイトをつけない。

リグの難しさ

ここまで読んでいただければ「リグって難しそうだな」という雰囲気は伝わったように思います。実際、プログラムやスクリプトに詳しくないアーティストが一人でリグを構築するにはかなりの勉強をしなければなりません。

そのため、様々な3D統合ソフト(DCC)にはプリセット・リグが用意されているのですが、仕様が標準ボーンとは違う(プラグインとして提供されているため)など、サクっと使うには良くても、カスタマイズに制限があったり、ゲームエンジンのことは考慮されていないなど、不便な点も多くあります。

しかし、AutoRigproでは標準のRigifyと同様にBlenderの標準ボーンを使ったリグを構築するため、もともと自由度の高いBlenderアーマチュアの機能を生かした設定が可能です。ユーザーが任意の衣装や髪の毛、その他物理シミュ用の追加ボーンを設定することも可能ですし、それをゲームエンジンにエクスポートするための設定もできます。

f:id:kanianthi:20200912211613p:plain

アニメーションではAutoRigProが自動生成するコントローラーにキーをつける。コントローラーは変形用のスケルトンをアニメートさせ、FBXエクスポートする際にはアニメーションのキーをスケルトンに自動ベイクしてくれる。

AutoRigをはじめとしたリグが「分からない」という人の多くは、これらコントローラーと変形用スケルトンの違いが分からない(知らない)場合が多いと思います。そのため、コントローラーに必死でウエイトをつけていたり、変形用のスケルトンにキーを打ってしまい、エラーを引き起こしてしまうのではないでしょうか。

リグピッカーについて

f:id:kanianthi:20200912212205p:plain

AutoRigProには画像のようなリグピッカー機能があるのだが…わりとトラブルの元になっていて(ぼくの)制作では使っていません。

AutoRigProに初期から実装されている機能ですが…☝のRig Pickerについては「わりとトラブルの元」で、正直使わないほうが無難である、という認識です。

リグピッカーはたくさんあるコントローラーを「分かりやすいUI画面で」パパっと選択したり設定を変更するために用意されているのですが、不具合があるにせよないにせよ積極的に利用したいひともいれば、こういうの却って使いにくいんだよね~という人がいて、ぼく自身は後者です。

この辺のUIに凝ったリグは他のDCC用リグでも多く見られるものですが…便利そうではあるものの「直接手足のコントローラーを選択したほうが直感的で手早くキーを打てる」という理由で使われないことが多いものですね…。

ちなみにRigifyだとBlender画面の右側プロパティパネルにこうしたコントローラー選択UIが用意されていますが、動作としてはAutoRigProよりも(この点については)安定している、という印象です。
※実はAutoRigProのPickerはそれ自体もカスタム設定されたボーンコントローラーです。

UnrealEngine4(UE4)との相性

残念ながらぼくはUnityについてはほとんどなにも知りません。会社もUE4を専門としているので業務でUnityを利用することはほとんどないだろうと思います。

一方で、UE4については専門ですのでAutoRigProとの連携についてはたくさん知見を持っています。当初はBlenderUE4ではかなり骨の仕様が違うことから細かい不具合も多く見られましたが、Blender2.8x時代になってからは「少なくともUnreal Humanoid対応において」問題はなくなった、という認識です。

f:id:kanianthi:20200912213749p:plain

AutoRigPro独自のFBXエクスポーター

☝はAutoRigProに実装されている独自のFBXエクスポーターの設定部分です。
ここではUE4マネキンにボーン(ジョイント)名称を合わせてくれるほか、ゲームエンジンにエクスポートすると不具合の原因となる「ボーンストレッチ」を自動的にカットしてくれたり、ボーンの軸をUnrealケルトンと合致させてくれるなど、BlenderUE4用キャラクタを作成するうえで不可欠な設定を行うための配慮がされています。

わりと最近まで、耳や尻尾という補助ボーンの軸だけが合わないという問題があったのですが、それも解消してくれたのでUE4対応では不可欠なアドオンになりました。

この他にも、BlenderUE4の間で生じるスケール問題や、rootボーンの回転問題、rootモーションの出力安定性や、任意のActionだけをエクスポートできる機能など、Blenderの標準機能だけで対応しようとすると(知識なしでは)かなり難易度の高い問題をカバーしてくれますので、非常に便利で有用なアドオンと言えるでしょう。

次回は…

さて、長くなりましたので「その1」はこのあたりで終わりにします。

次回からは、いよいよ具体的なセットアップを通じてAutoRigProの機能や豆知識について触れていこうと思います。

そんなの待てるかー!という方のためにAutoRigPro作者さんによるドキュメントへのリンクも貼っておきますね!

http://www.lucky3d.fr/auto-rig-pro/doc/install.html

さて、それではまた次の記事でお会いしましょう。