This commit is contained in:
syui 2025-02-28 14:29:17 +09:00
parent f1c2b6b236
commit 4c253d0d94
Signed by: syui
GPG Key ID: 5417CFEBAD92DF56
5 changed files with 62 additions and 29 deletions

View File

@ -37,7 +37,7 @@
* [dragon ik plugin](plan/06_dragonik.md)
* [unity](unity/README.md)
* [blender](blender/README.md)
* [シェイプキーを使う](blender/01_model.md)
* [素体を作る](blender/01_model.md)
* [衣装を着せる](blender/02_costume.md)
* [vrmで統合する](blender/03_vrm.md)
* [issue](issue/README.md)

View File

@ -1,23 +1,50 @@
# シェイプキーを使う
# 素体を作る
素体を作ります。色々と探したのですが、なかなか納得するものが見つかりません。できる限り現実に近いものを目指します。
素体を作ります。できる限り現実に近い再現を目指します。これを`gender system`と呼び、わかりやすくいうとキャラクターの性器システムです。
今回は、Aモデル(vrm)とBモデル(部位)の統合をblenderで行います。統合したものをvrmにexportして、ueでimportします。Bモデルにはシェイプキーを設定しているので、ueではモーフターゲットとして動かせるようにします。
blenderのexportやueのimportは注意が必要です。`VRM MToon`, `ペアレントで[Body]頂点`, `UVMap`, `シェイプキーをSKkeeperで上書き`が必要でした
ueで動かすにはmaterialに`VRM MToon`を使うこと、`UVMap`の名前に設定すること、`vrm0`を使うこと、データ転送で`頂点`を設定することが大切です。使用する[addon](/blender/)を確認してください。今回使用するのは、vrmをimport, exportするaddonだけです
使用する[addon](/blender/)を確認してください。
## vroidの設定
1. まずBモデルをblenderで読み込み、いらないものを削除します。vrmを読み込むaddonが必要です。
2. materialに`VRM MToon`を設定します。ueでimportする際にcrashします。
3. dataのUVマップに`UVMap_xxx`となっているときは名前を`UVMap`にします。色がおかしくなります。
4. 編集モードでBモデルを膨らませます。これは頂点を選択して[G]を押します。
5. addonの`SKkeeper`を使い、オブジェクトメニューからapply modifyを選択します。追加モデルのmirrorやkeyをまとめます。これをしないとvrmにexportできません。
6. 次にAモデルの編集です。いくつかの面を削除してBモデルをくっつけても違和感ないようにします。
7. トランスフォームのペアレントで`[Body]頂点`を選択します。G, [y, z, r]などを駆使して位置調整してください。
素体はvroidをベースにします。つけている衣装を全部はずします。そして、パンツなどもテクスチャを削除しておくと素体の完成です。
> シェイプキーをueで使うには、objectを元の構成に再統合してください。
## materialの設定
ペアレントは正しく設定されるときもあればズレることもあります。同じファイルをvrmにexportしても結果がその都度異なります。また、モーフターゲットが正しく反映されないこともあります。
vrmをblenderで読み込みます。
私は`[Armatrue]ボーン(hip)`につけることで設定しました。しかし、ueで読み込んだとき少し下に表示されるので、これ自体をずらした位置で調整し、ueで確認する必要がありました。
1. Bモデルのmaterialに`VRM MToon`を設定します。ueでimportする際にcrashします。
2. dataのUVマップに`UVMap_xxx`となっているときは名前を`UVMap`にします。色がおかしくなります。
## 基本的な編集(移動、削除、位置)
1. Bモデルを正しい位置にセットします。[G], [Z], [R]
2. Aモデルを適切に切り取ります。[面を選択], [細分化], [四角形に], [面を削除]
3. シェイプキーを動かしても問題ないかの確認します。
![](/img/0012.png)
## bodyに追従させる
このままではBモデルは体に追従しません。追従させるには頂点をアーマチュア(armature)に追加します。
1. Bモデルのモディファイアから[データ転送], [Body(J_Bip_C_Hips)], [頂点], [頂点グループ]を選択し、[データレイヤーを生成], [適用]します。
2. Bモデルのモディファイアでアーマチュアで[Armature]を追加します。
3. 女性の場合はボーン(足)を調整します。なお、少し浮くようになってしまうため全体を-Zします。[G], [X], [R]
> シェイプキーをueでも有効にするには、vrm0を使います。また、編集しているときにobjectを分離した場合は元の構成に再統合してください。
![](/img/0013.png)
## gender systemについて
例外ない限りキャラクターにはgender systemが搭載されます。アイは原作で性別がないので、例外的にgender systemから除外されています。
最初に実装するキャラは、仮名で`アダブ(男性)`, `イブチェ(女性)`になります。
## issue: ueで読み込むと一部のmaterialが正しく表示されない
この現象はblenderで作った`.vrm`をvrm4uで読み込み、一旦、ueを終了するとその後、materialがおかしくなります。
しかし、`vrm1`の出力は正常なので、それを読み込んで生成されたmaterialを`SK_${name}`にセットしています。

