VRChat 日本wiki - アバターの作成


アバターの注意事項

アバターの注意事項
VRchat内で使用するアバター作成時の禁止行為・注意事項をまとめました。
「MMD4Mecanim」の利用禁止、「3Dモデル(MMDモデル)」をお借りする際の守るべき注意事項などありますので厳守してください。
違反行為が横行してしまいますと、VRchat文化全体が規制・衰退の流れができてしまいます。

2018/5/5よりVRChatに「Trustシステム」が導入されました。内容は
・新規ユーザーに対してアバター、ワールドのアップロード制限
・既存の悪質ユーザーに対してのアバター、ワールドのアップロード制限(事実上のBAN)
詳しくはTrustシステムについて

Unity Software 2018版でのアバターのアップロード方法について

VRCHATTER STEP UP =JP&EN=
PC/Quest対応・クロスプラットフォーム
MenuのWorld、Searchにて上記のワールドを検索すると確認できます。

こちらのワールドでUnityのインストールおよびアバターアップロード手順について解説しています。


以下の情報は2017版向けで一部異なる部分が出てきているため
上記のワールドで最新情報を確認されることをお勧めいたします。
Boothアバターをアップロードする全行程を画像付きの日本語で解説しています。



アバター導入の概要

おおまかな流れとしては、unityでプロジェクトを作り、アップロードしたいモデルをunityに読み込みます。
モデルをシーンに配置してSDKを設定し、unityのプロジェクト内でログインしてアップロードするとVRChat内で使えるようになります。

1.アバターとなる3Dデータの準備

ネットショップのBOOTHにVRChatの使用を想定したモデルが多く販売されています。
又はUnityアセットストアのキャラクターも活用できます。
※その他のデータは利用規約を熟読の上、使用してよいか慎重に判断しましょう。
※利用規約や著作権は非常に複雑である為、VRChat向けに作られたデータの中から選ぶのが手堅いと思います。
Blender等のモデリングソフトで作成

2.VRChatに対応したバージョンのUnityのインストール

3.VRChatのSDKのインポート

SDKとは:開発に必要なプログラムをまとめた物 (この場合、VRChatのアバターやワールドを作るために必要なプログラム)
VRChatよりDowndload > Download VRChat SDK をクリック
※Software Development Kitの略

4.セットアップ

アバターの腕や脚をUnity上に読み込ませ人型の構造と認識させます。
マテリアルを割り当てて見た目の調整をします。

5.Avater Descriptorの設定

専用のコンポーネントを設定しVRChatに受け入れてもらうようにします。

6.AvaterのBuild

アバターをビルドしてアップロードします。
この際自分で識別しやすい名前とサムネイルを設定します。

3Dモデルについて


ファイル形式

Unity(VRChat)では、3Dモデルは.fbxという3Dのファイルフォーマットでメジャーなファイル形式(拡張子)を使用します。
FBX以外のファイルフォーマットに関しては別のツールで変換する必要があります。
Unityはあくまでゲームエンジンである為、データのエクスポート/インポートは可能ですが、
データそのものの編集は基本的に別のソフトを使用する事を想定して設計されています。

BOOTHで販売されている「設定済みUnityPackage」については、基本的にUnity上にドラッグ&ドロップするだけでアップロードが可能となっています。
Unity内で各種設定がなされたprefabsという状態になっています。詳しくは各商品ページ、同梱されている説明テキストをご覧ください。

2019年に入りVRアプリケーション向け特化したフォーマット「VRM」を使用する動きがあります。
Vroidをはじめ普及が始まっています。

ボーンとセットアップについて

ボーンの構造はUnityのhumanoidという構造に対応する必要があります。
このhumanoidとはボーン構造とボーン名の規則に関するルールです。
流れとしてはモデリングソフトで Unity humanoid の雛形となるボーン構造でボーンのセットアップをし、
unityにモデルを読み込んで、fbx(モデル)のavaterからインスペクターに表示される[Configure Avater]を押してボーンの対応付けを行います。
(通常は自動で対応付けされるが、正しく処理されない場合はUnity上で設定しなおし、もしくはモデリングソフトに戻ってボーン構造の見直しをします)
UnityのhumanoidはUpper Chestの設定がありますが、VRChatではUpper Chest不要です。
また指のないアバターでもhumanoid設定は一応できますが、
しゃがめなかったり、ハンドサインアニメーションが使えなかったり不具合があるので可能な限り設定しましょう。

