スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

自作ゲーム用キャラモデリング:歯と舌のメッシュ調整

前回の続き。ちょっと歯の本数が多すぎたのでメッシュ調整。
そもそも人間じゃないので解剖学的な正しさとかは気にしてないんだけど、
単純にちょっと口の中の情報量が多すぎたので前歯を減らしてスッキリさせてみた。
180514_face_a.png

 あと口を開けた時にベロがないのも不自然なので簡単に追加。ウェイトはとりあえず下顎に。
専用のボーンはいらないかな。
180514_face_b_2018051421314643b.png

少しずつでも進めないとね。 
スポンサーサイト

自作ゲーム用キャラモデリング:フェイシャルセットアップ

UNITYいじるのが楽しすぎてあんまり進めてなかったけどそろそろこいつも進めたくては。
ずっと後回しにしていたフェイシャル周りに着手。
口の中も作ってなかったので歯を作るところから。

目眉口にボーンを設定→スキン設定→テスト用の表情作成→ウェイト微調整

好きなフレームにその場のアドリブで表情がつけれるので個人的にはモーフよりも
ボーンのフェイシャルのほうが好き。ゲームでの管理も一元化できるし。

180513_face_a.jpg
表情だけだと雰囲気が出ないので軽くポーズも設定。
こういうキャラだと表情も左右非対称にしておくと迫力がでる。
 
180513_face_b.jpg
アゴ骨は回転だけじゃなくて移動も使ってやるといい感じ。
あんまり考えずに作ったから歯の本数が多すぎたかも。後で上下1本ずつ減らそう。
これだけ口を開くことを考えたら舌も作っておくべきだったかも。
 
180513_face_c.jpg
バトル系以外の表情もできないとまずいかと思って笑わせて見ようとしたけど難しい!
オークの笑顔ってあんまり想像できない。
 180513_face_d.jpg
びっくりしたみたいな表情とかも。思った以上にコミカルになってしまった。
やっぱ背景がまだまだ寂しいな。もっと手を加えなくては。

●表情用ボーンの数
あんまりたくさんあるとアニメーション作成が大変になってしまうので、必要最低限で済ませてる。
眉:3本*左右
目:上下内外で4本*左右
口:上下の唇に7本ずつ

これよりも細かい表情をするつもりはないので今回はこれで十分。
そろそろテクスチャに入るかなー。その前にUV。
UNITYの勉強もしたいし、やること多いなぁ。でも楽しい!!

背景:ハイトフォグの修正と新背景

ゴールデンウィーク中なにをやっていたかと言うと新しい背景ステージのモデリングと
それに伴う背景シェーダーの修正とかを進めてた。
180504_BG_Bridge_d.jpg 
浮遊する島とそれをつなげる細いアーチのイメージ。極端にファンタジックな、現実にはありえない地形を作ってみたかった。

霧の中に消えて下が見えないという表現がしたかったので背景シェーダーのハイトフォグの仕組みを見直し。前から処理自体は入ってはいたんだけど、距離フォグとハイトフォグをうまくミックスできていなかったので、処理自体を全体的に見直し。
別に物理的に正しいわけではないけど、欲しかった見た目は達成できたのでよしとする。
180504_BG_Bridge_c.jpg
頂点カラーによるテクスチャブレンドと、あとはひたすらポリゴンで造形っていう作り。かなり力技。汎用的なパーツを作っておいてラティスで変形させながらレイアウトしていく。遠景のパーツはほぼシルエットしか見えないのでポリゴンリダクションで適当に頂点数を減らしてある。

キャラクターとの対比もあってかなりスケール感がある背景になってきたという手応え。180504_BG_Bridge_b.jpg 

ゲーム的には前後から迫る敵をどんどん突き落としていくのが楽しいステージにしたいという思惑。
そのためには、いい感じに落下を避ける行動を取るAIを作る必要があるなぁ。どう作るか。180504_BG_Bridge_a.jpg 
しかしレイアウトも含めて作っていて楽しいステージだ。やっぱファンタジーっていいなぁ
久々に夢中になって長時間モデリングしてしまった。


