広告
広告

関節のボーンとポリゴンフローに関するTIPS

カテゴリ:blender

目次

ローポリハイポリ共通

ボーンのローカル回転軸をそろえる

アーマチュアの『体積を維持(Preserve Volume)』オプションを使う

Pose Shape Keys アドオンを使う(3.1)

補助ボーン

補助ボーンを使う

ボーンの影響力のブレンド

補助ボーンを回転量に応じて動かす

前腕

前腕のポリゴンを 90° ひねる

前腕のボーンを分割する

前腕に補助ボーンを仕込む

前腕のねじれの問題

関節

関節を少し曲げた状態でモデリングする

シェイプキーを使ったポリゴンの補正

関節を曲げたときに丸くなりすぎる場合

2重関節ボーン

ボーンずらし

ローポリ

天球体を作る

ポリゴンベルトを作る

関節の曲がる側のポリゴンを少なく、伸びる側のポリゴンを多くする

メッシュの貫通が前提の場合

頂点の位置にボーンを置く

ハイポリ

メッシュが太い時はサンドイッチボーンの使用を検討する

ボーン変形の補助としてシェイプキーを使う

ローポリハイポリ共通

ボーンのローカル回転軸をそろえる

ボーンのローカル回転軸が統一されていない場合、ひじは X 軸で回転し、ひざは Z 軸で回転するというようなことが起こる。また回転軸がずれていると回転軸を指定した回転で自然な方向に曲がらないことがある。詳細はボーンのローカル座標軸設定を参照。

アーマチュアの『体積を維持(Preserve Volume)』オプションを使う

アーマチュアの『体積を維持(Preserve Volume)』にチェックを入れると、関節部分の沈み込みを低減できる。これにはデュアルクォータニオンが使われている。デュアルクォータニオンの技術的な詳細についてはデュアルクォータニオン徹底解説を参照。

ただし大抵のゲームエンジンはデュアルクォータニオンに対応してないのでゲームエンジンで使用するモデルの場合は『体積を維持(Preserve Volume)』は使わない。

pv location
no pv
Preserve Volum なし
pv
Preserve Volum あり

Pose Shape Keys アドオンを使う(3.1)

関節を曲げたときのポリゴンの補正にシェイプキーを使うと依存性の問題が発生する。シェイプキーで補正した後にウェイトやコンストレイントのパラメータを調整すると、シェイプキーも修正しなければならない。

Pose Shape Keys アドオンはウェイト調整後のメッシュを保存しているため、シェイプキー補正後でもウェイトやコンストレイントのパラメータを調整できる。

外部リンク

Rig with Shape Keys Like Never Before!

補助ボーンを使う

動かさない補助ボーンは意味がない。動かさない補助ボーンはウェイトを適切に設定することで、削除できる。

ボーンの影響力のブレンド

補助ボーンに影響力(Influence)を弱めたチャイルドコンストレイント(Child of)や回転コピーを追加すれば、ボーンの動きに少しだけ追従する動きを実現できる。

weak influence of child of
動作デモ

正座したときに関節がつぶれるのを防ぐ目的で、膝によく配置される。

knee aid
膝の補助ボーン

補助ボーンを回転量に応じて動かす

関節の補助ボーンリグ

demo
動作デモ

前腕のポリゴンを 90° ひねる

手をモデリングするとき、たいていは手のひらが下を向いた状態でモデリングされる。この状態の時、前腕はほとんど限界まで回転された状態だ。そこで前腕をあらかじめひねった状態でモデリングしておくと、前腕を逆回転させたときにポリゴンフローが自然になる。

実際はある程度モデリングした後に 90° ひねることが多い。これはプロポーショナルエディットを使えば簡単にできる。この後で最終的な修正を入れる。

twist arm
プロポーショナルエディットで腕をひねる

なぜ前腕可動域の中間をレストポーズにしないのか

ボーン可動域の中間をレストポーズにするのがセオリーだ。前腕の場合は、手のひらを前面に向けた状態だ。しかしそのポーズをレストポーズにすることはほとんどない。

front hand
手のひらを前に向けたレストポーズ

手のひらを前面に向けた状態は腕をおろしたポーズで問題になる。手のひらを前に向けた状態で、腕を下げひじを 90° 曲げると手の平は上を向く。この状態で手を下に向けようとすると、前腕を 180° 回転させる必要がある。それに対し手のひらを下に向けたレストポーズならば 90° の回転で済む。

front hand bend
腕をおろしてひじを 90° 曲げた状態

前腕のボーンを分割する

前腕を一本のボーンで表現すると、手を180度反転させるときに手首がねじれてしまう。人間は手を180度反転させるとき、腕をひねっているのであって手首を回転させているわけではない。

subdivide forarm
前腕のボーンを分割する

Blender だけで使うなら、Bendy Bones を使えばボーンを分割する必要はない。

前腕に補助ボーンを仕込む

ゲームエンジン等にエクスポートして使う場合、前腕を分割したくない。その場合は、前腕に位置に補助ボーンを配置する。この補助ボーンは前腕の子にする。そして回転コピーコンストレイントで手のローカルY軸回転をコピーする。ゲームエンジン側でも回転コピーコンストレイントを設定する。

aid2
前腕の位置に配置された補助ボーン

前腕のねじれの問題

アーマチュアモディフィアの「体積の維持」オプションを使えば解消できる。ゲームエンジンでもデュアルクォータニオンを使ってスキニングすれば、似た結果が得られる。

