1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-07-16

はじめに

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

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

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

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

注意事項

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

パラメータのコピー手順

この記事では、Unity 2019.4.29f1とVRChat SDK3-Avatarsを使用して手順を説明します。

作業の前提

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

アバターの準備

パラメータ設定済みのアバター(以降コピー元アバター)と、パラメータ再設定対象のアバター(以降コピー先アバター)を準備します。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(目の回転範囲)の値をコピーします。

Playable Layers

  • Base
    Base に設定されている AnimationLayer をコピーします。

  • Special
    Special に設定されている AnimationLayer をコピーします。

Expressions

  • Menu
    Expressionメニューをコピーします。

  • Parameters
    Expressionパラメータをコピーします。

Pipeline Manager

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

Phys Bone

Phys Bones

Avatar TypeがVRoid Avatarの場合

以下の項目からコピーしたいPhys Boneを選択してコピー先アバターへコピーします。全てのPhys Boneをコピーする場合、全て選択してください。

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

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


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


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

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

Avatar TypeがOther Avatarの場合

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

Phys Bone Coliders

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

Objects

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

Constraints

  • Aim
    AimConstraintをコピーします。

  • Look At
    LookAtConstraintをコピーします。

  • Parent
    ParentConstraintをコピーします。

  • Position
    PositionConstraintをコピーします。

  • Rotation
    RotationConstraintをコピーします。

  • Scale
    ScaleConstraintをコピーします。

1
1
1

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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?