自作ゲーム用キャラモデリング:背筋ディティールアップ

さすがに適当すぎたのでグーグルで資料を見ながら背筋周りをディティールアップ中。
グーグル画像検索でいくらでも写真とか解剖図とかが見つかるこの時代、すげぇな。

背筋に限らずだけど筋肉は姿勢や力の入れ具合によって強調されるラインが変わってくるので、
モデルに反映させる形状を選ぶのが難しい。
180425_haikin_a.jpg
厳密にはその辺の筋肉の伸縮などの変形も含めてモデリング~リギングするのが正しくて、
ゲームでもそういう細かい筋肉シミュレーション表現は今後出てくると思うけど、
現状では負荷や手間に見合うだけの効果があるかどうか不明。
現段階では「こいつは鍛えてるぜ!強いぜ!」ということさえ伝わればいいという考えで、
割と記号として扱ってる感じ。

リギングTIPS:ルックアットによるシンプルな肩アーマー制御

というわけで予告どおり、肩アーマーのリギングに導入した小技について解説します。
自分は未だにSoftimageを使っていますが、おそらく主要な3Dソフトならどれでも
似た機能で再現できるかと思います。

●課題
バトルもののゲームや映像作品なんかだとこういう胸ー肩ー腕にまたがる形の
でかめの肩アーマーがよく登場するかと思います。
180410_RIG_3a_start.jpg 
この肩アーマーは、アニメーション的にはかなり難物で、ちょっと腕を上げるだけでも必ずどこかにめり込んでしまうので、細々と手作業の修正が発生しがちです。
肩の可動範囲は広く、特にアクションシーンでは腕を振り上げたり振り下ろしたりという動きが
多くなるので、このめり込みはどうしても目立ってしまいます。

●試行錯誤
これをなんとか手作業の修正をなるべくせずに済む用に、うまくリギングする方法はないか。
とはいえコリジョン計算とかをするようなガチなものは手に余るし、処理負荷も上がってしまう。
なにかもっとシンプルな解決方法があるはずだ…。と常々思っていたわけです。
なんかコンストレイントを1~2個くらい組み合わせるとかで…。
で、いろいろ試行錯誤するわけです。

・失敗例:肩ボーンの子供にすると、腕がめり込む。
180410_RIG_1a_shoulder.jpg

・失敗例:腕ボーンの子供にすると胸や肩にめり込む。
180410_RIG_1a_arm.jpg

・失敗例:腕と肩の中間の回転値にしてみた。良くなったけどやっぱりまだ腕にめり込む。
180410_RIG_1a_half.jpg 



●解決
で、いろいろ試行錯誤して数ヶ月放置していた間にふと閃きがあって、試してみたところ
非常にうまく行っただけではなく、いろいろ他にも応用が効きそうな気配が。

・成功例:今回のリギングの手法を使ったもの。
180410_RIG_1a_rigged.jpg
腕にも肩にもめり込まず、いい感じの位置、角度を保持できている。

・動かしてみた例:
SpaulderRig_1.gif 
腕を前後に振ってもいい感じに避けてくれるので、肩にはほとんどめり込まずに済んでいる。


●作り方
で、作り方ですが、散々強調したようにかなりシンプル。
ボーンの配置の工夫とルックアットコンストレイント一個だけで構成されています。
180410_RIG_2a_RIGGING_20180414160419418.jpg 
手順:
①上腕の子供として、上腕の途中にターゲットになるボーンかヌルかなにかを配置。
②肩ボーンの子供として肩ボーンの軸上、胸と腕の中間の位置に肩アーマーボーンを配置。
③肩アーマーボーンを先程のターゲットに向けてルックアットコンストレイント
④ルックアットコンストレイントのアップベクターは胸のボーンを指定