View File

@ -2,14 +2,22 @@
`.vrm`を読み込んで、別の`.vrm`に統合する方法を紹介します。最終的にはueでも動くようにします。
今回も衣装を着せる方法に使った`データ転送`を使います。例えば、髪の毛を設定してみましょう
編集しているうちにblenderのシェイプキーがueのモーフターゲットにexportできなくなったり、髪の毛のウェイトが消えていたりといったトラブルが多発します
ここで重要なのはblenderの物理シュミレーションです。髪の毛に物理シュミレーションが設定されているか確認してください。vrm 1.0を前提にしますが`Spring Bone`が消えている可能性があります。そして、統合する際はこのデータを持ってくることができません。blenderで設定しなくてもueの`kawaiiphysics`でも設定できます。
blenderのvrmはspring boneを設定して髪の毛を動かしています。これはboneに付いているcolliderと連動しています。
次に、設定されているウェイトが剥がされていないか確認してください。データ転送後は髪の毛にウェイトが付いているか確認してください
髪の毛はboneとも連動していて、armature(bone)を統合したあとにheadとheadをつなげなければなりません
- 髪の毛に物理シュミレーションはあるか。
- 髪の毛にウェイトはあるか。
統合するobjectの動きを本体に追従したい場合は頂点とアーマチュアを正しく設定しなければなりません。データ転送を活用します。
髪の毛が動かない場合、物理シュミレーションが設定されているか確認してください。ueの`kawaiiphysics`でも設定できます。私はueのほうで設定しています。また、髪の毛のウェイトが剥がされていないか確認してください。データ転送後は髪の毛にウェイトが付いているか確認しましょう。
シェイプキー(モーフターゲット)が消えてしまうのは`vrm1`に起因します。blenderで編集する場合は`vrm0`をベースにしてください。また、シェイプキーは元のobject名に再統合しなければ消えてしまいます。
1. vrm0をベースにしているか。
2. objectを元の状態に再統合できているか。
3. 髪の毛にウェイトはあるか。
4. 髪の毛に物理シュミレーションはあるか。
## 具体的な手順
@ -21,13 +29,7 @@ hair(髪の毛)とbody(体)で分けられたvrmを読み込むこととしま
ウェイトがhair(J_Bip_C_Head)に設定されていることを確認してください。今後、hairのobjectをいじると削除される可能性があります。
## blendshapeとvmc
vmcは`.vrm`をblenderで開いたときblendshape(ブレンドシェイプ)が設定されていれば大抵動くと思います。
ただし、blenderで編集した際に使えなくなってしまう可能性が高いです。例えば、objectを分離した場合がそうです。後に統合すると動くようになります。
## ueで動かす
## ueで物理シュミレーションを設定する
1. 次にueでhairを動くようにします。ueでvrmを読み込んで、`ABP_Post_${name}`を編集します。`kawaiiphysics`でRoot Boneに`J_Sec_Hair_1_xx`を1-12まで入れて、Capsule Limitsに`chest`, `hip`などを設定します。私は`chest`の値を大きめにして対処しました。
2. 次に、服が体に入りこまないようにしなければなりません。これも先ほどと同じように設定します。
@ -37,5 +39,9 @@ blenderから読み込んだmodelを動かしてみた。
![](/img/0007.png)
- 髪の毛が動かない: hairにウェイトは設定されているか
- 表情が動かない: 元のobject構成に再統合されているか
## blendshapeとvmc
vmcは`.vrm`をblenderで開いたときblendshape(ブレンドシェイプ)が設定されていれば大抵動くと思います。
ただし、blenderで編集した際に使えなくなってしまう可能性が高いです。例えば、objectを分離した場合がそうです。最初の構成にobjectを統合すると動くようになります。

BIN
book/img/0012.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 KiB

BIN
book/img/0013.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB