今回もUnityのStandardAssetsにあるスクリプトを使ってみます。
カメラにコントラストのスクリプトを取りつければカメラに描画されるゲームオブジェクトのコントラストの調整をする事が出来ます。
コントラストとは?
色、明るさ、輝度等の差異の事です。
今回はスタンダードアセットにあるスクリプトを使ってこれを調整します。
Contrast Enhance
Contrast Enhanceはアンシャープマスク処理を用いています。
アンシャープマスク処理についてはGIMPという画像編集ソフトのページで解説があったのでそちらを参考にさせて頂きました。
ぼやけている部分を鮮明化するってことですかね?
カメラのインスペクタからAdd Component→Image Effects→Color Adjustments→Constrast Enhance(Unsharp Mask)
Contrast Enhanceの設定値には
Intensity コンストラストエンハンスの強度
Threshold コントラストエンハンスのしきい値
Blur Spread コントラストの比較を行う半径
があります。
Unity実行中に値を変更し、どのような効果があるか確認してみましょう。
↑のようになりました。
Intensityを変更するとわかりやすく鮮明化されているのがわかります(動画の画質の関係で解り辛いかもしれませんが)。
Contrast Stretch
Contrast Stretchは輝度レベルの範囲に応じてコントラストを調整します。
カメラのインスペクタからAdd Component→Image Effects→Color Adjustments→Contrast Stretchを選択します。
Contrast Stretchの設定項目は
Adaptation Speedはコントラストにかかる時間
Limit Minimumはコントラスト後の最も暗いレベル
Limit Maximumはコントラスト後の最も明るいレベル
となっています。
それでは実行して確認してみます。
Unityマニュアルのコントラストストレッチのページでも言及されている通り、暗い部分から明るい部分に移動した時の目がくらむような演出を確認してみます。
ゲーム内のライトの環境光や反射光があるとわかりづらいので設定を変更します。
Ambient SourceをColorにし、Ambient IntensityとReflection Intensityを0にします。
また、ゲーム内に暗い部分を作成する為Cubeで暗い洞窟を作成します。
環境光と反射光をなくしたので洞窟内は真っ暗になります。
それではキャラクターを動かし確認してみましょう。
カメラをキャラクターの子要素に配置したのでキャラクターが後ろを向くとパッとカメラが切り替わります。
↑のようになりました。
画質の問題で解り辛いですが・・・(^_^;)
最初は洞窟の前を向かせておきその後後ろに進み洞窟に入ります。
その後にまた洞窟の外を向くとコントラストがかかっているのが確認できます。
洞窟に入らなくてもカメラの描画内が暗くなりすぐに明るい部分を向かせると同じようにコントラストが調整されます。