LoginSignup
1
0

More than 1 year has passed since last update.

VRoidから生成したVRChat用アバターのパラメータ再設定(DynamicBone含む)を自動で行う

Last updated at Posted at 2021-08-28

2022.07.16
VRChatのPhysBoneアップデートにあたり、PhysBonesに対応した記事を以下に書きました。
https://qiita.com/shoshoi/items/256eef287d476c8acd3d

はじめに

私のVRChat用アバターは、VRM Converter for VRChatでVRoidモデルから変換して生成しています。

VRoidモデルを使用している場合、衣装変更や髪型変更などVRoid側で修正を加える度にモデルの再変換および各種パラメータ(View PositionやDynamicBone)の再設定をする必要があり、時間のかかる作業となります。

そこで、View PositionやDynamicBoneなどのよく再設定するパラメータを、設定済みのアバターから自動でコピーするためのUnityEditor拡張である「VRoidAvatarSetupUtils」を作成しました。

この記事ではその使用手順を説明します。

注意事項

  • 必ず事前にプロジェクトのバックアップを取ってください。
  • パラメータ設定済みのアバターとパラメータ再設定対象のアバターでボーン構造・ボーン名称が異なる場合、DynamicBone、DynamicBoneColider、およびオブジェクトを正常にコピーできません。
  • 本手順で発生した如何なる問題に対してshoshoiは責任を負いかねます。

パラメータのコピー手順

この記事では、Unity 2019.4.29f1とVRChat SDK3-Avatarsを使用して手順を説明します。Unity 2018.4.20f1とVRChat SDK2を使用する場合、画面が若干異なりますが手順は同じです。

作業の前提

  • プロジェクトのバックアップをとっていること
  • VRChat SDK2 または VRChat SDK3-Avatarをインポートしていること
  • DynamicBoneをインポートしていること

アバターの準備

パラメータ設定済みのアバター(以降コピー元アバター)と、パラメータ再設定対象のアバター(以降コピー先アバター)を準備します。VRoid(VRM)をVRChatアバターに変換するまでの流れは、以下の記事を参照ください。

VRMからVRChatへアップロードする流れ - Qiita
https://qiita.com/100/items/7315fe3a7eb75732ae43

VRoidAvatarSetupUtilsの導入

  1. 以下のURLから最新版(右上の赤いボタン)を入手します。
    https://jirko.booth.pm/items/3232745
  2. ダウンロードしたファイルを展開(解凍)します。
  3. 中に入っているunitypackageファイルを、Assetsにドラッグ&ドロップし「import」します。
    new_capture1.png

パラメータのコピー

VRoidAvatarSetupUtilsでパラメータのコピーを行います。VRoidAvatarSetupUtilsの設定項目の詳細は、後章**VRoidAvatarSetupUtils 設定項目の詳細**を参照ください。

  1. 上のVRoidAvatarSetupメニューからOpen CopyAvatarParameters Wizardを選択します。
    new_capture2.png

  2. ダイアログウィンドウが開くので、Source Avatarにコピー元アバターを、Destination Avatarにコピー先アバターをそれぞれヒエラルキーからドラッグします。
    new_capture3.png

  3. ウィンドウ下部のCopyボタンを押下します。
    new_capture4.png

  4. 正常にコピーが完了すると、Copyボタンの下に「コピーが完了しました」を含むメッセージが表示されます。
    new_capture5.png

以上で手順は完了です。

VRoidAvatarSetupUtils 設定項目の詳細

VRoidAvatarSetupUtilsの設定項目は以下のとおりです。

VRC Avatar

  • Source Avatar
    コピー元アバターを設定します。

  • Destination Avatar
    コピー先アバターを設定します。

  • Avatar Type
    アバターのタイプを選択します。VRoidから変換して生成したアバターを使用している場合は「VRoid Avatar」を、それ以外の場合は「Other Avatar」を選択してください。

VRC Avatar Descripter

  • View Position
    View Position(アバターの視点位置)の値をコピーします。

  • Eye Movements(VRChat SDK3-Avatar限定)
    Eye Movements(目の動きの傾向)の値をコピーします。

  • Rotation States(VRChat SDK3-Avatar限定)
    Rotation States(目の回転範囲)の値をコピーします。

Pipeline Manager

  • Blueprint ID
    Blueprint ID(アバターに付与される一意のID)の値をコピーします。

Dynamic Bone

Dynamic Bones

Avatar TypeがVRoid Avatarの場合

以下の項目からコピーしたいダイナミックボーンを選択してコピー先アバターへコピーします。全てのDynamic Boneをコピーする場合、全て選択してください。

  • 髪の毛
    ルートボーン名に「Hair」が含まれるDynamic Boneをコピーします。

  • スカート
    ルートボーン名に「Skirt」が含まれるDynamic Boneをコピーします。


  • ルートボーン名に「Sleeve」が含まれるDynamic Boneをコピーします。


  • ルートボーン名に「Bust」が含まれるDynamic Boneをコピーします。

  • その他
    上記以外のDynamic Boneをコピーします。

Avatar TypeがOther Avatarの場合

  • コピー元アバターに設定されている全てのDynamic Boneをコピー先アバターへコピーします。
  • コピー実行前に、コピー先アバターに設定されていたDynamic Boneは削除されます。

Dynamic Bone Coliders

  • コピー元アバターに設定されているDynamic Bone Coliderをコピー先アバターへコピーします。
  • コピー実行前に、コピー先アバターに設定されていたDynamic Bone Coliderは削除されます。

Objects

  • アバターに配置されているオブジェクトをコピーします。
  • コピー元アバターとコピー先アバターのオブジェクト構造の差分を比較し、「コピー元に有りコピー先に無い」オブジェクトをコピーします。
  • コピー元アバターとコピー先アバターのボーン構造が違う場合、ボーンが差分として検出されコピーされる恐れがあります。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0