Unityに関連する記事です

 ゲーム画面の見栄えをよくするための機能を実装します。


<実装画像 .櫂好肇廛蹈札奪轡鵐阿△蝓



<実装画像◆.櫂好肇廛蹈札奪轡鵐阿覆掘




 以下の内容で実装を進めていきます。

手順11 ーポストプロセッシングの実装ー




 新しい学習内容は、以下の通りです。

 ・URP 用 Cinemachine ポストプロセッシング



URP 用ポストプロセッシングを利用する

1.設計


 ポストプロセッシングとは Unity の持つ機能の1つです。
カメラにエフェクト用のフィルターをかけて、ゲーム画面全体の画像に対して演出を行い、見た目を豪華に装飾します。

 ポストプロセッシングには複数のエフェクトが用意されており、それらを上手く組み合わせる事によって、相乗効果を生み出せます。

 この機能は2Dだけではなく、3Dでも機能します。

参考サイト
Unity 公式マニュアル
ポストプロセス
https://docs.unity3d.com/ja/current/Manual/PostPro...
Unity 公式マニュアル
ポストプロセスを理解する
https://docs.unity3d.com/ja/current/Manual/BestPra...
STYLY 様
Post Processingの基礎を理解する【Unity】
https://styly.cc/ja/tips/unity_postprocessing_mast...
エクスプラボ 様
【Unity】ポストプロセシング(Post-Processing)を使ってプロ級の画面に
https://ekulabo.com/post-processing



 従来のポストプロセッシングは PostProcessing Stack V2 を利用していますが、
URP の場合には PostProcessing 3 が標準機能として利用できるようになっていますので、そちらを活用していきます。


参考サイト
HatenaBlog LIGHT11 さま
【Unity】Universal Render Pipelineでポストエフェクトを適用する



 ポストプロセッシングはカメラに対して適用しますが、通常の Camera コンポーネント用のポストプロセッシングと
Cinemachine コンポーネント用のポストプロセッシングが、別々に用意されています。

 今回はカメラには Cinemachine を利用していますので、Cinemachine 用に用意されているポストプロセッシングを利用します。

 また、 URP の場合にも、URP 用のポストプロセッシングを利用することになりますので、覚えておくとよいでしょう。

 ポストプロセッシングは Unity の機能ですが、URP の場合には標準機能となります。そのため今回はインストール作業は不要です。

 URP 以外の環境でポストプロセッシングを利用する場合には、PackageManager からインストールが必要になります。


2.URP Render Asset の設定を確認する


 以下の場所にある URP 用の設定を行っているアセットの確認を行います。
このファイルはスクリプタブル・オブジェクトになります。

パス
Assets/Settings/URP-HighFidelity-Renderer.asset


フォルダ



 パス先が見つからない場合には、Unity の左上のエディターメニューから Edit → Project Settings を選択します。
Project Settings ウインドウが開いたら左側の項目から Graphics を選択し、
右側の最上部にある Scriptable Render Pipeline Settings に登録されているアセットをクリックするとファイルが見つかります。


Project Settings ウインドウ




 見つかった URP Render Asset 用のスクリプタブル・オブジェクトのファイルを選択すると、インスペクターに設定内容が表示されます。
その中にある Post Processing の Enabled の部分にチェックが入っているかを確認し、入っていない場合にはチェックを入れます。


URP Render Asset インスペクター



 以上で URP Render Asset の設定は完成です。


3.Main Camera ゲームオブジェクトの設定を行う


 下記のマニュアルに基づいて、カメラなどに順番に設定を行っていきます。
こちらにはモバイル向けの負荷などの解説も載っていますので、必ず目を通しておきましょう

Unity 公式マニュアル
Universal Render Pipeline での後処理



 URP 環境において Cinemachine を利用している場合、Virtual Camera 側ではなく Main Camera ゲームオブジェクトの設定を行います。

 ヒエラルキーにある Main Camera ゲームオブジェクトを選択し、インスペクターにある Camera コンポーネントを確認します。
Rendering の項目の中にある Post Processing の部分にチェックを入れます。

 この設定にすることで、すべての Cinemachine のカメラに Post Processing が有効になります。


