読者です 読者をやめる 読者になる 読者になる

当たったらどうすんだよ

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

ZBとBlenderでUE4用のキャラを作る #9:Blenderで人物リグ完成!

Blender UE4 UE4にオリキャラを導入したい キャラクタ ゲーム制作 リグ

この連載も早いもので第9回。
今回でBlenderによる人物キャラクタ用リグを完成します。

f:id:kanianthi:20160611192300j:plain

↑完成図はこれです。
複数人でチームを組んでリグというよりアニメーション作成を行う場合では、選択のしやすさや動かしやすさを考慮してコントロール用ボーンとルートボーンには、カスタムシェイプを割り当てて表示するようにすべき、とは思います。しかしぼくの場合は基本的にソロ作業のぼっち虫なので、分かればいいや!で済ませてしまいますw

前回から多少の試行錯誤を加え、大腿骨(thigh)の補正ボーンの動きと数値の適性値を探ったりはしましたが、基本的に当初の計画通りにリグを仕上げ、結果の動きにもある程度満足しています。

リグの構造

何度か書いていますが…

  • すべての親となるrootボーン
  • 脚はIK、その他はFKで駆動
  • 主要な破綻しやすい関節に変形補正用ボーンとインフルエンス(コンストレインツ)を組み込む
  • 前腕にはツイストボーン(2分割)い
  • リバースペルビスと背骨ロールセンター(コントロールボーン)
  • 揺れモノはUE4の物理ノードで作成する

以上を仕様とします。

f:id:kanianthi:20160611194137g:plain

↑変形補正ボーン(インフルエンス)の動作はgifで見る方が分かりやすいですね。
こうした仕掛けを股関節に3か所、膝と肘、それに脇の下に仕込んであります。

さらに必要であれば、ボーンの固定は行っていませんので(rigifyでやるように)位置や回転を動かして適切な変形になるように追加補正も可能です。

Blenderでボーンをミラーコピーするときの注意点

f:id:kanianthi:20160611194940j:plain

ボーンは片側だけでIKやコンストレインツを組み、あとで逆側にミラーコピーします。
しかしそのとき、↑のキャプチャで示した「ボーンロール」が正常に反転せず、ポーズのミラーコピーができなくなる現象に出くわすことが「かなりの頻度で」発生します。

これがBlenderの仕様なのか不具合なのかバグなのかはっきり分かりませんが、とにかく左側で46.66度のロール角であるなら、右側では-46.66度になって正常です。ポーズモードでポーズの反転コピペを行って正常な結果が得られない場合は、ボーンロール角がおかしなことになっていないか確認してください。

クオータニオンオイラー

f:id:kanianthi:20160611195722j:plain

別の記事でも書いていますが、rootボーンなどの「全身を回転させるのに使うボーン」はオイラー角で運用したほうが圧倒的に楽です。なぜなら、クオータニオンでは360度回転をさせるためには「最小角度のルール」によって大量のキーを打たなければならなくなるからです。

今回のリグの場合、オイラー角でキーを打つのはrootボーンとROT_spineボーンの二つになります。1軸しか動かさないのであれば脛や肘のボーンもオイラー角で構いません。

ウエイトペイントについて

f:id:kanianthi:20160611200940g:plain

いつものことですが、ウエイトペイントには大して時間がかかりません。
ほとんど自動ウエイトだけで↑のgifくらいの変形が行えるようにメッシュと骨をセットアップしていますので、調整が必要なのは各補正用ボーンと骨盤、spine(背骨)くらいです。

ウエイトペイントで半日も時間がかかるケースというのは、恐らく骨の位置やメッシュの構造が間違っているからです。できる限り自動ウエイト一発で「とりあえずきちんと動いているように見える」関節の位置を探ってみてください。

必要なボーンにだけ頂点グループとウエイトをつける

f:id:kanianthi:20160611202528j:plain

↑画像は「おさげ」のボーンに手動ウエイトペイントを行っているところです。

頭部パーツや目、髪の毛パーツなどのように、首から下のボーンの影響を一切受ける必要がないメッシュには「アーマチュア変形」でボーンとメッシュの関連付けを行い、その後ウエイトペイントモードで個別にボーンを選択し直接ウエイトを塗っていくか「ウエイト→ボーンから自動割り当て」を使い、半自動で頂点グループを作成していきます。

また、目のパーツのように頭のボーンだけに100%のウエイトがあれば良いケースであれば「空のウエイトで」を使ってボーンと関連付けを行い「head」頂点グループを作成し、ウエイト値に直接100を入力すれば終了です。

リグの詳細については骨そのものに触れていただき、試してみるのが一番だと思います。今回もサンプルファイルへのDLリンクを貼っておきます。

onedrive.live.com

なお、ワサビミドリのUE4用キャラクタモデルに関しては、以下の利用規約を念のために設けておきます。

  • メッシュ、リグ、テクスチャデータなどのすべてにおいて、作者である「なん」は権利を放棄しませんが、使用者の利用に制限を加えることもいたしません。メッシュの改造、リグの改良など、ご自由に楽しんでください。
  • このモデルを使ったBlenderファイルやUE4プロジェクトなどの配布、再配布もご自由に。ただし、なにか楽しい変更をしていただいた場合、ご一報いただけるとうれしいです。
  • 商用利用についても制限は行いませんが、ビルが建つほど儲かった場合は部屋のひとつくらいの分け前をいただければうれしいです。