VRChatの中にはさまざまなワールドが存在しています。
その中には現実の街を模したようなリアルなワールド表現や、非常に美しい風景を私達に見せてくれるようなワールドが多数存在しています。
さて、そんなワールドで遊んだり、写真を取ったりしているときにこう思ったことはありませんか?
「アバターにもよりリアルな存在感を出したい……」
「ワールドに影が落ちてるならアバターにも影落としたいよね?」
そんなあなたの願いを叶えます。「リアル影システム (for Avatar) PCSS For VRC」を使うことで。

ということで、今回は「リアル影システム (for Avatar) PCSS For VRC」について実際に使用して、導入や使い方、どのような変化があるかを解説していきます。
リアル影システムとは
リアル影システム (for Avatar) PCSS For VRC(以下リアル影システム)とは、2023年1月にnHarukaの実験室より発売されたアバター用ギミックシステムです。価格は通常版が1500円、支援版が2000円となっています。
このシステムはPCSS(Percentage Closer Soft Shadows)という距離に応じて影の柔らかさを変動させる仕組みをVRChatで使えるようにカスタマイズしたものであり、これによって高解像度でリアルな影をアバターに落とすことができるようになっています。
対応しているシェーダーはlilToonとPoiyomiPro、PoiyomiToonシェーダーです。
影のつき方や色を細かく設定することも可能で、影を発生させるためのライトの色や強さや、位置などの設定をExpression Menuから行うことで、自分好みの影を自由に作り出すことができます。
以前までは「Next-Gen Soft-Shadows」という有料Unity Assetを使用する「NGSS版」と、上記アセットを使用しないシンプルな「PCSS版」の二通りがありましたが、10月に行われたアップデートによりPCSS版がNGSS版相当にパワーアップ。よりシンプルに使いやすくなり、リアル影システムのみですべてが完結するようになりました。
さらに、10月末に行われた別のアップデートでは「ShadowCast Addon」と呼ばれるアドオンが追加されました。
こちらはリアル影システムにアバターだけでなく、ワールドに配置してあるオブジェクトや自分以外のユーザーが使用しているアバターへ、自身の影を落とすことができる機能を追加するものとなっております。リアル影システムとは別に追加購入する物となっており、価格は500円となっています。

導入方法
リアル影システム本体を導入する
リアル影システムの導入は基本的に、パッケージに同梱されているツールを使用して行います。なのでまずはパッケージのインポートから始めるのですが、インポート前に確認すべきことがいくつかあるので注意しましょう。
まず、使用しているプロジェクトですでにリアル影システムを使用したことがある、導入した痕跡がある場合は忘れずに”Assets/nHaruka/PCSS4VRC”のフォルダを削除しておきましょう。
つぎに使用しているシェーダーのバージョンです。
使用しているシェーダーがlilToonであればv1.7.2以上、PoiyomiProまたはPoiyomiToonであればv9.0.54以上にリアル影システムは対応しています。このバージョンより下のシェーダーを使用している場合は忘れずにアップデートを行いましょう。

なお、以降この記事ではliltoonでのセットアップを取り扱うものとします。
また、リアル影システムおよびShadowCast Addonでは導入に「Modular Avatar」を使用することができます。そのため当記事ではModular Avatarの導入を強くおすすめします。
以降の記事でもModular Avatarを使用してのセットアップを行いますので、導入していない場合はこの機会に導入を済ませておきましょう。
Modular Avatarの導入は以下の記事で詳しく解説されています。
最後に、導入前には必ずBOOTHの商品ページをもう一度確認してください。基本的な導入方法や何かしらの困り事が起こった場合の解決方法などが詳しく記載されています。
また、nHarukaの実験室サポートDiscordサーバーでも、各ギミックのトラブルシューティングやプリセット共有、便利なTipsなどが集まっています。
以上を確認したらいよいよ導入です。BOOTHよりダウンロードしたUnityPackageを展開しリアル影システム本体を導入します。

