読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】サクッと適応出来る 綺麗な全部入りイメージエフェクト、 New Post-processing Stack (Pre-Release)

New Post-processing Stackのプレリリース版が公開されたみたいです。

 

New Post-processing Stack

新しいImageEffectとして、überなImageEffectを作ったみたいです。

下のフォーラムから内容を確認出来ます。

https://forum.unity3d.com/threads/new-post-processing-stack-pre-release.435581/

 

サクっと綺麗にするImageEffectを適応する

新しく公開された仕組みでは、ImageEffectの適応が非常に簡単…というか、分かりやすく…でも無いですが、まぁ知識が無くてもある程度綺麗にしやすくなります。

以前はコンポーネント単位で色々と取捨選択する必要があり、何を設定すればよいかわかりにくかったですが、新しい仕組みでは設定できる項目にチェックボックスがあり、とりあえず全部チェックを入れればそれなりに綺麗に見えます。

f:id:tsubaki_t1:20161012003823g:plain

 

また処理の適応順番も正しく設定されているらしく、その辺りの知識がなくともソレナリに見えるようになるみたいです。

 

パフォーマンスと表現も向上

ベースになるものはCinematic image effectsですが、ImageEffectを統合して最適化する事で、パフォーマンスの向上が見込めるみたいです。CommandBufferベースの物に差し替わってます。

 

tsubakit1.hateblo.jp

また、Cinematic image effectsと比較して追加で

  • フルACES準拠HDRカラーグレーディングパイプライン
  • 新しく改良された色収差
  • Lens dirt effect(レンズの汚れの効果)
  • ヒストグラムベースの Eye Adaptation
    (暗い所に目が馴染んだ時に明るい所に出ると白飛びするアレ)
  • Temporal Anti-aliasing
  • Camera Grain(ノイズ)
  • 豊富なデバッグおよび監視ツール

といった表現も追加されたみたいです。その代わりDOFが現在動作しません。(項目はあるので、消える訳ではないみたいです)

 

設定できる効果は、下のWikiで確認出来ます。

github.com

エフェクトの効果はアセット単位で管理出来る

もう一つの特徴が、エフェクトの効果をアセットとして保持している点です。その為、Cameraにコンポーネントを足してPrefabにする等と比較し、プラットフォームや環境毎に設定を差し替えるといった事が割と簡単に出来そうです。

tsubakit1.hateblo.jp

また、アセットに情報が格納されているので、実行時に値を変更しても保持されます。

tsubakit1.hateblo.jp

もしシーン毎に個別の設定がある場合は、エディタ拡張でScriptableObjectをエディタ拡張で生成・カメラに登録しておけば個別に設定が可能です。

var behaviour = GetComponent<PostProcessingBehaviour> ();
behaviour.profile = ScriptableObject.CreateInstance<PostProcessingProfile> ();

 但しこの場合、シーン上で変更を加えると内容は破棄されます。

 

コードはオープンソースで公開

このプロジェクトは、オープンソースで展開するみたいです。
今までと異なりbitbacketではなくgithubに上がっています。

github.com

使い方

  1. まず、Releases · Unity-Technologies/PostProcessing · GitHubからUnitypackageをダウンロードしてインポートします。
  2. 次にAssets>Create>Post-ProcessingProfileでポストエフェクトの設定ファイルを作ります。
  3. 作成したPost-Processing Profileを選択して、使用したい画面効果にチェックを入れます。
  4. 次にシーン内のCameraにPost Processing Behaviourコンポーネントを追加し、Post-Processing Profileを追加するだけです。

f:id:tsubaki_t1:20161014055011j:plain

f:id:tsubaki_t1:20161014055144j:plain

f:id:tsubaki_t1:20161014055705j:plain

とりあえずのお薦めは、Antialiasing、Ambient Occlusion、ScreenSpaceReflection、Motion Blur、Bloom、Color Grading or User Lut、Vignetteです。屋内と屋外を走り回る系のゲームならEye Adaptionも入れても良いかもしれません。

重いなら、ScreenSpaceReflectionやAmbient Occlusionを外すのが良いかなと。

 

 Tips

各エフェクトの設定は、Copy Settingsでコピー、Paste Settingsでペースト出来ます。

f:id:tsubaki_t1:20161014061313j:plain

 

Post-Processing Profileに設定する項目は、スクリプト側からもアクセスが可能です。但し、Post-Processing Profileをアセットとして書き出している場合、変更内容がアセットにそのまま適応されます。

f:id:tsubaki_t1:20161014062004j:plain

 

全込エフェクトなので、パフォーマンスの低いPCでは全エフェクトをONにすると負荷が高いかもしれません。シーン編集時に「重い」と感じたら、ImageEffectのシーン適応を外します。

f:id:tsubaki_t1:20161014062553j:plain

 

関連

tsubakit1.hateblo.jp

www.slideshare.net

その他

そういえばシリコンスタジオさんのYEBIS for Unityも最近上がってました。これを近いうちに試したい(割と近いうちに

3dnchu.com