【Maya】mob cook【モブいっぱい作るツール】
2017/10/16
お久しぶりです。最近、DFTALKが滞っててすみません。
TD室長の石田です。
今回は数年前に作ったツールになりますが(2014年作)モブ作成ツールの紹介をしたいと思います。
DFモブツール三作目ですね。もうそろそろ四作目な空気が有りそうな無さそうな…。
mobCookを作ることになった経緯ですが、
旧モブツールで問題点がいくつか上がりまして、それらを解決するためにゼロから作り直しました。
問題点
・素体が自由に追加できない
素体を元にツールを設計してしまったために素体の変更が簡単ではありませんでした。
人間以外対応していないので、動物なども無理です。
ベースリグも固定されていて変更が容易ではありませんでした。
・最大限必要である仕様を詰め込み過ぎて必要のない要素まで対応しないといけない。
旧ツールではリアルベースで作成したためにデフォルメキャラだったとしても
必要のない要素まで用意しなければいけません。
例えばポリゴン数、リグの構造などがリアルベースなためモブツールで
構築したアセットに対して要素を削るという流れに…。
スケジュールが足りない場合は要素を削る作業も出来ずに、ヒーローと同じくらいモブが重い状況にもなったり、など…。
・パーツリグが仕込めない
体にフィットしているパーツモデルであれば素体からのWeightCopyでなんとなくいけますが
スカートやロングコート、鞄などの持ち物の追加リグが必要な場合に仕込めませんでした。
・モブなのに群衆(Massive)対応ができない
骨構造が変更出来ないためMassiveの対応が出来ていませんでした。
などなど…。
mobCook動画
とりあえず簡単な動画を用意しました。
この動画ではモデルパーツ登録、リグ登録など登録作業が終わって大量生産に入ってからの動画です。
処理時間が長い部分は早回ししてますが、この動画での作業は通しで5分くらいですね。
もうちょっとしっかりとメリコミの直しをするとリアルキャラで30分くらいでしょうか。
体型変形後の形状から大きく離れていなければトポロジの変更も可能です。
ツールの説明
mobCookの作業
・素体モデルとベースジョイントと変形用スキンウェイトの登録
・パーツモデルとシェーダの登録
・素体のベースリグとベーススキンウェイトの登録(補助骨あり)
・パーツリグとスキンウェイトの登録(必要であれば)
・プロポーションの数値登録
・モデル編集用リグの登録(必要であれば)
これらを揃えればあとは動画の様に進められます。
shotWork用のツールも有りますがそこは割愛します。
図を書いてみました。
この他にも各パーツリグが組まれた後に走るPostScriptが登録できたり、
素体毎にテストアニメーションを用意できたり、
各レンダラーに対応するためのrenderSettingScript、
などなど、地味工程があります。
データがたくさん分かれてますが、こうすることによってシェーダだけの変更や、
リグだけ、モデルだけ、スキンウェイトだけ、なども可能になります。
動画では一気にリグまで構築していますが、モデルの組み合わせを先に行いつつも
パーツのリグを後からどんどん更新していき、バッチ処理で大量のアセットを構築できます。
リグに不具合があったとしても、問題のあるリグを修正するだけで一度に反映出来る仕組みになっています。
例えば10体に同じ服のパーツが使われていたとしても、
10体修正するのではなく一つのパーツのリグやモデルを修正してあとはポチッとな、で終わらせられます。
リグ登録と構築の工夫
ここで触れているのはアニメーションリグの話しではなくてデフォームリグと思ってください。
デフォームリグの登録ですがリグの構築用Scriptをリガーが書いているわけではなくリグをあるルールで組ませてそのままパーツリグとして分離させてます。
専用のリグScriptを書く仕様だととてもじゃありませんが大量のパーツのリグをこなしていくのは不可能です。
なのでリガーはルールに沿って組むだけであとは登録ボタンを押すだけになっています。
ルールは簡単、基本骨を元にしたTransformNodeに入れるだけ。
似たような形状であればリグは使いまわしてWeightだけ作ることも可能です。
体型変形後のパーツリグの位置関係(ジョイントやコントローラなど)も反映させることが出来ます。
パーツリグ登録の際にメッシュから位置を記憶させています。
左側は登録時のリグです。
右側はMeshの形状を変形させてから構築しています。
Meshの形状変形を考慮してRigが再配置されます。
モデル編集ツールの工夫
前作では顔変形、体型変形などモブツール側で用意していました。
ですがリグの仕様や素体が変わってしまうと途端にツールが使えなくなってしまいます。
今回はモデル編集機能をプロジェクト(素体)毎に編集用のリグを登録出来るように設計しています。
こうすることによって必要な時に編集用ツール&リグを作成出来るようになりました。
そして一度作成してしまえれば次プロジェクトでも使えるようになっていますし、要らなければ外せます。
不十分であれば更に改良も加える事もできます。
まとめ
ツールのコア部分でOpenMayaをかなり使用しています。mobCookが完成出来たのもOpenMayaのおかげですねー。
簡単な説明でしたが詳しく書くととても長くなるのでまた機会があれば…。(と言うか数年前のツールなので忘れ…)
質問などありましたら会った時にでも聞いて下さいw
それではまた。
コメント
コメントフォーム