インスペクター



 以上で設定は完了です。


4.Global Volume ゲームオブジェクトを作成し、設定を行う


 つづいて、ゲーム画面内のエフェクトのかかる範囲を指定するための設定を行います。
これは今までの Post Processing とおなじで、Volume という系統のコンポーネントで管理されていますので、
そちらの機能を持つゲームオブジェクトを作成します。

 Unity の左上のエディターメニューより、Game Object → Volume → Global Volumeを選択してください。
ヒエラルキーに Global Volume ゲームオブジェクトが作成されます。

 カメラの位置に関わらず、ゲーム画面全体にエフェクトを掛けたい場合には、この Global Volume コンポーネントを利用します。
それ以外に用意されている Sphere Volume などは、コライダーの形状とセットになっており、
こちらを利用すると、指定したコライダーの中に侵入したときだけ Post Processing のエフェクトを適用するような設定が行えます。


インスペクター



 次に実際にポストプロセッシングに利用するカメラのエフェクトを追加します。


5.Global Volume コンポーネントの設定を行い、エフェクトの項目を追加する


 ここからの手順は従来の Post Processing と同様です。
まずは Profile ファイルを作成し、そちらにエフェクトの情報を設定していきます。

 複数の Profile ファイルを作成しておくことで、設定済のエフェクトを Profile 単位切り替えて利用できる部分も同様になっています。



 ヒエラルキーにある Global Volume ゲームオブジェクトを選択します。
インスペクターを確認し、 Volume コンポーネント内にある Profile の部分が None になっています。
Profile ファイルとは、ポストプロセッシングの設定をするためのファイルです。

 Profile 欄の右横にある New ボタンを押してください。
新しくポストプロセッシング用のアセットが作成されて、自動的に Profile にアサインされます。

 このファイルは自動的に Scenes フォルダ内に Global Volume Profile という名前のファイルで作成されます。

フォルダ



インスペクター画像




 Profile ファイルを選択しているとインスペクターに Add Override というボタンが表示されます
このボタンを押すことにより、ポストプロセッシング用の Profile アセットファイル内にエフェクトの情報を追加できます

 今回は複数のエフェクトを実装しようと思いますが、追加の手順は同じです。
Add Override ボタンを押して、Post Processing → 追加したいエフェクトを選択します。
例えば、Post Processing → Bloom を選択すると、Volume のインスペクターに Bloom コンポーネントが追加されます。

 この手順を繰り返して、以下のエフェクトを追加してください。

・Bloom
・Vignette
・Lift Gamma Gain
・Color Adjustments
・Tonemapping

インスペクター画像


 エフェクトについては、従来の Post Processing と同様に、とても多くの種類が用意されています。
同様の効果のものもあれば、URP 専用のものもあります。
今回利用していないものについても、自分で設定して調整を行ってみてください。


参考サイト
Unity 公式マニュアル
エフェクトリスト(URP 12.1)
HatenaBlog Machio_Kinniku’s diary 様
URP(Universal Render Pipeline)におけるPostProcessing項目


 最後に、それぞれのエフェクトの内容を設定し、シーン全体にポストプロセッシングによるエフェクトを適用していきます。


6.Bloom の設定を行う


 Bloom は明るい光があふれているような効果をもたらします。

参考サイト
Unity 公式マニュアル
Bloom



 今回は2つの項目を設定します。利用するのは Threshold と Intensity です。詳細な説明については、上記のサイトを確認してください。
それ以外についても操作しながら、どのような効果が働くのかを試しておくとよいでしょう。

 Threshold(スレッショルド)は閾(しきい)値です。この値を 0.8 に設定します。
 
 Intensity(インテンシティ)は光の強度です。この値を 1.0 に設定します。


インスペクター画像



 Game ビューを確認しながら、どのような効果になるかを確認してみてください。


7.Vignette の設定を行う


 Vignette(ビネット)は、画像の端を暗くしたり、彩度を下げるエフェクトです。