導入が無事済ませたら、Unityプロジェクト上部のツールバーに「nHaruka」という項目が追加されているはずです。

これをクリックし、「PCSS For VRC(For lilToon)」をクリックするとリアル影システムセットアップツールが開きます。

セットアップツールが表示されると図のように導入手順と注意事項が表示されます。しっかりと目を通して問題ないことを確認したあとに「導入手順を読みました」ボタンをクリックしましょう。

ボタンをクリックするとセットアップに必要な各種設定やセットアップや解除に使用する各種ボタンが表示されます。このタイミングで必要な項目にはチェックを入れましょう。
特に、アバターのWriteDefaultsの設定、Modular Avatarを使用したセットアップについての項目の確認を忘れずに。問題ないことを確認したら「SetUp」ボタンをクリックします。
しばらく待つと……

リアル影システムがアバターに適用されました。すでにちょっと違う雰囲気がありますね。
ここから顔のメッシュを選択してみると、実際にマテリアルがPCSSを使用するためのlilToonカスタムシェーダーに置き換えられていることがわかります。

少し中身を覗いてみましょう。するとlilToonの設定の中に「カスタムプロパティ」というカテゴリと「PCSS Shadow Settings」という項目が追加されています。
マテリアル単位での影の見え方などはここから調整することができます。
どの項目がどういった設定かは最上部にある「マウスオーバーすると説明が表示されます」というチェックボックスにチェックをいれるとカーソルを項目名に合わせたときに説明が表示されます。

また、アバター全体の影を設定する際には同梱されている「PCSS4VRCパラメーター簡単設定ツール」が便利です。セットアップツールと同じくプロジェクト上部のツールバーにある「nHaruka」から「PSCC For VRC Parameter Configurator」をクリックしてツールを開きましょう。
Avatarの欄に設定したいアバターを登録し、全体の影の設定を一括で行うことができるので活用してみてください。


影を落としたくない箇所をマスキングする
先ほど設定したアバターを見てみると、白目部分に瞳のメッシュの影が落ちていることがわかります。こういったときにはマスク画像を作成して影を落としたくない箇所の調整をすることで解決できます。

マスキングを行いたいアバターを選択して、適用されているシェーダーの中のカスタムプロパティを開きます。「PCSS Shadow Settings」の中にある「Mask Settings」が影を落とす場所のマスクを設定できる項目です。
この中の上部2つ、「CastMaskTex」と「ReceiveMaskTex」を使用します。簡単に記述すると、CastMaskTexでは「影を落としたくないメッシュをマスクする」ことが、ReceiveMaskTexでは「影を受け取りたくないメッシュをマスクする」ことができます。
今回は、「瞳の影は落としたくない」「白目部分の影は濃くしたくない」という2つの考えから目とハイライト、各種表情パーツをマスクしたものを作成して以下のように適用しました。

比較してみると白目部分の影がスッキリしたことがわかります。いい感じですね。


好みの雰囲気に設定ができたらアップロードを行って導入は完了です。

ShadowCast Addonの導入
ShadowCast Addonの導入についても、同梱されているツールを使用して行います。
前提条件として、リアル影システム本体が導入されている事が必要なので、まずはリアル影システムの導入を行ってからShadowCast Addonのインポートを行ってください。
ShadowCast Addonのインポートが完了すると、Unityプロジェクト上部のツールバーにある「nHaruka」内に「PCSS For VRC ShadowCastAddon」という項目が追加されます。

この項目をクリックするとリアル影システムShadowCast Addonのセットアップツールを開きます。
Avatar欄に設定したアバターを登録したら、WriteDefaultsに関する項目やModular Avatarを使用したセットアップについてのチェックボックスが存在するので忘れず確認。問題がなければSetUpをクリックしましょう。

セットアップが完了するとアバターにShadowCastAddonが追加されます。
これで設定は完了です。
