投稿記事

素材配布の記事 (1)

射マーシブ 2023/11/27 17:05

【シェーダー配布】Unity・URP対応・ShaderGraphモザイクシェーダー

こんにちは、射マーシブのお!お茶です。
今回は、開発の進捗についてお知らせできることはありません。

前作の制作にあたって作った素材のうち、他の開発者様方にも汎用的に役立ちそうなものを配布してみようという内容になります。

「射マーシブ製モザイクシェーダー」概要

概要

カメラ距離に応じて、モザイクの細かさを自動調整するモザイクシェーダーです。
・Unity用
・ShaderGraph製
・URP対応


↑こんな感じです。

主な機能


・カメラが近い時、モザイクを自動的に荒く調整してくれる。
・カメラが遠い時、モザイクを細かくして、何の物体か判別できなくなるのを「ある程度」防いでくれる(どんなに遠くなっても、モザイク効果が消えることは無い)。
・「輪郭」がわからなくなるように、モザイクを太らせることができる。

上記の機能を持つ「Unity, VR, URP」シェーダーで、弊サークルが使えるライセンス形態のものが、当時は見当たらなかったので、自作したものです。
といっても、難しいことはしてないですが…

この素材の意味

通常のモザイク効果をVRゲームにそのまま持ち込むと、以下のような問題がありました。この素材が、これら問題の解決をサポートできれば幸いです。
・プレイヤーが超近づいたとき、モザイクが細かすぎる(隠したいものが、割とはっきり見えてしまう)
・プレイヤーが遠いと、モザイクが荒すぎて物体の判別が不可能になる。

参考用 比較画像

左:ただPosterizeしただけのシェーダー
右:射マーシブ製モザイクシェーダー
VR上での実際の見え方をキャプチャしたものです。

①近距離


左は、目を近づけると、テクスチャ、陰影、輪郭など、そこそこわかってしまいます。右は、きちんとモザイクがかかっています。
②中距離


左右とも、この場合はあまり違いが分かりませんね。つまり、カメラ距離が固定のゲームなら、わざわざ本シェーダー素材を使用する必要はありません。
③遠距離


左は、手と判別するのが難しくなっています。右は、モザイクが自動的に細かくなっているので、手と判別できます。

私のプロジェクトでも動作しますか?

分かりません。
自分用に作ったものをとりあえず配布してみるだけなので、どのような環境なら使えるかなどの細かな検証は特にしていません。あしからず。
特に難しいことはしていないので、とりあえず入れてみてもいいかと思います。

多分VR以外でも使えると思います。
ビルトイン、HDRPで使えるかなどは特に検証していませんが、まあ正常に動かないと思います。
※URP以外でも、ShaderGraphのノードを画像と同じように組めば、同様の動作のシェーダーは簡単に作れると思います。

この環境で使えた/こうしたら使える等コメントいただけると、他の方が助かると思います。

一応、本素材の制作環境は、Unity2022.1.4f1, URP 13.1.8, ShaderGraph 13.1.8です。

ライセンス

CC0です

使用の際に何か気にする必要がないように、CC0ライセンスで配布いたします。

Cummersive mosaic shaedr by Cummersive is marked with CC0 1.0

補足、免責、備考など

・使用、ダウンロードにあたっての条件は特にございません。個人法人団体形式、商用非商用金額規模、組み込み方法、コンテンツ内容、全て関係なくフリーです。

・使用にあたっては、著作権表記も使用報告も一切不要です。

・自分用にとりあえず作った簡易的なものなので、人によって改良の余地はたくさんあると思います。改造のベースとしても、そのまま使っても、ご自由にお使いください。

・弊サークルは、本配布物に対して一切の責任を負いません。使用にあたっては各自、全て自己責任でお願いいたします。

・上記の通りですので、基本的にはいかなるサポートも行いません(何か問題があれば、対応するかもしれません。遠慮なくコメントください。)

・本記事のコメント欄は解放しておくので、「この環境で使えた/使えなかった/こうしたら使える」等コメントいただけると、他の方が助かるかもしれないと思います。

・フリー素材としての紹介や拡散等は、もちろん嬉しいし歓迎です~。

使い方

①本ページ下部からダウンロードしたunitypackageファイルを、Unityにドラッグ&ドロップ等して、お好きなプロジェクトにインポートしてください。


②モザイクをかけたいオブジェクトに、マテリアルを適用してください。


③ゲーム内容に応じて、シェーダー内の変数の値を変更してください。

・nearSize…カメラとオブジェクトが近い時に適用される細かさの目安値
・distantSize…カメラとオブジェクトが離れているときに適用される細かさの値
この2つは、大きいほど細かく、小さいほど粗くなります。

・thickenSize…輪郭部分にもモザイクを適用させるため、オブジェクトを膨らませるサイズ

ちょっと補足

・Posterizeの値が、カメラ距離で変わるようにしています。距離計算を行っているので、何もしないモザイクよりは、ちょびっとだけ処理負荷がかかると思います。
・太らせる機能に関しては、ただ外側に拡大しているだけなので、メッシュの境目が普通にバラけて見えてしまいます。あまり大きな値にしないことをおすすめします。また、角が鋭いオブジェクトなどでは、境目が目立ちやすいです。

※上の画像の数値はテスト用の仮のものです。各自、配布先プラットフォームの規制ガイドラインに沿うように、調整必須です。


ダウンロードはこちら

Cummersive_URP_VR_mosaic.unitypackage (8.06kB)

ダウンロード

最後に

えっち未経験でおマセな後輩といちゃらぶ中出しVR好評販売中です!
▶DLsite版はこちらです
▶FANZA版はこちらです
クーポンやポイント還元を考慮して、お得な方でご購入ください。



ここまでお読みくださり、ありがとうございました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索