View Online: Version: Latest written by @sator-imaging on
VRM とそれにまつわる面倒事をどうにかしよう、という Unity 向けのツールです。
VRM がパッと作れるのはモチロンですが、更新のたびに何度もシーンを作り直さなくても良い、というのが最大の特徴です。
こんな方におススメ:
VRMの作成や調整、更新を継続的、頻繁に行う場合に特に有用なツールです。
「VRM Tool Kit」には、大きく分けて2つの機能があります。
ボーンやコライダーなど多数のオブジェクトを一括で調整するためのツールです。
メッシュやボーン・スキニングなど、何かを更新する度にシーンを作り直さなくても良いようにするためのツールです。
個人ライセンスでのソフトウェアの利用は、団体・法人以外の個人的な用途に限り利用可能です。 ソフトウェアの解析や改変・再配布など許可のない利用は禁止されています。
Copyright ©2022 Sator Imaging, all rights reserved.
VRM and UniVRM are licensed under the MIT License.
VRM Tool Kit のダウンロードはこちら。
公式の VRM ビューアーや VRM 対応ソフトウェア(PC)で書き出した VRM の動作を確認しています。
VRoid Hub 等のアップロードして利用するタイプのサービスや、スマホアプリでの動作が上手くいった&上手くいかなかった等がありましたら、ココや Twitter(@sator_imaging)にてお知らせいただけますと!
まず最初に VRM 作成用の Unity プロジェクトに VRM(UniVRM)のパッケージをインポートします。
VRM(UniVRM)のダウンロードは以下のページより行います。※ バージョンは v0.53.0 を推奨しています。
※ 推奨バージョンについては合わせてコチラもご覧ください。
--
続いて、ダウンロードした「VRM Tool Kit」に含まれている、VRMToolKit-<バージョン>.unitypackage をプロジェクトにインポートします。
--
最後に「VRM Tool Kit」に含まれている、非破壊ワークフローを実現する上で必要な VRM 用の更新ファイル(UniVRM-<バージョン>_BlendShapePreviewEditor.unitypackage)をインストールします。
注: 更新ファイルをインストールしていなかったり、UniVRM v0.53.0 以外のバージョンを使用していてブレンドシェイプのプレビューが表示されない場合は、インスペクターの「Prefab」パラメーターに、
.fbxファイルを設定することで表示されるようになります。
※ UniVRM の更新ファイルをインストールしていない場合の使い方

macOS では VRM をプレビューするためのアプリが公式からは提供されていません。
macOS 上で確認する必要がある場合は、VRM ビューアーをインストールすることが出来ます。
VRM 公式サイトから UniVRM.asmdef-<バージョン>.unitypackage を追加でインストールすると、「VRM Tool Kit」を Unity Package Manager のパッケージとして読み込むことが出来るようになります。
※ パッケージとして利用する場合は、赤線で示した UnivRM の ***.asmdef も合わせて導入します。

上記の追加ファイルをインストールした上で、「VRM Tool Kit」に含まれている VRMToolKit.asmdef.txt というファイルを VRMToolKit.asmdef という名前に変更することで、パッケージとして読み込むことが出来るようになります。
パッケージとして読み込む方法は以下のマニュアルをご覧ください。
VRM シーン作成手順と注意するべき点は以下の通りです。
Unity の Fbx ファイルの読み込み設定で「Rig」が「Humanoid」になっているかを確認します。
Fbx ファイルをシーンのヒエラルキーに追加します。
アバターが T ポーズになっていない場合は T ポーズにします。
VRM > Character > Character to T-Pose を実行することで自動で T ポーズにすることが出来ます。
※これは VRM 書き出しオプションで Force T-Pose をオンにした時と同じ状態です。Force T-Pose を使って T ポーズにすると、腿と足は問題ないが膝のボーンだけがねじれている、など気付き辛いエラーが発生する場合があるので、おかしなところがないか必ず確認するようにします。
VRM > Character > Except for Arm & Finger Root を実行すると、肩から手首、指の根元のボーン以外をプレハブの初期値に戻すことができます。アバターを選択した状態で、VRM > Export FBX-Linked VRM を実行します。
※ この段階で非破壊ワークフローのベースが出来ているので、一度 Pose Freeze と Force T-Pose(必要な場合)をオンにして、VRM 書き出しを行って問題がないか確認しておきます。
続いて VRM ブレンドシェイプのパラメーターを設定します。
スプリングボーンツールを使用して揺れ物のセットアップを行います。
VRM Meta にタイトルや作者の情報を設定します。
注: ボーンのセットアップの状態によっては、自動 T ポーズ機能を使うと一部のボーンが曲がることがあるので必ず確認します。
※ 自動 T ポーズを調整せずにVRMを書き出して、がに股になった状態。

