ス ク ラ ッ チ す る D

blenderでモデリング、海外ドラマ感想、洋ゲーRPG、のことを綴ります

カスタムボーン(Auto-Rig Pro)

とりあえず、c_skull_03.x から頭髪ボーンを生やしてみた。

方式は一番目の「カスタムボーンを一つ以上選択してから、[Auto-Rig Pro: Export]パネルから[Set Custom Bones]ボタンを押す」でやってみた。この方式なら、頂点グループの名称をいちいち変更しないで済む。

コントローラーを親としたので、Export時には自動的にhead.xが親となった。

Unityのアセット上でFBXにカスタムボーンが含まれることを確認。
autorig09.jpg

余談ながら、Inspectorが勝手にロックされて、マテリアル画面が開かなくて焦ったりした。
スポンサーサイト



[ 2021/04/20 06:54 ] カスタムモデル | TB(-) | CM(0)

ARPへの新規追加ボーン

マニュアルの要約:

http://lucky3d.fr/auto-rig-pro/doc/auto_rig.html#adding-custom-bones
カスタムボーンを追加する場合、deforming bones(変形用ボーン)か controller bones(制御用ボーン)と接続させることが条件となる。reference bones(ガイド用ボーン)と接続させてはいけない。つまり、接続させるべきボーンとは、レイヤー番号31で表示されるものか、Match to Rig後に可視化されるものということだ。

「アーマチュア」レイヤーの補足:
    Layer 0: Main controllers(主制御用ボーン)
    Layer 1: Secondary controllers(補助制御用ボーン)
    Layer 16: Other picker bones
    Layer 17: Reference bones(ガイド用ボーン)
    Layer 31: Deforming bones(変形用ボーン)
    Others: For internal use only

新たにボーンを追加するには、Match to Rigをクリックした後、編集モードに入ってからボーンを追加する。

例えば、帽子のカスタムボーンを新設するならば、親ボーンは

c_head.x = head controller(頭部制御用)
head.x = deforming bone(変形用ボーン)

のどちらかとなる。なお、新規カスタムボーンの名称が既存のボーン名と同一であってはならない。スクリプトによる自動化を妨げてしまうからだ。

新規ボーンは、同一四肢におけるボーンの合間に挿入されてはならない。例えば、背骨1と背骨2の間にカスタムボーンが挿入されると、階層構造の順序が乱されて、リグを壊してしまう。

首―頭部―帽子、のようであれば問題ない。

http://lucky3d.fr/auto-rig-pro/doc/ge_export_doc.html#custom-bones
FBX Export時、新設されたボーンはデフォルトでは出力されない。したがって、カスタムボーンとしてリグに含まれるように、明示しておく必要がある。

方法は三種類ある。
  • カスタムボーンを一つ以上選択してから、[Auto-Rig Pro: Export]パネルから[Set Custom Bones]ボタンを押す。
    ※これは実質的に三番目を自動化させているに過ぎない
  • カスタムボーンの名称の冒頭に「cc_」を付ける(custom controllerの略称)。例:cc_sword
  • カスタムボーン毎にCustom Propertiesを追加して「cc」か「custom_bone」というタグを付ける。

カスタムボーンがFKボーンを親としていた場合、Export時にはdeforming bone(変形用ボーン)が自動的に親となる。

例えば、cc_watchがc_forearm_fkを親としている場合、Exportされたアーマチュアの末端である変形用ボーンのforearm_stretchが親になる。同様に、cc_hatが c_head.xを親としている場合、head.xが親になる。

直接のコントローラーを持たないIKチェインを用いる場合、forearm_stretchのような「_stretch」の付くボーンを直に親とすること。
[ 2021/04/20 05:26 ] カスタムモデル | TB(-) | CM(0)

ウェイトの塗り方

ウェイト調整で困る状況の例:
  • ボーンが複雑すぎて、どれを塗ればいいか分からない
  • 関節が三つ以上のボーンで分担されているとお手上げ
Auto-Rig Proの場合、レイヤー番号31をクリックすると、実体のボーンが色つき表示される(レントゲン、または前面表示ON)ので、その名前を表示させて覚えておく。このレイヤーがどれであるかは、ARPのマニュアルを参照のこと。矢印付きで図示されている。

ARPで対になるボーン(末尾.lは左半身の意味。右は.r)

肘曲げ内側のえぐれ
上腕  arm_stretch.l
前腕  forearm_stretch.l

