関節のボーンとポリゴンフローに関するTIPS
目次
ローポリハイポリ共通
アーマチュアの『体積を維持(Preserve Volume)』オプションを使う
補助ボーン
前腕
関節
ローポリ
関節の曲がる側のポリゴンを少なく、伸びる側のポリゴンを多くする
ハイポリ
ローポリハイポリ共通
ボーンのローカル回転軸をそろえる
ボーンのローカル回転軸が統一されていない場合、ひじは X 軸で回転し、ひざは Z 軸で回転するというようなことが起こる。また回転軸がずれていると回転軸を指定した回転で自然な方向に曲がらないことがある。詳細はボーンのローカル座標軸設定を参照。
アーマチュアの『体積を維持(Preserve Volume)』オプションを使う
アーマチュアの『体積を維持(Preserve Volume)』にチェックを入れると、関節部分の沈み込みを低減できる。これにはデュアルクォータニオンが使われている。デュアルクォータニオンの技術的な詳細についてはデュアルクォータニオン徹底解説を参照。
ただし大抵のゲームエンジンはデュアルクォータニオンに対応してないのでゲームエンジンで使用するモデルの場合は『体積を維持(Preserve Volume)』は使わない。



補助ボーンを使う
基本的なボーンだけでうまくスキニングできないときは補助ボーンを配置する。補助ボーンは肩甲骨・脇・胸・股間・骨盤・関節の位置によく配置される。
ボーンの影響力のブレンド
補助ボーンに影響力(Influence)を弱めたチャイルドコンストレイント(Child of)や回転コピーを追加すれば、ボーンの動きに少しだけ追従する動きを実現できる。

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

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

前腕のポリゴンを 90° ひねる
手をモデリングするとき、たいていは手のひらが下を向いた状態でモデリングされる。この状態の時、前腕は限界まで回転された状態だ。そこで前腕をあらかじめひねった状態でモデリングしておくと、前腕を逆回転させたときにポリゴンフローが自然になる。
実際はある程度モデリングした後に 90° ひねることが多い。これはプロポーショナルエディットを使えば簡単にできる。この後で最終的な修正を入れる。

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

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

前腕のねじれの問題
アーマチュアモディフィアの「体積の維持」オプションを使えば解消できる。ゲームエンジンでもデュアルクォータニオンを使ってスキニングすれば、似た結果が得られる。
関節を少し曲げた状態でモデリングする
可動範囲の中間をレストポーズにすると、ウェイトをつけやすい。詳細はAポーズとTポーズを参照。
シェイプキーを使ったポリゴンの補正
シェイプキーを使って関節のポリゴンを補正する場合は、曲がる側の関節部分の頂点のウェイトを上腕に多く振っておくとうまく動かしやすい。


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

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

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

Unity での設定はコンストレイントを使った二重関節を参照。
ボーンずらし
ボーンの親子関係は保持したまま接続を解除し、子ボーンを手前に配置する。こうすると回転軸が手前側に移動しポリゴンの沈み込みが目立たなくなる。


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

外部リンク
前に色々あって消しちゃった奴だけどもう一度投稿。ローポリ関節の基礎的な技法 pic.twitter.com/TlfbC4YqQU
— TAISA@Vket3ネオ渋谷Error (@TAISA_3D) March 19, 2019
ローポリ
天球体を作る
天球状にポリゴンを張ると輪郭部分の分割数が実際のポリゴン数よりも多く見える。これは関節の伸ばされる部分や球状の部位でよく使われる。以下の場所で天球体がよく利用される。
- ひじ・ひざ
- 肩
- 頭
- 頬
- 胸
- 尻

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

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


外部リンク
遊戲模型佈線對動作變形之影響(2-2)-肩膀篇――肩のエッジループの解説
関節の曲がる側のポリゴンを少なく、伸びる側のポリゴンを多くする
Loop cuts for animation
そもそも関節の曲がる側がへこむのはそこに頂点があるからだ。なので曲がる側に頂点を配置しなければへこむことはなくなる。

伸びる側のポリゴンを多くする

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

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

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

背面法を使う場合の関節のポリゴンフロー
ポリゴンの分割はこんな感じ。 pic.twitter.com/exGghsZNXC
— まじかる☆しげぽん@VRoid (@m_sigepon) 2018年11月4日
ハイポリ
メッシュが太い時はサンドイッチボーンの使用を検討する
頂点とボーンとの間に距離があるとボーンを少し回転させただけでも頂点が大きく動き、ウェイト付けが大変になる。そこでボーンを挟む形で補助ボーンを配置すれば、ボーンを回転させたときの移動量を減少させられる。このとき中央にある IK/FK 用ボーンはデフォームに使わなくてもいい。

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


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

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