--
VRM の基本設定は以上で終了です。
メニューの VRM > Check List の項目を確認してから、.vrm としてエクスポートします。
注:VRM を書き出すときは、
Pose FreezeとForce T-Pose(必要な場合)をオンにします。
揺れ物(VRM Spring Bone)ツールの使い方は以下の動画で確認できます。
※ 各機能の詳細は次のリファレンスの項目をご覧ください。
【YouTube】VRM Tool Kit - 揺れ物セットアップツール
揺れ物のボーンをどれだけ細かくしているかによりますが、殆どのキャラの場合コリジョンの分割数はデフォルトの 0.05(5cm 毎にコライダーを作成)で十分です。
VRM Spring Bone はボーン(棒状の剛体)とコライダーの正確な衝突判定を行っているわけではなく、「球体コライダーの中心点から半径以内の距離にボーンのピボットが位置している」→「衝突しているということなので押し出す」という処理を行っているだけなので、神経質にこだわってもあまり結果に結びつかないことが多いです。
揺れ物のボーンの数とコライダーの数がバランスを保っていることの方が重要なので、一度セットアップして動かしてみてから、必要に応じて揺れ物の衝突判定箇所を増やす等を行います。
衝突判定する場所を増やすだけであれば、スキニングの為のボーンを追加する必要はなく、ボーンとボーンの間にロケーターやヌル(=GameObject)を挟むだけでも問題ありません。
PC VR 向けなど処理の負荷を考えないのであれば、コライダーもボーンも細かく入れてしまうのが早いです。
それでも難しければ、そもそもあまり揺れないようにバネを強くするか、重力を弱くして水の中にいるような挙動に設定しめり込みや貫通が起きづらい状態にして逃げます。
注: 処理負荷の関係でコライダーの数は減らしたとしても、足や手など、揺れ物から離れている部位のコライダー削除はなるべく避けたほうが良いです。
髪の毛が揺れて腕に衝突しているのを見ると、多くのユーザーや演者は手でも髪の毛を触れると思って触ろうとして、あれ突き抜けた? となることが多いです。所詮はバーチャルか、と現実に引き戻される原因となり得ます。
VRM Tool Kit をインストールすると、Unity エディターの VRM メニューに項目が追加されます。
各機能の詳細は以下の通りです。 ※ 各機能は特に指定が無いかぎり、VRM アバターのルートを選択した状態で実行します。
Fbx キャラクターを VRM として出力できるように調整した上で、VRM のエクスポートダイアログを表示します。
※ 実行時にダイアログウインドウが表示されるので、処理内容を選択します。

※ 初期化時は「Auto T-Pose」、更新時は「Current Pose as T-Pose」を使うのがおススメです。
キャラクターに関する機能です。
Character to T-Pose
Revert to Default Pose
Except for Arm & Finger Root
Revert All Transforms to Default
「VRM Tool Kit」の揺れ物(VRM Spring Bone)に関する機能です。
※ UniVRM に含まれる VRM Spring Bone についての詳細はこのページで確認できます。
Spring Works

Add Spring Manager
VRM Spring Bone)をアバターに追加します。
※「髪」「スカート」等、各部位ごとにマネージャーを作成するようにします。Add Spring Collider to Selection
VRM Spring Bone Collider Group)を追加します。Select Colliders in Hierarchy
Assign Bones & Colliders to Spring Manager
VRM Spring Bone)に、ボーンやコライダーを関連付けます。
Scale Up/Down Selected Colliders' Radii
Generate Human Colliders for Selected Animator
VRM Spring Bone Collider Group)を追加します。
※ コライダーがアタッチされた Collider__<BoneName> と言う名前の GameObject が各ボーンの子供として追加されます。Remove Null References from Hierarchy
エクスポート前に確認するべき項目の一覧です。
※ 各メニューは一覧表示の為だけの物で、選択しても機能しません。
--
以上です。お疲れ様でした。
VRM と UniVRM についての詳細は、以下のページで確認できます。
この記事内で使用、改変しているデータのライセンス情報は以下の通りです。
この記事中で使用されているユニティちゃんは、ユニティちゃんライセンス条項の元に提供されています。