人型でないモデルを使用する場合は、rigのタイプをGenericを選択します。

【参考】BlenderからUnityのHumanoid互換でfbxをエクスポートする

【参考】VRchat用人型アバターで使うためのHumanoid形式に従って作られたボーン(アーマチュア)
人型モデルが出来上がったら、Blender等でこちらのボーンを導入すれば少しだけ作業を短縮できます
実際の作業は書籍やwebサイトなどを参照してください。

参考画像 全体のボーン構造について


参考画像 手指のボーン配置について


注:メタセコイヤでは腰の接続と全体の命名が意図した構成にならないようです
注:リンク先ファイルの公開終了に伴い、リンク先を差し替えました

VRChatにアップロードできるモデルの制限

現在ではポリゴン数の制限はないようです。
ですが、70000ポリゴンを超えるとパフォーマンスランクがVeryPoorになり、ペデスタルの配置などに制限がかかります。
https://docs.vrchat.com/docs/avatar-performance-ra...

Blenderの場合、Decimateというモディファイアを使用してポリゴン数を減らせます。
(シェイプキーがあるとこのモディファイアが使えないため注意が必要)

VRChatで使用可能なコンポーネントはWhitelisted Avatar Componentsにて確認できます。
それ以外のコンポーネントをアタッチする場合基本的にエラーになります。独自のスクリプトをアタッチした場合も同様です。

環境の導入

1.VRChatに対応したバージョンのUnityをインストール
 通常プレイのみならばunityは必要ありませんが、独自のアバターやワールドをVRChatにアップロードする場合は対応したバージョンのunityが必要です。
 ※Unityの最新バージョンはこちらUnityの最新バージョン確認
バージョンについての公式リファレンス
 Unityは本体のクライアントのみをインストールして使用する場合と、複数のバージョンを管理するUnityHubを介して使用する場合があります。
 正直どちらでもよいとは思いますが、UnityHubを使用したい方は下記リンクを参考にしてください。
 Unity2017.4へのアップグレード

 余談ですが、VRChatはUnity固有の機能にべったり依存していますので、バージョンを揃えるのは必須です。

2.最新のVRChatに対応した SDK のダウンロード
 SDKとはあるシステムに対応した、開発に必要なプログラムをまとめた物です。
 つまり、unity上でアバターやワールドとなるデータを作成し、SDKのプログラムや機能を使ってVRChatへアップロードします。
 ※SDKはVRChat公式にログインの上で最新版をダウンロードしてください。
 また、最新バージョンは適宜VRChat公式サイトより確認してください。

アバター導入手順

1.VRChatのユーザーアカウントを作成します。
 → VRChat-Register

2.Unityを起動し、アバター作成用のプロジェクトを作ります。
 [+NEW] → Project name[VRCavatar(任意の名前)] → 〇3Dにチェックを入れる → [CreateProject]



3.最初にSDKのunityパッケージをインポートします。
 上にあるメニューバー[Assets]→[Import Package]→[Custom Package]→ウインドウが開くので、
 ダウンロードした VRCSDK 〜(略)〜 .unitypackage を指定してください。
 選択するとアセットの内容一覧が出てくるので、すべてにチェックが入った状態で[Import]のボタンを押してください。
 その後、メニューバーに[VRChat SDK]が表示されていたらインポート成功です。



4.モデルデータは[Project]タブのAssetsフォルダー内にドラック&ドロップで読み込んでください。
 ※[Assets]のウインドウ内で[右クリック]→[Create]→[Folder]を押すとフォルダーを追加できます。
 ※.unitypackageで配布されているモデルデータは、SDKと同様に[Assets]→[Import Package]→[Custom Package]から読み込むと自動でunityに配置されます。
 ※FBXだけでなくテクスチャデータもまとめて読み込ませる必要があります。

5.モデルデータを人型(Humanoid)としてunityに認識させます。
 Assets内に読み込んだモデルデータ(FBXファイル)をクリックし、表示された[Inspector]内の[Rig]タブを押します。
 [Rig]の設定項目にあるAnimation Typeを[Humanoid]に変更し、[Apply]を押して確定します。
 ※画像のような画面でない人は、[Inspector] 3行目あたりの[Model]から[Select]を選ぶと同じ画面が出ます。

 【参考】アバターの設定について



5.1.モデルデータの法線を設定する(Unity ver.2018以降必要)
 [Inspector]内の[Rig]の隣の[model]タブを押します。
 Legacy Blend Shape Normalsにチェックを入れます。
 Normalsを[None]に変更します。
 [Apply]を押して確定します。



