目次
今回の問題点について。
セシル変身アプリで作成したキャラはVRMファイルとして出力できるので、様々なアプリでキャラを使い回すことができます。
使用先の一つとしてVRoidHubがあり、ブラウザ上で3Dのキャラを表示させることができるうえに、ダウンロード可に設定すれば、いろんな人にキャラを使ってもらうことができます。

しかし、セシル製のキャラをアップロードしてみてすぐ気づいたのが、なぜか輪郭線が表示されていないこと…。
(肩周りに輪郭線のようなものが見えますが、それは服に直接描き込んでいるテクスチャです。)
VRoidhubに上げられている、他のセシル製のキャラを見てみると、たいていが輪郭線なしになっています。
セシルはデフォルトでは輪郭線なしの設定なので、それに合わせてキャラを作ってるという人が多いということもあるかもしれませんが、VRoidHub自体が輪郭線を出せない仕様なのでしょうか?
でも、セシル製ではない他のキャラを見てみた場合は、輪郭線が出ているキャラも居たため、VRoidHubで輪郭線が出せないということはないはずです。
また、もうひとつ気づいたのが、目のハイライトが表示されておらず、まるでヤンデレのような雰囲気に…。
よって今回は、セシル製のキャラをVRoidHub上でも、輪郭線をきちんと表示させて、なおかつヤンデレ化を防ぐ手順について。
今回の修正のおおまかな流れ。
セシルの公式様より教えていただいたツイートをご覧いただくと、だいたいの流れはわかるかもしれません。
ただ、このとき私はUnityが全く未経験であったため、以下で流れをもう少し詳細に解説していきます。
Unityの使用準備。

今回必要なものは、Unityです。Unityそのもののインストールの手順は省略します。
現在の最新版は2019.4.1fなので、これを元に解説します。
やりたいこととしては、Unity上でVRMを読み込んで、VRoidHubに適用できるような修正を施して、VRMを再出力するというものです。
Unity Hubを起動したら、まずは右上の新規作成をクリック。

ただし、複数のバージョンのUnityがインストールされている場合は、新規作成の横の▼をクリックして、使いたいバージョンを選択してから新規作成を行います。
ここからバージョンを選ばないと、なぜか古いバージョンで新規作成されてしまうからです。

新規作成の画面が開いたら、テンプレートは3D。
プロジェクト名と保存先は任意。
入力が終わったら、右下の作成ボタンをクリック。

プロジェクトの作成が自動的に始まります。しばらく待ちましょう。
UniVRMをインストールする。

プロジェクトの新規作成が完了すると、上のような編集画面に移行します。
このままではVRMのデータを開くことができないので、まずはVRMを開けるようにするためのunitypackageをインストールします。

上のページから、UniVRMがダウンロードできます。
現在の最新版はv0.55.0であるため、UniVRM-0.55.0_ce1c.unitypackageをクリックしてダウンロードします。

unitypackageのダウンロードが完了したら、Unityの画面下にあるAssetsの空欄にドラッグ&ドロップしましょう。

インポート中…。待機します。

しばらくすると、上のようなウインドウが現れます。
そのまま、右下のインポートをクリックしましょう。

また待たされます。

AssetsにVRMというものが追加され、これでVRMファイルを読み込む準備ができました。
ダウンロードしたunitypackageは捨ててしまって構いません。

次に、編集を行いたいVRMファイルを、Assetsにドラッグ&ドロップします。

しばらく待つと、Assetsに様々なファイルが自動生成され、その中にはキャラの姿が映ったものもあります。
これで、VRMを編集する準備は整いました。
VRMファイルの輪郭線を編集する。

VRMファイルを読み込んだあと、Assetsからキャラの姿が描かれたファイルをダブルクリックすると、画面中央にキャラが映し出され、画面左のヒエラルキーには、キャラを構成するオブジェクト一覧が表示されます。

ヒエラルキーが長すぎるので、いったんこのように畳みましょう。
Armatureを畳むだけ。

ArmatureからSecondaryまでの間の何か、今回はとりあえずCAtamaをクリック。
すると、画面右のインスペクターに、CAtamaというオブジェクトに関する値、つまり頭のパーツに関する値がずらずらと表示されます。
下の方にShaderという、色のついた丸いアイコンの項目があるので、その左下にある▶をクリック。

Shaderに関する項目がずらずらと出てきます。
その中からOutline→Width→Modeという項目を探します。

Modeの値がNoneになっているので、これをWorldCoordinatesに変更します。
Unity上ではとくに見た目の変化は起こらないのですが、これでVRoidHub上でも輪郭線が出るようになりました。

同様の手順で、他のオブジェクトのShaderに対しても、OutlineのModeを変更していきましょう。
中にはShaderが複数あるオブジェクトも存在しますが、いずれもWorldCoordinatesにします。

ただし、すべてのオブジェクトのすべてのShaderを編集する必要はありません。
顔の中のパーツ、つまり眉とか目にも輪郭線を足すとえらいことになってしまうからです。
たとえばCKaoCecilというオブジェクトは顔をパーツを表しているのですが、その中のCecilCKaoというShader以外は、ModeをNoneのままにしておきます。

(目の種類がセシルではなくジト目の場合、オブジェクトの名前はCKaoJitoになります。)

今回の上のキャラの場合、下記のオブジェクトのshaderを編集しました。
- CAtama
- CKaoCecil
- Happi
- SotaiB
- SotaiE
- VKutu
- EditKami
- GRibbon
- VFukuB
- TWinLRibbon
- Obj128
- Obj144
- Obj148

どのオブジェクトがどの部位に関係してるのかわかりにくいというときは、オブジェクトを選択すると中央のキャラの該当部分の輪郭線がオレンジ色に光るので、それで判断できます。
なお、キャラを直接クリックしてもオブジェクト選択が可能です。
VRMファイルの目のハイライトを修正する。

VRoidHub上でなぜか表示されなかった目のハイライトですが、セシル上では瞳の色のレイヤーKになります。
これをUnityで編集します。

ヒエラルキーからCMeHenSyuHLを選択すると、ちょうど目のハイライト部分が選択されます。
まずはShaderの文字の右にあるVRM/MToonと書かれたセレクトボックスをクリックします。


Until→Transparentを選択。

Shaderの▶をクリックすると、レンダーキューという項目があります。
これを下記のとおりに変更します。

- シェーダーから → 透明
- 3000 → 5000
VRMファイルを出力する。

輪郭線と目のハイライトの設定が完了したら、VRMの出力を行います。
Assetsからキャラクタを選択し、画面上部のメニューからVRM→UniVRM-0.55.0→Export Humanoidを選択。

新しいウインドウが出ますが、そのまま右下のExportをクリック。

ファイル保存のウインドウが出るので、好きな場所に。

しばらく待つと、Exportのウインドウが自動的に閉じられて、VRMが出力されます。
あとはこれをVRoidHubにアップロードすれば、輪郭線もハイライトもちゃんと表示されています。
余談。


今回の作業のおかげで、VRoidHubに存在する私のキャラは、すべて輪郭線が出るようになりました。
しかし、いくらデフォルトが輪郭線なしだからって、VRoidHubだけに限らず、Twitterでもセシル製のキャラで輪郭線ありをほとんど見かけない…。
輪郭線、人気ないんですかね?
私はアニメ的な表現が好きなので、輪郭線をがっつり入れがち。
とりあえず、VRoidHubで好きに眺め倒してやってください。