こんにちは寝る

古い記事の情報は参考程度にお願いします

VRChatにアバターをアップロードする

※ 20/05/11時点での情報です。
アップデートにより手順が変更になる可能性があります。

VRChat SDKをダウンロードする

https://vrchat.com/home/downloadからSDK2をダウンロードしてください。

SDK3はアバターアップロード未対応なのでダウンロードする必要はありません。

Unityをインストールする

SDK2の推奨バージョンは2018.4.20f1です。
https://docs.vrchat.com/docs/current-unity-version

Unity HubをダウンロードしてUnity Hubから対象バージョンをインストールしてください。
※ モジュールのインストールは必要ありません。

f:id:ploctio:20200511122527p:plain

インストールリストに対象バージョンが存在しない場合
ダウンロードアーカイブより対象バージョンを選んでください。

プロジェクトを作成する

Unity Hubより新しく3Dプロジェクトを作成します。

Unity Hubに複数のUnityバージョンをインストールしている場合は新規作成の右にある「▼」から
Unity 2018.4.20f1を選択して新しいプロジェクトを作成してください。

f:id:ploctio:20200511132756p:plain

VRChat SDKをインポートする

ダウンロードしておいたVRChat SDKをUnityにインポートしてください
Unityを開いた状態でVRChat SDKのファイルをダブルクリックすれば問題なくインポートできます。

(オプション)Dynamic Boneをインポートする

Dynamic Boneはボーンに対して物理的な挙動を追加するアセットです。

これをインポートしておくことで一部モデルで、すでにDynamic Boneが設定されている場合
その設定を引き継ぐことができますので、モデルのインポート前にDynamic Boneをインポートしておきましょう。

なお、このアセットは有料です
しかし、このアセットを使うと髪とか尻尾とかを揺らすことができ
より没入感の高いVRChatができるのでセールの時にでも買っておくことをオススメします。

特に尻尾が揺れないのは目玉焼きに醤油を掛けるぐらい犯罪的なので購入は必須と言えます。

モデルをインポートする

ここからはモデルの配布方法によってインポートの仕方が変わります。

  • unitypakeageの配布
    だいたいはUnityを開いてインポートをするだけで終わりです。
    (Dynamic Bone設定済みモデルの場合は事前にDynamic Boneをインポートする必要があります。時々、シェーダーの指定もあります、この場合も事前にシェーダーのインポートが必要です)
    こちらはすでにいろいろ設定されている場合もされていない場合もありますので特に注意して配布元のインポート方法を確認してください。

  • fbxの配布
    こちらもUnityへfbxをインポートするだけです。

  • Blenderファイルの配布
    こちらは無いと思いますが、万が一Blenderファイルのみの配布だった場合
    一度Blenderで開きfbxにエクスポートしてから使ったほうが良いかと思います。(問題ないか利用規約は確認してください)※ Blenderファイルでもfbxと同じような感じでできます。

  • vrmの配布
    こちらでの配布は見たこと無いのですがとりあえず。Unityで使う場合はvrmをインポートできるようにしないといけないので、下の「fbxをvrmに変換」の1、2を行ってください。その後は「vrmの設定」の1でインポートしてください。

fbxをvrmに変換

vrm変換は必須ではありませんが
よくわからない場合vrmの方が設定しやすいかと思うので変換します。

すでに最適化されているprefabが存在するならば
これらの作業は不要ですが、なにか理由があるならば行ってください。

【作業前に確認】  
変換対象のfbxの利用規約を見て「変換しても問題ないか」など確認する  
VRChatはまだまだ整備が進んでいません、1人1人のモラルが大事です。  
禁止されている事やわからない事はやらないように注意しましょう。

※ 以下の例では右近ちゃんを利用します。

  1. VRM Converter for VRChatをダウンロード
    最新バージョンで問題ないです。

  2. VRM Converter for VRChat-xx.x.x + UniVRM-x.xx.x」をUnityにインポート
    UniVRMも合わせてインポートしたいのでこちらを選択してください。

  3. fbxの正規化
    Unity上でfbxを選択しインスペクターを確認し以下の事を行います。
    「Rig」タブの「アニメーションタイプ」を「ヒューマノイド」にして「適用する」を押す
    f:id:ploctio:20200511163352p:plain 上の画像の「アバターの定義」にある「設定」を押して「Head」の「Jaw」を「None」にする。
    ○のところを押すと修正ができる。修正後は「Done」を押すf:id:ploctio:20200511163834p:plain

  4. vrmに変換する
    ヒエラルキーにfbxをドラッグアンドドロップし、選択した状態で画像のところからエクスポート。 f:id:ploctio:20200511164315p:plain