6.シェーダー(3Dモデルの陰影)の設定を行います。
 モデルデータ(FBXファイル)を読み込んだ階層にできる[Materials]をダブルクリックし、フォルダの中にあるマテリアルファイルをクリックします。
 マテリアルをクリックすると[Inspector]の項目にShaderがあります。
 初期設定では[Standard]になってると思いますが、任意のシェーダーに変更しましょう。
 陰影処理を行わずテクスチャだけを直接表示する場合は[Unlit]→[texture]にします。
 また、目の表示がおかしい○○の部分が正常に表示されないなどの問題が起きた場合は他のシェーダーを選択すると正常に表示される場合があります。
 ※他のシェーダーにする場合は任意のシェーダーを選択してください。
 Cubeds-Unity-Shaders



7.アップロードするモデルをシーンに配置し、SDKの設定を行います。
 モデルデータ(FBXファイル)を[Hierarchy]にドラック&ドロップすると[Scene]タブにモデルが表示されます。
 モデルデータをクリックし[Inspector]の一番下の項目にある[Add Component]を押します。
 [scripts]→[VRCSDK2]→[VRC_Avater Descriptor]を押します。
 [VRC_Avater Descriptor]欄のView positionの座標はアバターを使用した時のプレイヤーの目線になります。
 [Scene]の中にグレーの球体(カメラの位置になります)が表示されているので、それを見ながら座標を調整してください。
 目と目の間にめり込むぐらいがちょうどいいです。
 次にDefault Animation Setが[Male]になってるので[FeMale]に変更してください。
 (Maleだと男性キャラクターとしてモーションが適用され、Femaleの場合は女性となります。)



 また、[VRC_Avatar Descriptor]追加時に[Pipeline Manager]というコンポーネントが自動で追加されます。
 [BruePrint ID]というのはアバターのIDのことで、VRChatへアップロード時に自動でAttachされます
 空白orアタッチ済みのIDを[Detach]で外して空白にしてアップロードすると新規アバターとして、
 空白にIDを記入して[Attach]で付けてアップロードすると、そのIDのアバターへの上書きとして登録されます

 ※これで最低限の設定は終了です。
 Unityでは空間に対してモノ(ゲームオブジェクト)を配置し、そのモノに対して3Dの情報、アニメーションの情報、制御するプログラムの情報等…
 様々な情報を追加する事でキャラクターや世界を構成します。この追加できる情報をコンポーネントと呼びます。
 つまり、アバターはゲームオブジェクトに3Dデータ・VRChatで動かすのに必要なプログラムのコンポーネントを追加する事により、作成されます。
 このコンポーネントはVRChatで動作する物であればエフェクトや物理演算やオーディオなどを追加する事も可能です。
 コンポーネントを追加する事により、アバターをさらにカスタマイズする事ができます。

8.VRChatへアバターをアップロードします。
 メニューバーの[VRChatSDK]→[Show Build Control Panel]からウインドウを開きます。
 1で作成したアカウントの情報を入力し、ログインするとウインドウ内の表示が切り替わります。
 [Builder]タブ内の[Build&Publish]を押します。
 ※新規ユーザーはTrustシステムによりしばらくアプロードが出来ません。



 New Avatarの画面に切り替わったら
 World Name[任意の名前]を入力 ※アバターウインドウ内での表示です、ゲーム中に表示される名前じゃありません。
 Descriptionは無くても問題なありません。
 最後に□The adove info〜にチェックを入れ[Upload]を押します。
 
 ※以上でアップロードの一連の流れになります。8で使用したアカウントでVRChatへログインし、動作を確認してください。
 アップロードしたものはUnityの[VRChat_SDK]→[Manage Uploaded Content]から削除や、IDのコピーが出来ます。
 エラーが出てる場合はエラーメッセージを選択した状態で[Ctrl+C]を押し、[Ctrl+V]を押すとコピペできるので、
 google翻訳に張り付けるとだいたいの意味が分かります。
 多くの場合がボーンの設定に関するエラーだと思われます。この場合ボーンをunityで正しく設定することで回避可能です。
 また、Unityでは1つの頂点あたりにウェイトが割り振れるボーンの数に制限があります。
 上記に関してはUnity内の設定で解決する場合もあれば、モデリングソフトを必要とする場合もあります。


リンク