肩と上腕のせめぎ合い
上腕・脇の下  c_arm_twist_offset.l
肩       shoulder.l

もも上げのお尻の下がり具合
尻  thigh_twist.l

膝曲げ裏側のえぐれ
太もも  thigh_stretch.l
スネ   leg_stretch.l

頭部を上下に向けた際の顎の伸び縮み
頭部・顎/頭髪  neck.x

ウェイトの塗り方(例は blender 2.79b)
※自己流のやり方であって、教科書で教えるような理路整然とした方法であることは保証しない。しかし、簡単なやり方だ。
  1. アーマチュアのボーンを動かして問題のポーズを取らせる。
  2. 編集したいメッシュを選んだら、[ウェイトペイント]モードにはいる。
  3. ツールシェルフ(左):[オプション]タブ>▼オプション>XミラーをON
  4. 変形を受けている頂点を見極める。
  5. 変形を修正したい頂点を選択する。
Tabキーを押すと[編集]モードになるので、頂点が選びやすい。不要なメッシュはHキーで隠しておくと見やすくなる。もう一度Tabキーを押すと[ウェイトペイント]モードに戻る。

Zキーを押すと別オブジェクトが消えて透視図風になり、ハッキリとわかりやすい。

下端の[頂点マスク]ボタンを押す。※[ペイントのマスク用の頂点選択モード(ウェイトペイントのみ)]のこと。
こうしておけば、選択済みの頂点にしか塗れない。

マスク状態でさらに頂点を選択/解除するには、Shiftを押しながら頂点をクリックする。

塗るのはマウスでよい。筆圧に感応するペンタブレットでない方がむしろ簡単。

ツールシェルフ(左):[ツール]タブ>▼ブラシ を参照
ウェイト:1.000 のまま
ブレンド:[減算]と[追加]しか使わない。さらに――適宜、変更するのは以下の二つだけ。
 半径=ブラシの大きさ(面積)
 強さ=塗るウェイト値への影響そのもの

塗りながら変形の具合が変化するのを見守る。
マウスで一回ずつクリックする。ちょっとずつ塗って、いい具合になったら塗るのを止める。影響が大きすぎるのならば、アンドゥして上述の[強さ]を低く設定しなおす。0.009くらいが最小の目安。
塗りすぎたと感じたら、ブレンドを正反対に切り替える。つまり、[減算]していたのなら、[追加]に。[追加]していたのなら、[減算]に。

便利機能
前述のように、Tabキーを押すと[編集]モードになることを活用する。それ以外にも:
プロパティ(右中央)から[モディファイヤー](スパナ印)を参照し、▽rig の横にある[眼]アイコンのON/OFFを切り替える。
これによって、レストポーズと現在のポーズとを瞬時に切り替えることができる。

段差がキツくなったら
なお、塗ったウェイトと既存のウェイトの境でポリゴンサーフェスにシワが寄ったり亀裂が入ったりすることがよくある。そんな場合は、そうした頂点を選び、

 ツールシェルフ(左):[ツール]タブ>▼ウェイトツール>[スムーズ]ボタン

を一、二回~数回押すと、くっきりした境目が幾分和らぐ。それでもなお目立つ場合は、再び塗り直す。
[ 2021/04/19 22:16 ] カスタムモデル | TB(-) | CM(0)

AスタンスをTスタンスにする

補足
アーマチュア任せで済むほど、モデルの完成度が高かったならばいいのだが、俺の場合はそうではなかった。したがって、肩の上面ポリゴンを整形してTポーズとした。

骨入れ――肩関節の位置決めでは、上腕が下ろされた状態で、もっとも見栄えがするように見当をつけた。

後ほど、ポーズをさせた際に直面する問題で、腕を万歳のように頭上に上げた状態での見栄えの悪さというものがある。

この場合、ポーズそのものにおいて、鎖骨から肩までを担当するボーン(c_shoulder)に角度が付かないと、肩幅のままバンザイする羽目となるので、妙な見掛けになる。

これを、首の付け根からY字のようにバンザイしてくれれば――つまり、肩幅が適正に縮まってくれたなら――比較的マシな見掛けとなるものなのだ。

ポーズで動くべき骨の問題があるので、一概にモデルのせいにはできないところが存在する。
[ 2021/04/19 20:58 ] カスタムモデル | TB(-) | CM(0)

UnityとUniVRMのインストール