vrmの設定

vrmの変換が完了したらUnityにインポートします。

【注意】
以下の5、6を設定する前の注意。

VRChatではデフォルトだとDynamicBoneの制限があります
「揺れるボーンの数 * 当たり判定が8以上」だと制限されVRChatでは動きません。

これはVRChat内の設定で制限解除が可能です  
もし、こういった制限解除をしたくない場合は制限内に収めるようにしてください。

なお制限解除はVRChat内のSafetyタブのPerformance OperationからLimit dynamic Bone usageでできます。

参考:VRChat Performance — Dynamic Bone Limits System - VRChat - Medium

  1. vrmのインポート
    新しいフォルダを作成して、作成したフォルダにvrmファイルをドラッグアンドドロップしてください。 f:id:ploctio:20200511165736p:plain

  2. マテリアル設定のコピーまたは設定
    インポートされたファイルの中から「xxx.Materials」を開きシェーダーの設定をしてください。
    fbxと同じ設定にするとトラブルが無いです。

  3. 表情の設定 インポートされたファイルの中から「xxx.BlendShapes」の「BlendShape」を開き、表情の設定をしてください。
    「A」「I」「U」「E」「O」「BLINK(まばたき)」「JOY」「ANGRY」「SORROW」「FUN」を設定すれば良いかと思います。

  4. 視点の設定
    FirstPersonOffsetを画像のように調整します。視点になるので目の間ぐらいにあると便利です。 f:id:ploctio:20200511183233p:plain その後は設定を適用してください。
    f:id:ploctio:20200511183414p:plain

  5. 揺れものの設定
    あとの作業でVRMSpringBoneをDynamicBoneに変換してくれるので
    この時点で揺れものの設定を行うことが可能です(Dynamic Boneのインポート必須)
    ヒエラルキーのsecondaryのインスペクターにある「VRM Spring Bone」の
    「Root Bones」に揺らしたい親ボーンを設定してください。
    f:id:ploctio:20200511185130p:plain f:id:ploctio:20200511185747g:plain デフォルトだとかなり揺れるのでRoot Bonesの上にあるSettingsから調整できます。

  6. 当たり判定の設定
    揺れものに触ったり、揺れものの貫通を防ぐために当たり判定を追加できます。
    当たり判定をつけたいボーンの「コンポーネントを追加」から
    VRM Spring Bone Collider Group」を追加してください。判定の調整もできます。 f:id:ploctio:20200511191350p:plain その後、揺れものの設定で行った「VRM Spring Bone」の「Collider Groups」に追加します。
    f:id:ploctio:20200511191534p:plain
    設定による変化
    設定前 f:id:ploctio:20200511191807g:plain 設定後 f:id:ploctio:20200511192016g:plain

vrmをvrchat用に書き出す

書き出したいモデルを選択した状態で画像のところを押します。

f:id:ploctio:20200511192345p:plain

いろいろ設定項目が出ます。当たり判定を追加した場合は
「揺れ物」のセレクトボックスを「Convert Vrm Spring Bones And Vrm Spring Bone Collider Groups」にしてください。

f:id:ploctio:20200511193133p:plain

VRChatにアップロード

アップロードの前にUnityを保存しておきましょう!
アップロード中にUnityが強制終了する事があります。

トラブルに巻き込まれないように、規約の確認をしっかり行いましょう。

vrchatjp.playing.wiki

VRChat SDKにログインします。

f:id:ploctio:20200511193400p:plain

その後、BuillderからアバターをBuild&Publishしてください。

f:id:ploctio:20200511195135p:plain

そうするとアップロード画面がUnityで開始されますので
必要な情報を入れてUploadします

Content Warnings
- 性的な表現
- 暴力的な表現
- 血とかグロい的な表現
- その他の警告や公的な場では不適切な表現

しっかりチェックを入れて住み分けを大事にしましょう。

Sharing
Private推奨です。
Publicは他の人もそのモデルを使えてしまう状態になります
大体のモデルでそれは禁止されています。

f:id:ploctio:20200511195312p:plain

これで終わり

VRChatを楽しもう!

f:id:ploctio:20200511203755p:plain