これだけ。
「胸と肩の途中の位置」から「上腕の途中の位置」に対して
ルックアットするので、必然的に肩と上腕の角度を加味した回転結果が得られます。
ポイントは「胸に対してアップベクターを設定」するところ。
180410_RIG_2b_RIGGING_201804141616114cb.jpg
これによって、「肩当ての内側」が常に胴体の方向を向くので、
腕を前に上げたときに肩当てがいい感じにねじれてスペースを作ってくれるのです。
先程の動画を見ると、腕を前に出したときに肩当ての内側が胴体の中心に向いてくれているのが
わかるかと思います。
SpaulderRig_1.gif
追記:もうちょっとわかりやすくするため画像を追加
180410_RIG_2c_upvector.jpg 
アップベクターによってアーマーの内側が体の中心に向く

●限界とその回避方法
もちろん、ある程度肩アーマーの形状や大きさ、体格によってうまくいかないケースも
あるかと思います。
また、完全にバンザイをさせた場合など、どうしてもめり込みが避けられない時もあります。
そういった時の対応のために、ルックアットをかけたボーンの子供として
手動で位置調整ができるボーンを用意しておいて、
そっちにメッシュのウェイトを振るようにしておくといいでしょう。

・バンザイした場合のめり込み
180410_RIG_4a_merikomi.jpg 
・調整ボーンで直した結果
180410_RIG_4a_adjust.jpg


  
●応用
このルックアットとアップベクターを使った技法はいろいろ応用が効いて、
ルックアットをかけるボーン、ターゲットとなるボーンの配置を変えることで
得られる角度や挙動が変わります。

・ツイストボーンへの応用
例えばルックアットをかけるボーンを限りなく腕ボーンに近づけていくと、
ほぼ腕ボーンと平行でありながら、アップベクターの働きで全く捻じれない挙動が得られます。
腕ボーンは好きなだけねじれるので、「捻れるボーンと捻じれないボーン」の組み合わせを得ることができ、その中間の角度を求めれば、中間の捻じれが得られます。
てなわけでまんまツイストボーンとして使えます。
3DSMAXのBipedの上腕ツイストはフリップすることが多いので、
この手法で代用することで回避できたりします。

・形状の違う肩アーマーへの応用
180410_RIG_5b_other_down.jpg
↑の例ではより水平に「肩に乗った」角度の肩アーマーになっています。
この形の肩アーマーの制御は正直ちょっと難しくて、ルックアットだけだとうまく行かず。
こっちの場合はむしろルックアットのかかった骨の回転値をエクスプレッションで拾って
調整しながら別の骨で肩アーマーを動かすようにすることで、いい感じになりました。
アップベクターのおかげで捻じれの回転が抑えられ、安定した回転の値が得られるので、
エクスプレッションによる制御にも対応しやすくなります。
180410_RIG_5a_other_up.jpg 

●まとめ
ルックアットコンストレイントとアップベクターはおそらくどんな3Dソフトにも
名前は違えど同じような機能があると思うので、
この手法はMayaでも3dsMAXでもBlenderでも、
どんな3Dソフトでもユニバーサルに応用できるかと思います。
加えてツイストボーンへの応用など、なにやらいろいろ拡張した使い方ができそうです。
個人的にはこの使い方を発見できたおかげでリギングで対応できる幅が一気に広がったので、
大収穫だと思っています。
(もちろん、本職のリギングアーティストからしたら失笑ものの基本テクだったりする可能性もありますが…。寡聞にして知らず…)

というわけでいかがだったでしょうか。
ルックアットコンストレイントみたいな基本機能でも応用次第でいろいろできるという
ことがわかり、リリングの奥深さを思い知った昨今です。
この記事がどこかで誰かの助けになっていたらこれ幸い。

●後記
肩アーマーはなんとかなって、あとは腰布の制御だな~。
左右の足がどんな角度になってもめり込まずに自然な角度になるように
制限をかけるいい方法はないものか…。(クロス制御以外で)
だれかいい案があったら教えてください。

ではでは~

プロフィール

JNY

Author:JNY
某ゲーム会社勤務
趣味と修行をかねて個人製作中
Softimage & Cgfx & Unity

最新記事
最新コメント
月別アーカイブ
カテゴリ
カウンター
twitter

Twitter Updates

    follow me on Twitter
    リンク
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。