Windows10を20H2にした時に環境をすべて失ったため、Unityをまた一からインストールしなくてはいけなかった。
  • 2021年4月現在、UniVRMの安定版はv0.66.0である。
  • UniVRMを使う際の、Unityの推奨バージョンはUnity-2019.4 LTSと書かれている。したがって、Unity LT版 2019.4.24f1 (64-bit)をインストールした。
UniVRMのページにある説明で、微に入り細に入りではないけれど、おおまかに分かる。
  1. FBXをドラッグ&ドロップしてImport。繰り返す内に、Inspectorの認識と挙動が怪しい時がある。
  2. 骨が自動認識されるので確認。spine_02.xだけ認識されなかったので指定し直す。
  3. マテリアルのシェーダ指定。既に行った指定をソースとして選ぶことができたりするけれども、推奨されないだろう。blender上でのマテリアル色が反映されているので、RGBとも1.0にしておくと省力できるが、複数選択が利くので、それほど面倒でもない。
  4. テクスチャ指定。◎みたいなボタン押すのね(ドラッグ&ドロップでもいいそうだ)。FBXの場所に、テクスチャをあらかじめ、コピーしておいた方がいい。
まごついた箇所:
  • ApplyしてもConfigureボタンを押せない時がある。
  • モデルの書き出し。prefabをシーンに展開しなくてもいいみたい。Configureの状態から書き出せる。
Configureを押した状態で、モデルの書き出しができる。
逆にシーンに配置した状態で書き出したモデルはビューワーで閲覧できないものとなった。

修正要件:
  • 親指の位置
    Configure時、Enforce T-Poseを行うと適正に調整される模様――親指以外は。わざわざ掌を真っ平らにしたが、これが仇となる。Rigifyの経験では五指でコントローラーが作られるようであり、ARPでも同様かと思ったが、さにあらず。親指は以前の状態のままでいけるようだが、「まだ駄目」と言われる。
  • サイズ(スケール)
    現在の状態では大き過ぎだと思われる。Apply時にScaleを0.5にすると想定内に思われる。適正な大きさの基準は何だろうか。仮想の単位とcmとが対応するようだが、指定場所と定義がわからない。blenderのユニットはスケール1とARPから決められている。単位指定はメーターにしておくべきか?
  • spine_02で回転する際、胸の変形が酷い。
    ボーンの位置かupper_chestを考えた方がいいのかもしれない。
[ 2021/04/19 20:16 ] カスタムモデル | TB(-) | CM(0)

FBX Exportすると、メッシュの左膝の座標がおかしい?

前段:
c_leg_pole.l(r)の角度が左右で異なることに気が付いた。ここを弄った覚えはない気もするが……どうだったろうか?

別に値がどうであろうとも、ポーズに影響は出ていないし、コントローラー自体の位置もおかしくはない。コントローラーの球体の向きが左右で等しくない、というだけの話だ。

この角度、Alt+RやAlt+Gでは戻らない。理由はトランスフォームの[回転]がロックされているためだ。このロックを解除して、Alt+Rしてやるとコントローラーの球体がきちんと正対する。

問題発生
FBX Exportしたものを、試しにblenderでImportしてみると、メッシュの膝の位置が左右で異なる(左側が内股っぽく見える)
autorig06.jpg

平行投影の側面を見ると気が付くのだが、問題の頂点ではY,Z座標は正しくミラーされているのだ。正面から見た図、つまりX座標だけズレているのである。

Export前の状態をリグ、メッシュとも確認したが、おかしくなりそうな要因を発見できなかった。生成されたc_leg_pole.lのデフォルトの角度が0でないことと関係があるのだろうか?

バグっぽい挙動なので、blender v2.83で同じファイルを開き、ARPの指示通りにUpdateした上で、FBX Exportしてみることにした。
→結果、正常に出力される。

ちなみに、生成されたc_leg_pole.lのデフォルトの角度もきちんと0になっていた!
autorig07.jpg
今回の件と関係あるかどうかはともかく。

余談:
2.83だとポージングで重いと前のエントリーで書いた。細分割曲面モディファイヤーを適用後の状態でポージングしてみたところ、まるで重くなかった。

legacyオプションに気になる文言を見つけた。もしかすると、旧Verでシンメトリーで出ないことがあってもフツーなのかも?
autorig08.jpg
[ 2021/04/19 00:48 ] カスタムモデル | TB(-) | CM(0)

Auto-Rig ProでのFBX出力

●パーツの分け方(参考程度に)

