今回はアセットの紹介をしていきます。
紹介するのはProPixelizer。
3Dオブジェクトをピクセル化するシェーダーアセットです。
Humble Bundleのアートバンドルに含まれていたアセットです
どんなアセット?
3Dモデルを2Dピクセル(ドット絵のような見た目)にリアルタイムでレンダリングするアセットです。
専用のシェーダーを使用します。
URP専用でWebGLとAndroidでも動作します。
特徴
過去にunity1week online共有会でも紹介されていました
アセットの仕組みはブログで解説されています
実行環境
Unity 2021.3.7f1
Universal RP 12.1.7
ProPixlizer ver1.7.1
インポートの確認
アセットインポート完了時はこんな感じです。
セットアップ
Project Settings/Graphicsから現在設定しているURP Assetを選択
Depth Textureを有効にします
RednderListにあるRenderer Assetを選択、
Renderer FeatureのAdd Renderer Featureを押し、Pixelisation Featureを追加します
Cameraの設定
シーン内にあるCameraの設定です。(後述のサンプルシーンとかは最初から設定されています)
Anti-aliasingをオフ、Depth TextureをUse Pipeline Settingsに設定
Camera Snap SRPコンポーネントをCameraにアタッチ
これで設定は完了。
ちなみに投影方式はどちらでも機能しますが、Orthographicの方がきれいになるようです。
サンプルシーン
ProPixelizer/ExampleAssetsにサンプルシーンが用意されています
Exampleシーンはピクセル化したオブジェクトとしていないオブジェクトが混合したシーン
Example_NoCreepシーン
CameraStackingシーンはURPのカメラスタッキング(いわゆる複数カメラの合成)を使ったシーン
適当にオブジェクトを置いてみるとわかりやすいかも
実際に試してみる
URPのサンプルシーンで試してみます。
今回はこのヘルメットをピクセル化します。
このヘルメットはSafety Hatという名前のオブジェクトで、HardHat_Matマテリアルを使用しています。
HardHat_Matマテリアルを編集していきます(念のためバックアップはとっておきましょう)
シェーダーをProPixelizer/SRP/PixelizedWithOutlineに変更、
テクスチャがはがれるので、Appearance/AlbedoとNormalMapにテクスチャを設定。
これでヘルメットがピクセル化されました。
マテリアルのパラメータPixel Sizeからピクセルの度合いを調整できます。
他にもアウトラインを設定できたりします。
まとめ
ProPixelizerを使って、3Dオブジェクトをオブジェクト単位でピクセル化しました。
URP専用アセットで、WebGLに対応しているのでUnity1Weekでも利用できます。
なんかおかしい時
オブジェクトがピクセルではなくディザ抜きされたような見た目になっている場合、
URP Assetのセットアップがうまくいっていない可能性があります
きちんとセットアップしてもこうなっている場合、他のアセットが干渉しているのかもしれません。
このアセットを試す時、最初はいろいろなアセットが入っているプロジェクトにインポートしましたが、どう調整してもうまく表示されなかったので新しいプロジェクトでやりました。(そっちだと問題なく動いた)
もし同じような状態になった場合、プロジェクトの方を疑った方がいいかも。
類似アセットとの比較
過去に画面全体をピクセル化できるStylizer - Extendedというアセットを紹介しました。
Stylizerは画面全体の見栄えを調整するアセットでピクセル化は複数ある機能の一部です。
一方ProPixelizerはピクセル化に特化しており、オブジェクト単位でピクセル化できるという違いがあります。
手っ取り早く全体をピクセル化したいならStylizer、細かい設定がしたいならProPxelizerがいいですね。(所感)
他のアセットの紹介記事はこちら↓
※本記事にはAssetStoreアフィリエイトリンクが含まれています。
他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。