generated at
セシル変身アプリでVRChat用アバターを作成する手順
※記事作成日:2020/11/23
※最終更新日:2021/05/02 (一部追記:2021/10/1)
(記事ページ分け中につき、ところどころおかしいところがあるかも)
※ちょっと分量が多いので、そのうちページ分けを行います
※適宜加筆修正&レイアウト調整を行っていく予定
※とりあえず必要そうな情報は全て書くことを優先したので、見づらいのは許して...
※記事内容にミスなどがあれば、@MapleChan_s3 にDMで問い合わせていただけると助かります。
=================================================================
Luna Ascension にてフレンドが撮影してくれたもの
================================================================
目次
<初心者向けの補足事項解説(セシル変身アプリの使い方だけを知りたい方は飛ばしてもらって可)
>
<記事本編>

================================================================
記事分け中につき、一部項目を別ページに移動しています
以下に存在しない項目などがありましたら、上の目次より該当ページを探して飛んでください
================================================================
Unityからアバターをアップロードする準備をする
(いくつかの手順が、弊記事と異なっているので注意が必要ですが、同内容を紹介されている記事があるので参考に ⇒ VRChatにVRMアバターを導入する記事
(手順:Ⅰ~Ⅵまで存在)

Ⅰ:"VRCHAT SDK"と、 "UniVRM + VRM Converter for VRChat"をインストールする
ここでUnityの起動!といきたいところですが、その前にダウンロードしておきたいものが2つあります。

1つめが、VChat SDKです。こちらは、Unity上でVRChatのデータを扱えるようにするソフトウェア開発キットにあたります。
ダウンロードは以下のページにアクセスし、
Avatars 2.0 で作成したい方は、Download SDK2の青いボタンをクリック。
Avatars 3.0 で作成したい方は、Download SDK3-Avatarsの青いボタンをクリック。
(筆者はまだこの先の手順を、Avatars 2.0でしか試したことがないため、本記事ではDownload SDK2を選択した場合で書かせていただきますが、仕様上はおそらくAvatars 3.0を選択しても問題ないかと思います。)
(Avatars 3.0は2020年夏に追加された機能で、Avatars 2.0に比べてできることがいろいろ増えています。(詳しく知りたい人はこちらびまとめを見てみるといいかも:VRChat Avatar 3.0 まとめ) 本記事ではセシル変身アプリで作成したアバターをVRChatにとりあえず持っていくことをメインにしているため扱いませんが、Unityで詳細設定をいじって、アバターのギミックを増やしたり、ポーズや表情の変化をたくさん用意したい方は3.0を選択してみてもいいかもです。)

このようなファイルがダウンロードできれば1つめは終了です。

2つめが、UniVRMと、VRM Converter for VRChatです。UniVRMは、Unity上でVRMファイルを扱えるようにするツールで、VRM Converter for VRChatは、VRMファイルをVRChatで扱えるデータに変換するツールにあたります。この2点はセットでダウンロードできます。
ダウンロードは以下のページにアクセスし、
最新版が一番上、もしくは一番上から2番目になっていると思うので、そちらをダウンロードします。(この記事を作成時はv24.0.3)
(有料のは開発者への支援になっているものなので、無料のでも問題はない)
すると、zipファイルがダウンロードされると思うのでこれを展開し、
新しくできたフォルダに、"VRM Converter for VRChat-バージョン名 + UniVRM-バージョン名.unitypackage" が入っていれば完了です。

Ⅱ:新規プロジェクトを作成する
ということで、ここからUnityを起動していきます。
まず最初に、新規作成(右上の青いボタン)をクリック。
(複数のバージョンのUnityがインストールされている場合は、▼(新規作成の右隣)をクリックし、2018.4.20f1を選択)

すると以下の画面が表示されるので、テンプレートは3Dを選択し、プロジェクト名と保存先を入力し、作成をクリックします。
(プロジェクトファイルはこれからどんどん増えていくと思うので、後で見たときにすぐ何か分かる名前にしておくといいかも)

こんな画面が出れば、起動完了です!

(ちょっと補足)
デフォルトのレイアウト(画面表示)だと後々不便なところが出てくるので、先にレイアウトの変更を行っちゃいます。
右上の"Defalut ▾"となっているところをクリックし、一覧の中から"2 by 3"を選択します。
こんな感じになれば正解

(編集画面内の各項目のざっくりとした説明)
Scene&Game:その場に何があるか表示するやつ (映像編集ソフトでいう映像の画面に相当)
Hierarchy:その場に何のオブジェクトが置いてあるかの一覧 (映像編集ソフトでいうタイムラインに相当)
Project:素材置き場 (映像編集ソフトでいうビンに相当)
Inspector:選択した項目の詳細を表示&編集できるやつ

Ⅲ:"VRCHAT SDK"と、 "UniVRM + VRM Converter for VRChat"の機能を追加する
❺Ⅰでダウンロードした、
この2つのファイルを、SDK→UniVRM+VRM Converterの順で1つずつ、下の赤丸で囲った場所(ProjectのAssets)にドラッグ&ドロップします。
1つドロップする毎に、以下のような画面が表示されると思うので、右下のImportを押し、
下のような表示が完了してから、次の手順に移ってください。

完了すると、Projectの画面がこんな風に変わるはずです。

Ⅳ:VRMファイルをインポートする
❸で作成したVRMファイルを、先ほどと同じ場所にドラッグ&ドロップします。
読み込みが完了するまでしばらく待つと、人型のアバターがAssets内に作成されるので、
今度はこれをHierarchyにドラッグ&ドロップします。
すると、左画面に作成したアバターが表示されるはずです。
今度は、このSceneを使っていろいろと操作してもらいたいので、簡単な操作説明を先にしちゃいます。

マウスのホイール:拡大・縮小
ホイールを押しながらマウスを動かす:見る方向は固定で見ている場所を移動
右をクリックしながらマウスを動かす:見ている場所は固定で見る方向を変更

Scene右上の十字(所々赤くなってたり緑になってたり青くなってたりするやつ、空間内のx軸y軸z軸に対応)
こちらはクリックすると、それぞれ選択した側から見ているように見ている方向を変更する。

十字の下の文字(Front, Right, Left, Back, Persp, Isoなどが書かれてるはず)
こちらは消失点が奥に存在するように(立体的に)見るか、消失点がないように(平面的に)見るかの変更ができる。

(こちらは後で実際に操作するので、まだ触れないで欲しいのですが、)
アバターから出てる3方向の赤・緑・青の矢印:空間内のx軸y軸z軸に対応し、それをスライドすると軸に沿った方向に移動

ちなみにアバター本体の座標・角度・大きさは、
Hierarchy内のアバターを選択した際に、一番右のInspector内のTransformに表示される、
Position, Rotation, Scaleに対応しています

Ⅴ:First Person Offset(=視点=そのアバター使用者の目が来る位置)を変更する
セシル変身アプリ製(ちなみにVRoid Studio製も)のアバターは、実はこのままアップロードすると、アバター使用者の目の位置が首の中に存在するため、足元は胸で見えないし、近距離で相手といちゃいちゃしようにも目線の位置が合わない...といった問題が発生します。

(アバターの首元に埋っている、First Person Offsetがアバター使用者の目の位置に対応)

座標位置的に考えると、このFirst Person Offsetを、
x軸(アバターの左右)上の位置はそのままで、
y軸(アバターの上下)上の位置を上へ、
z軸(アバターの前後)上の位置を前へ移動してあげればよいので、
yz平面を表示して、緑と青の矢印をスライドし、目の位置に来るように移動します。

だいたいこの位置に来れば大丈夫。

微調整をしたいという方は、
Hierarchy内のアバターを選択時、Inspectorの下の方にある、
VRM First Person内のFirst Person Offsetの数値が対応しているので、そちらを変更してみて下さい。

First Person Offsetの調整が終わったら、Inspectorの上部にある、"Overrides ▾"をクリックし、
Apply Allを選択します。
(筆者も詳しいことが分かってないのだけれど、おそらく今の目線位置の変更を保存する操作っぽい)

Ⅵ:VRChat用のデータに変換する
今までUnity上で操作してきたアバターは、VRChat用の形式にはなっておらず、変換をする必要があります。

アバターを選択した状態で、Unity上部のメニューバーにある、VRM→Duplicate and Convert for VRChatをクリックします。
すると、このような画面が表示されるはずです。

今回はQuest対応を含めてまとめてやってしまいたいので、
まず、"For PC"の"揺れ物"の"Convert Vrm Spring Bones Only"を、"Remove Swaying Objects"に変更します。
(上の設定変更は、Vroidアバターでquest対応初級編を参考にさせていただいたのですが、筆者の方でいまいち必要性が分かってないので要検証です...)
(※Dynamic Boneを導入できる場合、"Convert Vrm Spring Bones Only"のままでいいかもしれない...?(筆者未検証、かつQuest対応の設定とも絡んできそうなので、後日その辺検証してまとめます...(一応参考先:VRChat 初心者向けUnity備忘録のp.74)))

つづいて、"For Quest"の"For Quest"に☑します。

(このような警告が出ると思いますが、無視してもらって大丈夫です。)

そしたら、右下の"複製して変換"をクリックし、
このような画面が表示されると思うので、保存を押します。
(PC向けとQuest向けで細かく設定を分けてやりたい場合(中級者以降向け)には、この段階で名前を区別できるように保存しますが、今回は飛ばします。)

完了すると、このような画面になると思うのでOKをクリックします。
(先ほどと同様、こちらの警告も無視してもらって構いません。警告内容の意味は、Quest向けにはやや負担のかかるアバターなので、ある操作(show avatar)をしてもらえないと、デフォルトではロボットのアバターとして見えるよっていうことです。VRMファイルを負担のかからない状態でアップロードするには、初心者にはかなりハードルが高いこと、また、ある程度親しく交流する人同士ではshow avatarを既にしていることが多いと思うので、無視した次第です。)

するとHierarchy、Project内のAssetsにVRChat用のデータに変換されたアバターが登場します。

PC向けアバターのアップロードの準備自体はこれで終了になります。

目次に戻る(Scrapboxの仕様上、別タブで開きます)
================================================================
★★アバターのサムネ画像を設置する
(この章の内容は、VRCでアバターのサムネイルに好きな絵を入れてみる。をベースに作成させていただきました。)

アバターのサムネ画像は、この後アバターをアップロードする際に新しく登場するカメラに映してあげたものが使用されるので、★で用意した画像をこの章で設置していきます。

まず最初にサムネに使いたい画像を、Projects内のAssetsにドラッグ&ドロップします。
(これで、サムネ用の画像を編集ソフトに取り込んだ状態になる)

次に、Project左上の"Create ▾"をクリックし、Materialを選択します。
新しく作成したMaterial(名前を変更しなければ、New Materialになってるはず)を選択し、Inspectorの上部にあるShaderの"Standard ▾"をクリックし、Unlit→Textureを選択します。
Inspectorの右上にできた灰色の正方形の場所に、先ほどProjrctのAssetsに入れた画像を、ドラッグ&ドロップします。
(これで、サムネ用の画像を空間上で使える素材にした状態)

今度は、Hierarchy内左上の"Create ▾"をクリックし、3D Object→Quadを選択します。
アバターの前に板が登場した状態になるので、今度はサイズ調整をします。
Hierarchy内のQuadを選択した状態で、Inspector内のTransformを確認してもらうと、Position(位置), Rotation(角度), Scale(大きさ)の値が記入できる場所があると思うので、
まず、RotationのY軸を180°にし(Quadには裏表があり、アバターの正面側を表にするため)
次に、読み込む画像に合わせて縦横比を変更します(Scaleのx軸もしくはy軸の値を、長辺÷短辺の値に変更する)
(これでサムネの画像を貼り付ける板を用意した状態になる)

つづいて、Quadは選択したままの状態で、先ほど用意したMaterialを、Inspector下部の何もない場所にドラッグ&ドロップします。

(画像の例だとアバターが絵にめり込んでて分かりづらいですが...)
先ほどまで灰色だった板に先ほどの画像が貼り付けられた状態になると思うので、今度はこの板の位置調整をします。

(後でアバターの微調整などを行うことがあるため、)Z軸はややアバターから離した状態で、こんな感じにすればいいかと思います。

これでサムネ画像の設置も完了です。

目次に戻る(Scrapboxの仕様上、別タブで開きます)
================================================================
❻UnityからアバターをVRChatへアップロードする for PC
とうとうアバターをアップロードする段階まで来ました!

まだQuest向けのアバターは用意してない(こちらは❼で用意します)こと、
またそもそもPC向けとQuest向けのアバターは同時にアップロードできないため、
(というより、そもそもPC向けとQuest向けでアップロードしてるアバターのデータが異なるので別に行う必要がある)
❻ではPC向けのアバターをアップロードする手順の説明となります。

まず、メニューバーのVRChat SDK→Show Control Panelを選択します。
すると、VRChatのログイン情報を求められるので入力し、サインインします。
ログインに成功すればこんな画面になるはず。
(Avatar Creator Statusが、Allowed to publish avatarsになっている必要がありますが、New User以上であれば問題ないはず)

Builderのタブを開くと、アバターをアップロードするための確認事項などが表示されます。
私のこの画面の場合であれば問題ないですが、
左側のアイコンで赤い丸で囲まれた、!のアイコンがある場合は、そこに書かれた問題点を解決しないとアップロードできない状態となっています。
ここに出てくるエラーメッセージは、Googleで調べるとエラーメッセージの日本語説明とともに解決方法が出てくることが多いので、困った場合は調べてみるといいかもです。

左側のアイコンが黄色い三角で囲まれた、!のアイコンは、アップロードはできるが、意図した通りに動かない可能性があるときなどに表示されます。
一番上の"Automatic lightmap generation is..."は解決できる問題なので、Auto Fixをクリックします。すると下のような画面が出てくると思うので、Generate Lightingをクリックし、完了したらこの画面は閉じます。
2つ目の"The angle between pelvis and..."は、フルボディトラッキングを行う際に問題が発生するかもしれないという内容です。(参考) 筆者の環境でまだフルトラは用意できてないので、実際にどのような問題が発生するかを検証することは難しい状態なのと、フルトラを行わない場合は問題ないので、ここではスルーします。(一応、下記画像のアバターはセシル変身アプリで作成したものをPublic化(他の人がコピー可能)したもので、フルトラできる方数人に軽く試してもらったことがあるのですが、特に問題は発生していないようでした。)
3つ目の"This avatar is short..."は、VRChat空間で平均的な大人とされる身長よりも低い場合に表示されるものです。(まだ試したことはないのですが、おそらくこの逆のメッセージもありそう) 今回筆者がアップロードしようとしているアバターは中学生をイメージしたもので、意図的にやや低く設定しただけなので、これも無視します。(セシル変身アプリ上でアバターを作成する際に周りに見える家具のサイズとVRChat空間上の家具のサイズは相違ないものになっているはずなので、このメッセージが表示された場合でも、セシル変身アプリ上で問題なかった場合は無視してもらって大丈夫だと思います。)

これ以外のメッセージは、アバターのデータの重さや軽さがどうで、どれくらい負担のかかるアバターになっているかを伝えているものなので、こちらも読み流してもらってもらって大丈夫です。

これで問題ないようでしたら、右下の"Build & Publish for Windows"を押します。

すると、VRChatにアップロードするためのアバターのデータの用意が始まるので、しばらく待ちます。
(PCのスペックによっては、かなり時間がかかるそうです)

用意が完了すると、VRChat SDKの画面は以下のようになり、
今まで一度も使ってこなかった、Unity画面左下のGameに、アバターに関する情報を入力する欄が表示されます。

Avatar Name:アバターの名前
Description:アバターの説明
Content Warnings:性的・暴力的表現のあるアバターの場合にはここに☑をする(Public, Friends+ワールドで使用するのは規約で禁止されている)
Sharing:自分だけが使用する場合はPrivateに、他人がコピーしても問題ない場合はPublicに☑する

右側の写真が、アップロードされるサムネ画像
(1回目のアップロード時は外せないが、アバターの修正をしたなどで2回目以降にアップロードする際は、Upload Imageの☑が外せて、1回目にアップロードした画像を使い回すことができる。)

このサムネ画像ですが、データーの用意が完了したと共に、Hierarchyに登場したVRCCamによって映されているもので(初期位置はアバターの目の前)、この位置を変更することで、サムネ画像を変更することができます。

なので、このカメラを移動して、★★で用意したサムネ画像の前にカメラを持っていきます。

アバター情報の入力やサムネ画像の用意が終わったら、
The above information is accurate and I have the rights to upload this content to VRChat.
(上記内容は正確なものであり、また私はこのアバターをVRChatにアップロードする権利を持っています。)
に☑を入れ、
Uploadのボタンを押します。

すると、VRChatへアバターのアップロードが始まります。
(こちらもPCのスペックによっては、かなり時間がかかるそうです)

無事終了すると、このようなメッセージが出てきます。

一度VRChatを立ち上げて、問題がないか確認してみましょう。
PC向けのアバターであれば、基本的に問題なく動いてくれるかと思います。

目次に戻る(Scrapboxの仕様上、別タブで開きます)
================================================================
❼UnityからQuest向けのアバターをアップロードする準備をする
Quest向けアバターの作成は難しい点が多くあり、この記事ではセシル変身アプリ製であればほぼ問題なく行える簡単な手順しか紹介しません。

(難しい手順や他の編集ソフトを利用した場合にどうなるかは、nyantelさんの、Quest対応アバターに関するツイートや、Vroid産VRCアバターをquest対応する:序章を参考にしてみて下さい。)

Ⅰ:PlatformAndroidに変更する
Oculus Questって実はAndoridベースで作成されてます!(よくよく考えてみれば当たり前)ってことで、Quest向けVRChatはAndroidで動作する仕様となっており、Unity側もAndorid向けのものになっています。
ということで、Quest対応の第一歩として、Unityの動作想定環境をAndroidに変更します。
メニューバーより、File→Build Settingsを選択。
今までの設定ではこうなっていましたが、
左側のPlatformよりAndoridを選択し、右下のSwitch Platformをクリック。
ということで、しばらく待ちます。

終わったら、Build Settingsの画面は閉じちゃいます。

Ⅱ:ShaderQuest対応のものに変更する
Shaderとは、素材の描画をどのように行うかを決めるものですが、こちらをQuest対応のものに変更する必要があります。(そうしないとアップロードできない)
このQuest対応のShaderが曲者で、元の画像ファイルで透過pngを利用していた際、その透過を透過と読み込まず黒色と認識してしまうので、問題が発生することが多いです。

ProjectのAssetsフォルダ内にある、"(VRMのファイル名)(VRChat).Materials"を選択します。
こちらのフォルダ内に入っているすべてのファイルを選択し、Inspector上部のShaderをVRChat→Mobile→Toon Litを押します。
続けて、Inspector下部の、Enable GPU Instancingに☑を入れます。
(画像読み込みの際に負担を軽減する設定らしい)

このままだと一見何も変わってないように見えるのですが、そんなことはなく、
Hierarchy内にある、"(VRMファイル名)"となってて、(VRChat)がついてない方(❺Ⅴまで用いていた方で、❺Ⅵで作成したVRChat用のデータでない方)を選択し、Positionのx座標を1にしてみましょう。(アバターから見て右に移動)

すると、左側に本来意図していた色をしたアバター(今移動した方)、右側にQuest対応のShaderに変更した結果、白くなってしまったアバターが表示されます。
もちろん、このままアップロードするのはちょっと...っていう方が多いかと思います。

今度は、先ほどまとめて変更したShaderをもう一度変更し、VRChat→Mobile→Toon LitでなくVRChat→Mobile→Standard Liteを選択してみて下さい。

今度は暗くなりすぎてしまいました...

どうにかならないの?という感じですが、基本的にこの2種類のShaderしか扱えません。(VRChat→Mobile→ にあるものの大半は利用できますが、この2種類と差異がないか、使えるように見えて使えないものになります)

なので、Toon LitとStandard Liteの場合を見比べて、どちらか元の色に近い方を個別に選んでいく形になるかと思います。

cf. Standard Liteの暗さは、Colorをより明るい色に変更し、Metalicを1から0にするだけで、ある程度は改善します。
(変更前)
(今回行った色変更)
 → 
(変更後)

また、このアバターの場合はそのような事態にならなかったのですが、
服がない部分に服が見える・目の周りが黒いなどの問題が発生することがあります(Shaderで透過が使えないため)。
こちらは基本的にこの段階での修正は困難なので、諦めていただく形になります。
(一応、❷の最後の方でそうなりにくいセシル変身アプリ側での設定を載せておいたのでそちらを確認してみて下さい。)

これでQuest向けアバターの用意が終了です。

目次に戻る(Scrapboxの仕様上、別タブで開きます)
================================================================
❽UnityからアバターをVRChatへアップロードする for Quest
あとは、Quest向けのアバターをアップロードするだけになります。

メニューバーのVRChat SDK→Show Control Panelを選択。
VRChat SDKの画面が開くと思うので、Builderのタブを開く。
もしここで、ShaderがQuest対応のものに変更しきれてない場合は、赤丸!の警告が出ているので修正します。
今回下の方に4つ出てきた薄い赤の!は、このアバターはQuest向けには非常に重いよって言ってるだけで、アップロードは可能なので無視してOK。

問題ないようなら、右下の"Build & Publish for Android"を押します。

これもしばらく待つと、、、
PC向けアップロードの時に見た画面...!!

入力内容等に問題がなければ、
The above information is...に☑を入れ、
Uploadのボタンを押します。

(なにも問題がなければ)最後の待ち時間

できた!!!

Quest版VRChatを立ち上げて、問題がないか確認。

ちゃんとQuest対応できたよ!
(Quest向けアバターは、色味が思ってたのと違うとかで何度かアップロードをやり直すこともあります)

~~~~~~~~~~~
(補足)
今回は用いなかったのですが、アバターを一度でもアップロードしたことがあると、そのアバターに固有のIDが付与されます。
VRChat SDKのContent Managerの欄に、今までアップロードしたことのあるアバターが並ぶのですが、
Copy IDを押すとそのアバターのIDをコピーできます。
また、❺Ⅵで作成した(Quest対応の際、Shaderの変更をした)アバターを選択して、Inspectorの一番下、"Pipeline Manager"の"Blueprint ID"を確認すると、そちらにもアバターのIDが掲載されています。
(赤線で消したとこ、不用意に公開すると嫌がらせができてしまうので注意)

今後このアバターを修正するなどして、再アップロードする際、このIDが対応しているデータ同士で更新が行われるため、基本的には問題ないのですが、今までのと別のアバターとして再アップロードしたい際は、Detachのボタンを押して、アバターの元データからIDを削除する必要があるので注意です。
(ちなみにDetach後は、新たな入力欄が現れるので、そちらにCopyしてきたIDを貼り付けて、Copy元のアバターをそのデータで更新みたいなこともできる)
~~~~~~~~~~~

ということで、こんな感じで簡単に自作アバターを用意できちゃうので、みんなもセシル変身アプリ使おうね!!!
きっとVRoid Studioであれこれ苦戦するよりもとても簡単だよ。

目次に戻る(Scrapboxの仕様上、別タブで開きます)