【箱うし本】STAGE 3-1(後編) 人型キャラクターにボーンを入れてみる
LESSON-14、人型キャラクターにボーンを入れる
今回はキャラクターに1からボーンを入れていく。
今回使うのはこちらのモデル、白くまかな?
まずはボーンを作る
アーマチュアを追加して、前面に表示されるようにした。
1本目を腰のボーンとして、位置と大きさを整える。
それから押し出しを繰り返して頭までのボーンを作った。
正面からの視点でボーンを作ったら、横からY軸方向の位置を整える。
お次は腕のボーン。
手のボーンはこんな感じになりました。
こうすることによる効果は、ちょっとよくわかってない。
脚のボーンを作る。
腰ボーンから押し出しでボーンをつなげていって、
視点を変えながら位置を整える。
ボーンの命名と対称化
ボーンの名前を変更する。腰のボーンは「Hip」、頭なら「Head」というように。
次に行う対称化の準備も兼ねて、オートネーム(左右)という機能を使う。
左側に位置するボーンなら「.L」、右側なら「.R]が、
それぞれのボーン名の末尾に自動で付け加えられるみたい。
そしてここまでで腕や脚のボーンは片側しか作らなかったんだけど、
対称化(Symmetrize)をすることによって、自動で足りない部分を追加して左右対称の状態にすることができる。
このようになった。
これでボーンができあがり。
アーマチュアをペアレントする
まずは自動のウェイトでペアレントをしてみる。
それとボーンを使ってキャラクターを動かす準備として、2点ほど設定を変えた。
1つはキャラクターに付加されているモディファイアの順番。
今作ったアーマチュアと、サブディビジョンサーフェスの2つのモディファイアが付いているので、
アーマチュア(ボーン変形)→サブディビジョンサーフェス(ポリゴン細分化)の順で反映されるようにする。
もう1つはアーマチュアモディファイアのプロパティにある、「体積を維持」の有効化。
ウェイトの不具合を洗い出すために、ぐにぐに動かしてみる。
このキャラクターモデルに自動でウェイトを付けたときに現れる問題点は、
・腕を上下させると肩や脇にも影響が出てしまう
・顔を横に向けると目や鼻の位置がずれてしまう
主にこの2点を修正していく。
補助ボーンで変形を修正する
ここでは、
・腕を上下させると肩や脇にも影響が出てしまう
というところを修正する。
この不具合に対しては、ウェイトペイントより補助ボーンを追加したほうが楽、らしい。
4つの補助ボーンを追加した。
オフセットを保持してペアレントをしてある。
自動ウェイトを付け直す。
補助ボーンを作ったことで、肩周りがきれいに変形するようになった。
ウェイトペイントで変形を修正する
・顔を横に向けると目や鼻の位置がずれてしまう
これはウェイトペイントで修正する。
手順としては、
1.頭部の頂点をすべて選択し、
ObjectDataPropertiesから、ウェイト1.0で「Head」頂点グループに割り当てる。
(っていうことで合ってるかな??)
2.手順1によって複数の頂点グループに属することになった頂点はウェイトの合計が1.0を超える。
ウェイトペイントモードで[ウェイト]-[すべて正規化]することで「Head」以外のウェイトを0にすることができる。
3.[ウェイト]-[クリーン]([使用部分:All-Group])
これによって、「0」のウェイトを各頂点から削除する。
4.ウェイトペイントのブラシ操作で首付近のウェイトをなだらかにする。
こんな感じだろうか。
操作自体は本に細かく書いてあるのだが、頂点グループの仕組みとかが微妙に飲み込みきれてない。
箱うし本を少しさかのぼってみると、頂点グループについて
([ペアレント]-[自動のウェイトで]によって)ボーンの名前と一致した頂点グループが作られます。頂点グループごとに、同じ名前のボーンが動かせる影響力を、各頂点ごとに「0.000」~「1.000」のウェイトとして設定されています。
頂点グループを使用して自分でウェイト値を設定するには、(中略)頂点グループを追加し、名前をダブルクリックしてボーン名と同じ名前に変更、オブジェクトを編集モードにして頂点を選択したら、[ウェイト:]の値を決めて[割り当て]ボタンを押します。
と書いてあった。
これを今回の作業内容と照らし合わせると、頂点グループとウェイトの仕組みがまあまあ理解できる、気がする。
そんなこんなで修正後。無事、鼻が顔から剥がれることはなくなった。
スムーズ(修正)モディファイアを使う
スムーズ(修正)モディファイアは、必須ではないけど見栄えを良くする調整に便利な機能、とのこと。
ボーンによる変形後の形をなめらかにするモディファイア、なのかな?
使う上でのポイントは、
・モディファイアの順序を[アーマチュア]の直後にする。(他のモディファイアをはさんで頂点数が変わると無効になる)
・設定によって指定の頂点グループにのみ効果を反映する、あるいは指定した頂点グループ以外に効果を反映することができる。
(今回は効果をかけたくない部分のみウェイトをつけた新しい頂点グループを作った)
っていうことなのかなーと思ったんだけどなんか間違ってたら嘘言ってすみません。
頂点グループ「Group」を除外する設定。
比較のために左右でモディファイアを一部かけないかどうかを変えてみた。
肩は確かにスムースをかけないほうがしっかりしてるかも。
膝はちょっと良し悪しがわからない、ウェイトの塗り方でも変わってくるとは思うけど。
回転軸を限定する
これはかなり大事な設定だと思う。
肘や膝など、曲がる方向が決まっている関節のボーンに対して、
回転軸を限定することでおかしな方向へ曲がらないようにする。
自分の場合はボーンを押し出しで作ってる段階で、ボーンがくるくる回ってしまっていた。
なのでこれをまっすぐに戻してみた。
回転軸が一番わかりやすい肘関節。ほぼ一方向にしか曲がらないもんね。
今回の場合はz軸方向にだけ曲がればいいので、xとyの回転をロックする。
ひざなど、他の関節でも適宜回転軸をロック。
手首、ねじれちゃうね。
作業は一通り終わったんだけど、今回のやり方だとここが一番気になるところかもしれない。
今回作ったアーマチュアだと、前腕をひねる動きが再現できていない。
手首を180°回しただけで、手首付近だけが極端にねじれてしまうのだ…
これを解消する方法もあるはずなので、またの機会に勉強しよう。
あと、今回はボーンの回転軸を限定するやり方を覚えたけど、
さらにボーンの回転する範囲を限定することってできるのかな……?
それができたらポージングやアニメーションが捗る気がする。