Unity臭さを消す方法10連発

# Unity臭さとは

これ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/9e1d392a-dace-9825-aa4f-3d1ec7ac722b.png)




非常に**いい感じ**の画面ですね。こういう雰囲気の画面を見たとき、一目で「あーUnityだなー」と感じるような体験をしたことがある方は多いのではないでしょうか。今回はこの画面をどうにかしていきます。

数が多いうえに基本的なテクニックが多いので、この記事ではそれぞれの手段についてそこまで詳細に説明してません。キーワードをもとに適宜ググればいくらでも記事がヒットしますので、~~そっちに丸投げすることにします。~~


あらかじめことわっておきますが、別に「Unity臭い作品は悪」というわけではなく、私が「いい作品なのにUnity臭さが抜ければなー」と思う機会が多いので、ひと手間、手軽にクオリティアップができる手段として「Unity臭さを消す」方法をまとめておきたいな、という意図で書いています。ですのでプロトタイプやゲームの手触りを確かめるような目的のもとでは、今回上げるような方法は必要ないかもしれません。
あとこの記事に逆行しまくれば、Unity臭さを逆手に取ったチープな雰囲気が演出できるのでそれもアリだと思います。


# 1. ライティング編

### 1.1 SkyBoxを変える

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/dca08e05-56f2-709c-e1f7-bc88aa93ff4d.png)

Default-Skyboxも味わいがあって僕は好きですが、実はこいつが**一番の臭いのもと**です。
Asset Storeで探してきたやつにしてみます。

[Wispy Skybox - Asset Store](https://assetstore.unity.com/packages/2d/textures-materials/sky/wispy-skybox-21737)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/e3e8e3ad-9128-a62d-b2b4-476c79db8ea6.png)

これだけでかなりマシになりましたね。

### 1.2 マテリアルを変える

テクスチャのないプレーンなマテリアルは、わりとどうあがいても**臭い**を発してしまいがちです。
これもAssetStoreで適当に選んでみましょう。ノーマルマップがついているやつがベターです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/e118f2a8-04a5-2dc7-e364-44422c05eb3f.png)

テクスチャのないマテリアルでも、設定次第である程度いい感じにすることはできます。公式のガイドがあるので、こちらも参考にしてみましょう。

[マテリアルチャート - Unity マニュアル](https://docs.unity3d.com/ja/current/Manual/StandardShaderMaterialCharts.html)

### 1.3 影を焼く

いい感じにUnity臭さがなくなってきましたが、テクスチャを貼ったことにより、なんかむしろ一昔前のプリレンダCGみたいになってしまいました。モデルを**Static**に設定して、**Lighting ウィンドウ**から影をベイクしてみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/92a176b9-dff9-0f9c-46e8-91de8d54dd34.png)

間接光と、**Emissive**に設定したマテリアルがいい味を出してます。

# 2. UI編

つぎに**UI**です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/f579ef59-ed6f-3fd8-286b-37aa9cf8383d.png)
ライティングはそこそこいい感じになってきましたが、UIを乗せるとこれまた**くさい**ですね。
### 2.1 フォントを変える

さすがにデフォルトのArialフォントは見る人が見ればわかってしまいますし、[WebGL環境で日本語が表示されない問題](https://qiita.com/tsubaki_t1/items/93e4b91b830729cd93a4)もあります。他環境でも日本語のフォールバックがわりと怪しい感じになってしまうので、変更は必至です。
適当なフリーフォントを探してみましょう。ゲーム内に埋め込んで使用する場合のライセンスに注意です。

個人的には[M+](https://mplus-fonts.osdn.jp/)をよく使います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/eb507c46-a75d-a7c3-62db-b540416d73fe.png)


### 2.2 UI画像を変える

ボタンの画像もデフォルトから変えてあげます。オススメは、角丸のフラットな四角形スプライトを用意することです。これひとつでボタンにも、ウィンドウにも使いまわせます。

Sprite EditorでSliceを設定してあげます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/a2c97167-f622-167b-2fc0-7be01f08e677.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/539820fa-6f72-9803-b0ee-b90948eeff75.png)


最後にレイアウトをちょっと整えましょう。背景にそのまま文字をかぶせると読みにくいので、ウィンドウなどを適宜追加して……

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/c9243194-55a0-e91e-26d6-8375b364a627.png)

良い感じになってきました。

# 3. 演出編

演出です。演出は**ごり押しで割とどうにかなる**(最低)ので、もりもりやっていきましょう。

### 3.1 ポストプロセスをつける

画面全体に**ポストエフェクト**をかけて**いい感じに**しましょう。
これもかなり強力な一手です。Package ManagerからPost Processing Stack v2をダウンロードして、セットアップします。

[【Unity】Post Processing Stack Version 2.x を使用する - Qiita](https://qiita.com/ELIXIR/items/ff4d9a52eae201db9ba6)
[PostProcessing Stack v2を使う - tanaka's Programming Memo](http://am1tanaka.hatenablog.com/entry/2018/05/19/172121)

必須なのはBloomとAmbient Occlusionです。Bloomは光ってるところをさらに**いい感じ**にしてくれます。Ambient Occlusionはライティングにメリハリを与えてくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/2bf5db17-5b76-39a6-8eb2-a703246a76c6.png)

それでもまだ物足りなければ、VignetteとChromatic Aberration あたりを加えて、よりリッチな感じにしてみましょう。遠近感を効果的に使っている画面では、Depth of Fieldも有効です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/d3fea176-f3d7-8130-d9e1-e1ddd56b87fe.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/183607cb-1858-1deb-1a88-34b75fd32898.png)

### 3.2 デフォルトのパーティクルをどうにかする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/d7f2b770-ffea-3623-d16c-046d566d73ba.png)

これもデカいです。
意識すべきポイントとしては、

- サイズを小さくする
- 数を増やす
- 消えるときにフェード又は縮小して消えるようにする
- いろいろランダムにして動きに幅を持たせる

以上に加えて、NoiseとColor over Lifetimeを設定してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124429/d68d532a-3dc3-d917-d757-e22ee755b816.png)


### 3.3 シーンロードで暗転する

これは地味ですが、「タイトルシーンでボタンを押したら少しのフリーズの後シーン遷移して~~プレイヤーキャラが空から降ってくるやつ~~」も、わりとUnity臭さがあります。

シーンロードの度に一度画面を真っ暗にフェードして、ロード後に戻してあげるのがいいです。

[naichilab/Unity-FadeManager](https://github.com/naichilab/Unity-FadeManager/blob/master/README.ja.md)


# 4. ビルド編

最後、細かいポイントを仕上げていきます。

### 4.1 ビルド後のアイコンを変える

これだけ頑張っても、ビルド後のアプリのアイコンがUnityだと残念感があります（どうせPersonalライセンスではスプラッシュスクリーンが出るのでアレですが）。Player Settingsを開いて自作のアイコンに変更しましょう。

### 4.2 Display Resolution Dialogを消す

Standaloneビルドで起動時に出るあのダイアログです。将来バージョンでは消えるようですが、これもUnity臭さの一因なので、解像度設定、キーコンフィグなどをゲーム内実装して、消したいところです。



## お疲れ様でした

どうでしょうか？今回紹介したテクニックは、**定石すぎてむしろUnity臭い**ような感じもしますが、やらないよりもずっとよいはずです。つくったゲームの画面がなんかチープだな？と思ったときは、是非この記事を参照していただければと思います。