hair 頭髪のメッシュ
teeth 歯のみ
tong 舌のみ
eyes 瞳のみ(板ポリ)
body(facialなしの顔面+体)
予備(facialのみの顔面、体なし)

頂点グループ
例えば、歯ならteethという名前で分類できるので、そのオブジェクトがteethのメッシュだけなのであれば、それ以外の関係ない頂点グループは削除してもいいと思われる。舌、瞳、頭髪も同様。ただし、例外として、epaules_bend.x は残しておく(頭部には1.0のウェイトが付いている)。

facialを付けた顔面には、teethやtongのウェイトが歯や舌以外にまで及んでしまったりするので、不要な頂点グループは意図的に削除してかまわないと思われる。

結合するか否か
複数のオブジェクトにまたがっている場合、Exportに当たって結合してもかまわないと思われる。Import先の都合による。

●FBX Export

細分割曲面モディファイヤー
適用前の細分割曲面が混在している場合、出力後では多重にかかる(※)ようなので、Export前に適用するのがよい。※最も細かい網目になるように自動調整されるようだ。

結果として出力されるウェイト
肘関節や肩関節などデリケートな部分は、細分割曲面の適用によって、ウェイトのかかり具合が調整時(適用前)と異なってしまう場合もある。適用後に点検して再調整するしかないようだ。

 肘関節内側 forearm_stretch.l [追加|減算]ペイント
 肘関節内側 arm_stretch.l [追加|減算]ペイント
 上腕 c_arm_twist_offset.l [追加|減算]ペイント
 肩 shoulder.l [スムーズ]など

マテリアル色
マテリアルの色味がデータとしては保存される。テクスチャの色味に影響させたくない場合、白(RGBとも1)にしておく。

重い?
ちなみに俺はblender 2.79bでAuto-Rig Proを動かしている。2.83上ではポージングの描画が遅すぎて編集には向かない。Ryzen 5900Xでも入手できたら、2.83で試す価値はありそうだ。
[ 2021/04/18 20:12 ] カスタムモデル | TB(-) | CM(0)

Auto-Rig Proでの眼

俺が、佐渡渡さん他で採用している方法は:

 くぼみの白目を作り、瞳の板ポリを浮かす……というもの。

Auto-Rig Proが想定しているのは眼球――文字通りの球である。

ここに無理矢理、二次元方式をねじ込むわけだが、MMDで実現しているのと同じものが再現できればいい。要するに、瞳を動かすためのボーンだけあればOK。

Reference Bonesのfacialに☑を入れ、出てきたガイドで位置決め。
眼だけのメッシュ(瞳の板ポリ)にバインド。
頂点グループにfacial関連が追加される。

 左目は c_eye.l
 右目は c_eye.r
にそれぞれウェイト1.0で割り付け。とりあえず、これだけで眼が動くようになる。

眼の回転軸は、eye_offset_ref.l(または.r)のヘッドとテールの位置で決まる。
眼を上下左右に回転させた時に、顔面にめり込む場合は、回転軸の位置を工夫する。テールを固定したまま、ヘッド(くさび形の尖っていない方)を短くすると、軸が浅くなるため、めり込みにくくなる。さもなくば、瞳の板ポリをやや奥まった位置へ移動させて対処する。
[ 2021/04/18 02:51 ] カスタムモデル | TB(-) | CM(0)

Voxel Heat Diffuse Skinningで生まれ変わった佐渡渡さん

voxelskinning01.jpg

Voxel Heat Diffuse方式で、かなりいいところまでウェイトがつくので、あとの調整がめっちゃラク。はやく試せば良かった。Blender FoundationはAuto-Rig Proと共に、ライセンスを買い取って実装すべき。
[ 2021/04/17 19:30 ] カスタムモデル | TB(-) | CM(0)

MMDからVRMへ(blender)

【概要】
MMD用として作成済み(もしくはフィニッシュ前)のモデルをVRMへ転用できる体裁に整える。
※VRMへ転用=FBXフォーマットでExport後Unityで加工

前提:
  • MMD用としてExportできる直前まで完成している。
  • MMD用のリグは捨て去り、Auto-Rig Proで新設する。
  • ウェイト付けはVoxel Heat Diffuse Skinningで行う。
    ※Auto-Rig Proは有償のリグ(40ドル)
    Voxel Heat Diffuse Skinningも有償(30ドル)
    これらを使うと骨入れ及びスキニングを大幅に省力化できる。
