Unity(URP)でVRMを扱っている記事を見ていると、アウトラインが表示できずに困っている方が散見されます。
試してみたところ、簡単にアウトラインを表示することができたので、共有のために記事を書いておきます。
解決したいこと
UniVRM(VRM1.0版)にはURP向けMToonシェーダーが同梱されています。
シェーダーの設定にはアウトラインの項目も見受けられますが、どうやら初期設定ではうまく動いていないようです。
そこで今回はこれを修正してアウトラインを表示できるようにしてみます。
環境
OS:Windows 10
Unity:2022.3.10f1
前提条件
- UniVRM(VRM1.0版)の導入が完了している
- 使用したいVRMモデルのインポートが完了している
- プロジェクトがURPに対応している
これらが完了していない場合は他の記事を参考に導入などを行ってください。
Renderer Featuresの設定
Renderer Features とは、URPの描画を開発者が自由に設定できる機能です。
これにUniVRMのアウトライン設定を追加することで、アウトラインを表示できるようにします。
URPのCoreテンプレートから始めた場合、初めからAssetsにSettingsというフォルダが存在します。
これを開くと、表層またはさらに下の階層(画像ではAssets → Settings → PC
)に〇〇_Renderer
(〇〇-Renderer
の場合もあります)というファイルがいくつかあります。
これらの〇〇_Renderer
というファイルがRenderer Featuresの設定をしているファイルになります。
これらのファイルのうち、レンダリングの設定で使用しているファイルにUniVRMのアウトライン設定を追加します。
今回はPC_High_Renderer
ファイルを使用しているので、このファイルを選択してインスペクタからAdd Renderer Feature → M Toon Outline Render Feature
を追加します。
M Toon Outline Render Feature
を追加すると、以下の画像のようにアウトラインが表示されます。
以上で設定は完了です。お疲れ様でした!
使用したVRMモデル
今回は無料で使える合成音声ソフトであるVOICEVOXのキャラクター、小夜/SAYOちゃんのファンメイドモデルを利用して解説の画像を作成しました。
とてもかわいらしい声でお話ししてくれるので、よかったら使ってみてくださいね!(ダイマ)
トラブルシューティング
UnityにVRMをインポートした際にモデルがマゼンタ色になっている場合は、シェーダを正しく指定できていない場合があります。
以下の記事を参考に修正するとよいです。