関節を少し曲げた状態でモデリングする

可動範囲の中間をレストポーズにすると、ウェイトをつけやすい。詳細はAポーズとTポーズを参照。

シェイプキーを使ったポリゴンの補正

シェイプキーを使って関節のポリゴンを補正する場合は、曲がる側の関節部分の頂点のウェイトを上腕に多く振っておくとうまく動かしやすい。

weight
曲げられる側の関節部分の頂点のウェイトを上腕に多く振っておく
demo
左側が上腕ウェイト、右側が上腕と前腕とが 50:50 のウェイト

.blend ファイルダウンロード(2.81)

関節を曲げたときに丸くなりすぎる場合

肘や指を曲げたときに丸くなりすぎるときは関節位置を外側へずらすことで解消できる。ひざでこれをやると不自然になるので、ひざの場合はひざの裏側に寄せた位置に関節を配置する。

elbow-joint
関節位置を外側へずらす

2重関節ボーン

関節位置に小さい補助ボーンを入れると関節を滑らかに曲げやすい。

dual bone
関節位置に小さい補助ボーンを入れる

IK を設定するときは剛性(Stiffness)を設定して曲がりすぎないようにする。

set stiffness
補助ボーンの次のボーンにStiffness(剛性)を設定

Unity での設定はコンストレイントを使った二重関節を参照。

ボーンずらし

ボーンの親子関係は保持したまま接続を解除し、子ボーンを手前に配置する。こうすると回転軸が手前側に移動しポリゴンの沈み込みが目立たなくなる。

no offset
ずらしなし
offset
ずらしあり

接続のみを解除するにはエディットモードで Connected のチェックを外す。

unconnect

ローポリ

天球体を作る

天球状にポリゴンを張ると輪郭部分の分割数が実際のポリゴン数よりも多く見える。これは関節の伸ばされる部分や球状の部位でよく使われる。以下の場所で天球体がよく利用される。

  • ひじ・ひざ
geosphere
左:天球体右:UV球

グリッドを天球状に変換するのは簡単だ。ポリゴンラインをひとつ飛ばしに選択して半グリッド移動する。後は三角化(trianglate)するだけだ。

create
グリッドを天球状に変換

ポリゴンベルトを作る

肩や股関節は3軸で回転するので、変形させたい場所にベルト状にポリゴンを作る。このベルト状のポリゴンは分割しないほうがいいのだが、尻の場合は大きく引き伸ばされるのでいくつか分割を入れる。また腕を肩以上に上げないときは肩も分割できる。

front
正面図
back
背面図

.blend ファイルダウンロード

外部リンク

遊戲模型佈線對動作變形之影響(2-2)-肩膀篇――肩のエッジループの解説

関節の曲がる側のポリゴンを少なく、伸びる側のポリゴンを多くする

Loop cuts for animation

そもそも関節の曲がる側がへこむのはそこに頂点があるからだ。なので曲がる側に頂点を配置しなければへこむことはなくなる。

関節の曲がる側のポリゴンを少なく、
伸びる側のポリゴンを多くする
demo
動作デモ

伸びる側の分割は辺を選択してべベルを使えば楽にできる。べベル中にホイールスクロールでべベル数を変更できる。曲がる側は頂点を選択して GG で辺に沿って頂点を移動

bevel
伸びる側の分割

これは尻も同じで、尻の分割数を多くして、前の太もものポリゴンを少なくする。

hip

斜め配置の例

肘側の頂点が移動するのを見越して、関節ポリゴンを斜め配置する方法がある。VRoid がこの方法を採用している(2022年現在)。

straight
上面図。赤のラインが関節ポリゴン
front
正面図
bend
上面図。曲げた状態

外部リンク


メッシュの貫通が前提の場合

メッシュの貫通が前提の場合は、曲がる側の間隔を狭くすることで、沈み込みを低減できる。

penetration
曲がる側の間隔を狭くする

曲げたときにできる影はシェーディングで対処する。

bad shading
貫通させたことでできる影

頂点の位置にボーンを置く

関節の曲がる側のポリゴンを少なくしたときは、伸びる側のポリゴンの分割数が増えている場所にボーンを置く。そうしないとポリゴンがきれいに移動しない。

pivot

ハイポリ

メッシュが太い時はサンドイッチボーンの使用を検討する

頂点とボーンとの間に距離があるとボーンを少し回転させただけでも頂点が大きく動き、ウェイト付けが大変になる。そこでボーンを挟む形で補助ボーンを配置すれば、ボーンを回転させたときの移動量を減少させられる。このとき中央にある IK/FK 用ボーンはデフォームに使わなくてもいい。

sandwich location
サンドイッチボーンの配置

サンドイッチボーンにはストレッチする IK がついており、自動で伸縮する。

setting
サンドイッチボーンの設定
demo
動作デモ

サンドイッチボーンの .blend ファイルダウンロード

ボーン変形の補助としてシェイプキーを使う

Blender でドライバーを使う

ひじの回転に合わせて上腕二頭筋が隆起する
ひじの回転に合わせて上腕二頭筋が隆起する

外部リンク

Optimizing topology for a game Character: Creating a humanoid game character for animation

Limb Topology

GUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPS

指のトポロジーを解説しているページ(英語)

【クラウディア】ができるまで③ モデリング 体 前編

補助ボーン覚書

スキニング考察

遊戲模型佈線對動作變形之影響(1)-手肘膝蓋篇

関連記事

ウェイトペイントのTips

Blender 記事の目次


広告
広告