手順:
  1. AスタンスをTスタンスにする
    autorig01.jpg
    MMD用のアーマチュアを使って腕ボーンを水平まで回転する。

    掌を平ら(※)にして、親指の開き具合を(上から見て)45度に。
    ※つまり、机に掌をピタッと押しつけた時のような状態にする。
    autorig02.jpg

    ボディメッシュにアーマチュアモディファイヤーを適用した上で、
    ポーズモード:ポーズ>適用>デフォルトのポーズに適用

    ボディメッシュの頂点グループをすべて削除。
    アーマチュアとの親子関係を解除したボディメッシュをAuto-Rig Proへ。

    【ポイント】
    同じリグで作成されているコスチューム複数を一括してポーズ変換するべし。

  2. Auto-Rig Proのリグを仕込む
    割愛(マニュアル参照のこと)
    肘と膝は完璧に伸びきった状態(直線)ではなく、関節をごく浅く曲げた状態で再現する(曲がる側を明示するため)。
  3. autorig03.jpg

    autorig05.jpg

  4. Voxel Heat Diffuse Skinningを利用する
    両手指~両手首のウェイトを保護するために、編集モードであらかじめ頂点を選択しておく。
    太ももの付け根付近で、内股の箇所もまた正反対のウェイトが付きやすい(※)ため、ここも保護。
    ※左太ももの場合なら、右太ももの影響を受けてしまう。

    専用パネルを出すには、[オブジェクト]モード(※)で、ボディメッシュとアーマチュアを(可視状態にした上で)一度に選択する。
    3Dビュー>ツールシェルフ>[アニメーション]タブ内にパネルが現れる。
    ※バインド後のアーマチュアは[ポーズ]モードになっているので、オブジェクトモードに直さないとパネルが表示されない。
    Voxel Resolutionはデフォルト値よりも高め(160~256)にすると分解能が増してよさげ。
ウェイト調整

主に、脇の下、股の付け根、尻を修正する。本体が四肢による変形を受けにくくなるようにウェイト値を調整する。
autorig04.jpg

具体的には、変形を受けている頂点を複数選択し、選択済み頂点のみにペイントがかかるようにマスクする。この状態で、影響を及ぼしている[頂点グループ]を選択し、ペイントしていく。

オプション:XミラーをON
脇の下の頂点グループ c_arm_twist_offset.l を[減算]でペイント(やり過ぎた場合は、[追加]でペイントして戻す)
尻の頂点グループ thigh_twist.l を[減算]でペイント(同上)

頭部を上下に向けた時に顎が伸びるのを防ぐ:
頭部・顎/頭髪 neck.x [減算]ペイント

肘を曲げた時にえぐれ過ぎないようにする:
肘関節内側 forearm_stretch.l [追加]ペイント
肘関節内側 arm_stretch.l [追加]ペイント

脇の下と上腕の変形は上腕がめり込み過ぎるようだ。腕の付け根側の変形がもっと欲しい。
変形させたい頂点を複数選択しておき、頂点グループ c_arm_twist_offset.l を選んでから、ツールシェルフ>[ツール]タブの[スムーズ]を実行。複数選択した頂点はそのままで、頂点グループ shoulder.l に選び直してから、[追加]でペイント。強さは0.009くらいで、頂点一つに対してマウスでじわじわと塗りつつ、変形の具合を確かめながら行う。

【ポイント】
基本となるボディにウェイトを付けて完成させる。
ボディのウェイトを流用可能とし、後にコスチュームへ転送させる。もしくは、Voxel Heat Diffuse Skinningをコスチュームのメッシュに対しても実行する。
[ 2021/04/17 16:27 ] カスタムモデル | TB(-) | CM(0)

最近の成果

脇の下ができました。
なんてことないように見えますが、細分割曲面モディファイヤーで作るとけっこう苦労します。自動的に中間で割られたエッジのウェイトを制御する術がないので。
Kahorun脇2

[ 2021/04/12 13:26 ] カスタムモデル | TB(-) | CM(0)

新キャラ

Shihotan01.jpg
[ 2021/04/10 19:49 ] カスタムモデル | TB(-) | CM(2)

日間2位頂きました!

ありがとうございます。オリキャラで2位は自己新記録。
もっとも、エイプリルフール企画なので、消すのが惜しいですが。
4月2日ランキング
[ 2021/04/02 06:02 ] カスタムモデル | TB(-) | CM(0)
カレンダー
03 | 2021/04 | 05
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
月別アーカイブ
全記事表示リンク