2023-10-25 /
@syui
vrm
, 3d
vrmのキャラクター編集
3d-modelである.vrm
のキャラクター編集でやったことなどをまとめます。
輪っかを作る
輪っかを作るには、髪の毛から適当な付け髪を選択肢、テクスチャを編集します。
部位を光らせる
部位を光らせるには、blenderで当該テクスチャ(マテリアル)を選択し、Emission
の項目で画像を削除、カラーを設定します。
アイの場合は、Face
, Hair
にあるマテリアルの2つを#fff700
にしました。
なお、事前にblenderで.vrm
をインポートするアドオンを入れておいてください。あと、blenderは一度modelを保存しないとエクスポートの反映されなかったので注意。
iframe
今までの3d-modelは、skechfabなどからiframe
していましたが、自分でホストすることにしました。
これが単なるmodelの鑑賞ならthree.js
を使えばいいです。iframe
は必要ありません。
例えば、cardのmodelはそれ自体が動かないものなのでthree.js
で表示したほうが簡単です。
しかし、人のmodelとなれば話は変わってきます。つまり、棒立ちのmodelを表示するだけではダメなのです。
したがって、motion(animation)を当てる必要がありますが、それもランダム、かつ違和感のないものでなければいけません。例えば、定型的な動き、腕を上げて下ろすとか、それを繰り返すだけではダメということになります。
この処理を作成するには、three.js
だけでは不十分で、three-vrm
が必要になり、かつthree-vrm
を使うにもかなりの記述が必要になります。
つまり、web-appを作る必要があって、作ったweb-appをiframeで表示することになります。
<iframe src="https://syui.ai" allowfullscreen frameborder="0" style="border: none" width="100%" height="400px"></iframe>
animation
ここでいうanimation
とはmotion
と同じ意味です。
手順としては、.fvp
にexportする際に様々なモーションがありますので、その動きを.mp4
に保存したあとdeepmotion
で合成します。
現在使っているipad 9th
が落ちるのでmacで作業します。
ipadで保存したmodelは.vroid
になります。これをexportすると.vrm
になります。
macで読み込む場合、.vroid
が必要になるので、icloudなどにmodelを保存して共有します。
これを動画で保存します。そして、deepmotion.com
で.bvh
を作成します。.bvh
は.vmd
に相当します。
google-model-viewer
<!-- Import the component -->
<script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/3.3.0/model-viewer.min.js"></script>
<!-- Use it like any other HTML element -->
<model-viewer alt="Neil Armstrong's Spacesuit from the Smithsonian Digitization Programs Office and National Air and Space Museum" src="shared-assets/models/NeilArmstrong.glb" ar environment-image="shared-assets/environments/moon_1k.hdr" poster="shared-assets/models/NeilArmstrong.webp" shadow-intensity="1" camera-controls touch-action="pan-y"></model-viewer>
https://modelviewer.dev/
google-model-viewer
というものがあります。これを使うことで.glb
を表示できるのですが、.vrm
のポーズがデフォルトでは見栄えがよくありません。したがって、ポーズを付けるには、.bvh
などを.vrma
に変換してblenderで合成させる必要があります。
bvh -> vrma
ここで.vrma
はvrm1.0
以上でないと読み込めません。したがって、まずはmodelをvrm1.0
でexportしてから.vrma
を当てましょう。
そして、.vrm
にexportして.glb
にrenameします。
しかし、現状、blenderで読み込む.vrm
は色がおかしくなってしまうようです。
blender v3.5