【Unity】Grain(グレイン:粒子)の使い方と効果【Post Processing】
- 2020.02.10
- PostProcessing
- Unity, ポストプロセシング
最近は「写真を撮る」といってもデジタルのものが多くなっています。スマホで撮るときもそうですし、一眼レフだってデジタルで記録しています。
フィルムに写真を記録することが少なくなったので馴染みがないかもしれませんが、フィルムを現像して写真を焼いてもらうと、表面にざらざらとした粒が写っていることがありました。
この記事で紹介したいGrain(グレイン)のエフェクトは、このざらざらとした粒を表現できるエフェクトです。
例えば、以下のようなシーンがあったとします。画面ではポストプロセシングのBloomを併用しています。
このシーンでポストプロセシングのGrainを適用してみましょう。すると、以下の画像のように細かい粒子が表示されるようになります。
画像を拡大しました。赤、緑、青、黒など、小さな色の粒子がノイズのように画面に表示されているのが分かります。これがGrain(グレイン)です。
グレインがあることで、主人公が今まさに見ている場面というよりも、写真や映像を通して見ている印象を与えることができます。
この記事では以下の点に触れています。
- Grain(グレイン)の使い方
- 各設定値が何を表しているか
- 使用したサンプル
昔使われていたフィルムでの映像を作り出せることから、レトロな雰囲気を出すためにも使えるので、覚えておいて損はありません。
環境
macOS 10.15 Catalina
Unity2019.2.9f1
Unity Hub 2.2.2
Post Processing 2.1.7
参考文献
公式のマニュアル
公式のパッケージ解説
公式のバッケージ解説の方は英語で書かれていますが、自動翻訳すれば概要を掴みやすくなります。
Post-Processing(ポストプロセシング)とは
Post-Processing(ポストプロセシング)とは、画面に描画する前の画像に対して処理を行うことで、最終的に描画される画像の見栄えを良くする機能です。インスタのフィルターのようなイメージです。
ポストプロセシングの概要や導入方法については以下の記事で解説しているので、こちらもご参照ください。
この記事の中ではポストプロセシングが導入されている状態で進めていきます。
Grain(グレイン:粒子)とは
Grain(グレイン)とは、フィルムで撮影した写真を現像したときのような、ざらざらとした粒子を表現するエフェクトです。
画像が粗くなり、鮮明ではない様子を表現することができます。公式のマニュアルを読むと、「ホラーゲームでよく使われます」とあり、確かに画面が鮮明でない方が恐怖をかき立てる意味ではマッチしています。
冒頭でも少し書きましたが、令和に突入した今からすると、フィルムを使って写真を撮影していたのは少し前のことです。最近ではもうデジタル機器が普及してデジタルな写真を撮ることが多くなりましたからね。
ということは、フィルムで撮った写真のような質感を表現することで、レトロ……というとショックを受ける世代もいるかもしれませんが、ちょっと前の雰囲気を表現することができます。簡単に言えば、過去の映像や写真を表現できます。
ひょっとしたらフィルムを使って写真を現像したことのない世代もこの記事を読んでいるかもしれません。その場合は、実家にある昔の写真などを見せてもらうと様子が分かると思います。
どんな効果が得られるか
このGrainの効果は静止画に対して適用されるのではなく、ゲーム実行中の映像に対して適用されます。ノイズのパターンが毎フレーム変わるため、アナログなビデオを表現するのにも使えます。
- キャラクターの回想シーンで表示される昔の映像
- あまり質のよくないカメラという意味で監視カメラの映像として
- ハンディカムで映像を撮影しているキャラクターの視点を表現
レトロさの表現、カメラの性能差の表現を行う際にGrainを追加すると良いでしょう。
画面全体にGrainがかかることから、特定のオブジェクト(例えば手に持った写真)だけにGrainを適用することはできません。この場合は、事前に写真として表示したいシーンでGrainを適用し、それをスクリーンショットで撮影した画像をインポートする、といった方法が考えられます。
Photoshopがあるならそちらでエフェクトをかけちゃうのも手です。持ってなくても、ポストプロセシングを使えばGrainのエフェクトを適用した画像を作れる点が良いところ。
Grainを追加する
「Grain」のエフェクトを追加する場合は、「Post Process Volume」のコンポーネントで [Add effect…] ボタンをクリックし、[Unity] -> [Grain] を選択します。
ポストプロセシングを使うための設定は以下の記事をご覧くださいな。
Grainの設定項目
Grainの設定項目は以下のようになっています。Grainの左にあるチェックボックスを外すとエフェクトが適用されなくなります。チェックを外すと全体がグレーアウトされて設定値を変更できなくなるため、うっかり値を変更するのを防ぎたい時はこちらで。
また、右側にあるOn/Offのボタンで切り替えてもOKです。On/Offで切り替える時は値を変更できるので、エフェクトは表示しないけど値は変えておきたい、なんて時にはボタンで切り替えると良いでしょう。
設定値を変える場合は、各項目の左側にあるチェックを入れます。チェックを外した状態だとデフォルトの値が使用されます。
Colored
ColoredはGrainで追加される粒子に色がついているか、いないかの設定です。ColoredがTrueなら左の画像のように様々な色で粒子が表現されるのに対し、ColoredがFalseなら右の画像のようにグレースケールで表現されます。
写真やフィルムの表現を行うならTrue、監視カメラの画像など粗い映像を表現するならFalseが良いですね。
Falseの方がパフォーマンスが良いようです。
Intensity
Grainの強度を設定します。設定値は0から1までで、0だとGrainが表現されず、1なら強めのGrainが描画されます。
ゲームを実行していないエディタ画面で確認するのと、ゲーム実行中の画面で確認するのとでは印象も異なります。プレイヤーが目にするのはゲーム実行中のGrainなので、こちらを見ながら強度を確認すると良いでしょう。
Size
Grainの大きさを変更する設定です。設定値は0.3から3.0まで。0.3だと粒子が小さくなり、3.0だと粒子が大きくなります。
下の画像ではIntensityを1.0にした状態でサイズを変えて比較しています。こうして見ると3.0はかなり粗い感じになりますね。
Luminance Contribution
Luminance Contribution(ルミナンス・コントリビューション)は、画面内の輝度がGrainに与える影響を設定します。
設定値は0から1.0です。0だと輝度に関係なく画面に一様にGrainが広がります。1.0では明るいところではGrainが弱く、暗いところでGrainが強く適用されるようになります。
Grainのデモ
Grainの使用例をいくつか紹介します。
デフォルトのオブジェクト
デフォルトのオブジェクトを使った画面にGrainを適用しました。IntensityやSizeは少し控えめでほんのりとGrainが現れるようにしています。
思い出の酒場
冒険者の宿に併設されていた思い出の酒場のイメージで。これは記事の冒頭に載せていた写真と同じ感じです。
イメージとしては、主人公がたどり着いた村が既に廃墟になっていて、冒険者の宿のマスターが思い出話を語るシーンで流れる映像です。映像の下に字幕でマスターのセリフを入れておくといい感じになるかもしれません。
思い出の家
記憶の中にある思い出の家です。Vignette(ビネット)とDepth of Field(被写界深度)を組み合わせました。ビネットもレトロな感じを表現する技法なので、画像の粗さと組み合わせるとお互いに引き立て合うことができます。Depth of Fieldでぼやけている場所を表現するのも良いでしょう。
サンプルで使ったアセット
サンプルで使ったアセットも紹介します。もし同じ雰囲気で画面を作ってみたい場合は試してみてください。
マスターが話している冒険者の宿は『Village Interiors Kit』を使っています。使ってみた感想やレビューについてはこちらの記事もご参照ください。
アセットストアはこちら。
「思い出の我が家」の夕方の村は『Village Exteriors Kit』を使っています。同様に使ってみた感想やレビューについてはこちらの記事もご参照ください。
アセットストアはこちら。
まとめ
Post-Processing(ポストプロセシング)のエフェクトのひとつであるGrain(グレイン)について使い方とデモを紹介しました。
効果をまとめると、
- 写真や映像を見ている場面の表現
- レトロな映像の表現
- 監視カメラなどの別の視点を表現
といった表現でGrainを使うと良いでしょう。
公式のマニュアルにあるように、ホラーゲームと相性が良いですね。プレイング画面の見やすさとも関係するため、常に使い続けるにはちょっときついですが、演出を考えながら調整するようにしましょう。
以下のページでポストプロセシングのエフェクト一覧をまとめてあるので、もしよかったらこちらもご参照ください。
ゲーム開発の攻略チャートを作りました!
-
前の記事
最初にやっておきたいUnityのチュートリアルのおすすめ 2020.02.10
-
次の記事
【Unity】Lens Distortion(レンズの歪み)の使い方と効果【Post Processing】 2020.02.13
コメントを書く