言語化し構造化する

日々成し遂げたこと、考えたことの整理

オリジナルのVRM形式のアバターを作る

自分で作ったアバターで、オンライン会議に参加したい。
そのためにはVRM形式のアバターを作成する必要があります。
やり方を忘れないようにメモしておきます。モデルさえ出来れば、その後の作業は1時間もかからずに出来ます。
(モーフィングとか、小物の揺れはあきらめています)

準備するもの

  • 六角大王Super6(ver6.4.1)
  • Blender(ver3.3) + VRM_Addon_for_Blender-release.zip
  • Unity(ver2021.3.10f1) + UniVRM-0.104.0_c466.unitypackage
    プロジェクトを開いて、アセットフォルダから「Import Package → Custom Package…」を選択
  • VRMLiveViewer

OBJ形式データの作成:六角大王Super6で実施
(好きなモデルを作り、ファイルを出力する)

以下、ファイルの出力の手順のみを記載
注1: モデルはTポーズで作成すること。
注2: 出力前に[立体]->[面の表裏設定]->[表裏を自動設定]を押しておくこと。そうしないと表示やウェイトの割り当てがおかしくなることがある。

[ファイル]->[書き出し]->[WavefrontObj]

[色とテクスチャを出力する]を選択
※ファイル名は半角英数字とすること。(そうしないと、テクスチャが正常に読み込まれない)

FBX形式データの作成:Blenderで実施
(モデルに骨を入れる)

Objファイルをインポートする。
※Obj形式のメニューは2つ存在する。legacyと記載のある方を選択すること

スケール・向きの調整
スケールは0.02倍、回転はZ軸に180度(回れ右)設定する。

骨を入れる
[追加]->[アーマチュア]->[VRMヒューマノイド]

すると骨が現れる(サイズがあっていないので以後、合わせる)

その前にいくつか設定を変更する
最前面に表示されるようにする。
骨を選択->[ビューポート表示]->[最前面]

骨の片側を編集すると、反対側も同時に動くようにする。
骨を選択 ->[ツール]->[オプション]->[X軸ミラー]
※骨を選択してTabキーを押して選択モードにしていることが必要

骨のサイズを大まかに設定する

骨の詳細を設定する
骨を編集モードにして、各関節が体のパーツに合うように位置調整を行う。

本体と骨を関連づける
オブジェクトモードにて、本体→骨の順番で選択する。その後、[オブジェクト]->[ペアレント]->[自動のウェイトで]を選択する。

動作確認を行う 骨を選択してCTRL+Tabでポーズモードになるので、関節を動かして動作を確認する。
※動かしたい関節を選択してRボタンを押すと動作確認しやすい
動作が意図しないものであるときは、ウェイトを調整を行う。
オブジェクトモードで本体を選択してCTRL+Tabでウェイトペイントモードに入ることができる。
該当の関節を選択して、影響範囲をペイントで変更する。

FBX形式でエクスポートする テクスチャを含めるために、以下の設定を行う。
(パスモード=コピー、テクスチャを埋め込むのオン)

VRM形式データの作成:Unityで実施
(最終設定を行う)

FBX形式をインポートする FBXファイルをAssetsフォルダにインポートし、その後Scene上にドラッグアンドドロップ

テクスチャとAnimationTypeの設定をする オブジェクトを選択すると左側にInspectorウィンドウが表示される。そこでModel→Selectを選択する
すると、以下の様な画面が出現するので、赤枠内に示したように設定する。

続いてRigを選択して、AnimationTypeをHumanoidとする。その後Applyを押せばOK。
(正常に設定されたかはRigのConfigureから確認することができる。)

VRM形式でエクスポートする [VRM0]->[Export to VRM 0.x]を選択

いろいろと入力する項目が出てくるので、対応する。
画面に従って、必須項目をとりあえず埋めれば良い。

最後に

VRMLiveViewerを起動して作ったVRM形式のファイルを読み込むと、踊ります。自分で作ったものが動くと感動ですね。
右足がおかしいですね。ウェイトの調整が必要みたいです。