Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】ProPixelizerでオブジェクトをピクセル化する【Unity】

今回はアセットの紹介をしていきます。
紹介するのはProPixelizer
3Dオブジェクトをピクセル化するシェーダーアセットです。

 

Humble Bundleのアートバンドルに含まれていたアセットです

どんなアセット?

3Dモデルを2Dピクセル(ドット絵のような見た目)にリアルタイムでレンダリングするアセットです。
専用のシェーダーを使用します。
URP専用WebGLAndroidでも動作します。

特徴
  • オブジェクト単位でのピクセル化により、オブジェクトを低解像度のようにレンダリング
  • 移動するオブジェクトのピクセルクリープが発生しない。
  • オブジェクト単位でのアウトライン制御。
  • リアルタイムの光と影をサポート。
  • オブジェクト単位のカラーグレーディング
  • SRP と ShaderGraph をサポート。
  • 被写界深度、ブルームなどの URP 後処理エフェクトに対応。

 

過去にunity1week online共有会でも紹介されていました

raspberly.hateblo.jp

 

 

アセットの仕組みはブログで解説されています

medium.com

 

 

実行環境

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というアセットを紹介しました。

raspberly.hateblo.jp

 

Stylizerは画面全体の見栄えを調整するアセットでピクセル化は複数ある機能の一部です。
一方ProPixelizerはピクセル化に特化しており、オブジェクト単位でピクセル化できるという違いがあります。
手っ取り早く全体をピクセル化したいならStylizer、細かい設定がしたいならProPxelizerがいいですね。(所感)

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。