画面の中央にはエフェクトはかからず、主に四隅にエフェクトをかけます。

 雰囲気のある画面作りが出来る他、画面の周りが暗いため、画面中央にユーザーの視線が集めることにも一役買います。

参考サイト
Unity 公式マニュアル
Vignette



 参考用のインスペクター画像を掲載しますが、ご自分の画像に合わせて調整してください。


インスペクター画像


 調整方法ですが、まずは Vignette 内のすべての項目にチェックを入れてから、Intensity の値のみを動かしてみてください。
どのようなエフェクトになるのかが分かります。

 Intensity の値をある程度で設定したら、Smoothness や Roundness といった他の値を操作します。
そうすることにより、四隅をどの程度ぼかすのか、暗い部分に丸味をつけるのか、といった内容が、どの項目によって制御されていることが理解しやすくなります。

 Center の値を変更することにより、Vignette を適用する中心地点を変更できますが、
初期値で画面の中央になっていますので基本的には変更は不要です。

 Color も初期値のままで問題ありません。
 
 画面の周囲の暗さが変わるだけで、シーン全体の印象が変わることが分かります。


8.Lift Gamma Gain の設定を行う


 以前の Post Processing のエフェクトの1つである Color Grading に TrackBalls として付属していた効果です。
3つの色相環を操作しながら3方向のカラーグレーディングを設定することができます。


参考サイト
Unity 公式マニュアル
Lift Gamma Gain


 
 操作したい TrackBalls にチェックをいれることで有効化されます。

 Lift の値を変更すると、暗部の色が強調されます。影の部分を見ながら操作を行うと設定しやすいです。

 Gamma の値を変更すると、中間部の色が強調されます。

 Gain の値を変更すると、ハイライトの色が強調されます。


インスペクター画像



 任意に設定してみましょう。


9.Color Adjustments の設定を行う


 Color Adjustments(カラー・アドジャストメンツ)とは、画像の最終的な色や輝度に対して調整を行う機能で、色調補正とも呼ばれます。
以前の Post Processing では Color Grading として設定できた機能です。


参考サイト
Unity 公式マニュアル
Color Adjustments



 このエフェクトはゲーム画面を装飾する上で欠かせない機能の1つであり、ほぼすべてのゲームにおいて用いられているエフェクトの1つになります。
今回のシーン全体の色味や明るさは、すべてこのエフェクトによって調整されています。



 参考画像として設定内容を掲載しておきます。


インスペクター画像



 設定した内容についてまとめておきます。



 各項目内にはチェックがあり、チェックのある部分のみが適用される効果になります。

 Post Exprosure はエフェクト適用時の露出(EV)値の設定です。

 Contrast は色調の設定です。プラス方向にすると色調の範囲が広がり、マイナス方向にすると色調の範囲が狭まります。

 それ以外の項目は未設定ですが、いずれも実際に操作することにより、適用する内容が理解しやすくなりますので、
ご自分のゲームシーンを見ながらどんどん変更して調整を繰り返してみてください。


10.Tonemapping の設定を行う


 トーンマッピングとは、ゲームに限った機能でなく、主に、画像を綺麗に見せるための機能の1つです。
以前の Post Processing においては Color Grading の効果に含まれていたものです。

 人間の瞳は、目に入る光の量を、環境の明暗に合わせて自動的に調整していますが、
LDR(ローダイナミックレング。ダイナミック レンジの低い)環境において、
HDR(ハイダイナミックレンジ)の光の画像を自然に見れるように調整するのが、いわゆるトーンマッピングと呼ばれる機能です。

参考サイト
Unity 公式マニュアル
Tonemapping



 Mode の設定を None から ACES に変更します。彩度とコントラストがハッキリとするような効果が得られます。
また、もう1つの設定である Neutral の設定と比べてみて、どちらを利用しても構いません。


インスペクター画像



11.ゲームを実行して調整する


 実際にゲームを起動して、微調整を行ってください。

 またこれら以外の機能も利用して、自分好みの調整を行ってみてください。
この機能によって驚く程にシーン内のゲーム画面の見え方が変わることが体験できると思います。

 以上でこの手順は終了です。

 次は 手順12 ー−? です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます