YEBIS適用前 | YEBIS適用後 |
---|---|
![]() |
![]() |
YEBIS for Unityは、ポストエフェクトライブラリ「YEBIS」を利用したUnity用のプラグインです。
Unityでレンダリングしたシーンに「YEBIS」のポストエフェクトをかけることができます。
「YEBIS」の光の効果やピンボケ等の高品質な画像処理エフェクトをポストエフェクトと呼びます。
- プロジェクトにYEBIS.unitypackageをインポート
"Assets" > "Import Package" > "Custom Package..." > "YEBIS.unitypackage"
- HierarchyよりMainCameraを選択
- YebisBehaviourをComponentより追加
"Component" > "YEBIS" > "YebisBehaviour"
- YebisParameterの作成,適用
YEBIS for Unity 評価版では利用可能なGraphics APIは以下の通りです。
- DirectX11 (Windows 64bit)
- OpenGLCore (Windows/MacOSX 64bit)
- OpenGLES3 (Android/iOS)
- OpenGLES2 (Android/iOS)
Windows版ではGraphics APIとしてDirectX11とOpenGLCoreが利用できます。
UnityのWindowsのデフォルトのGraphics APIはDirectX11であるため、特に問題が無ければ設定の必要なくYEBISを利用できます。
Windows版でOpenGLCoreを利用する場合の設定は以下の通りです。
- Player Settingsを開く
"Edit" > "Project Settings" > "Player" - "Auto Graphics API for Windows"のチェックボックスを外す
"Settings for PC, Mac & Linux Standalone" > "Auto Graphics API for Windows" - ”+”を押して”OpenGLCore”を選択し,ドラッグをしてGraphics API上部に配置
- Player Settingsを開く
"Edit" > "Project Settings" > "Player" - "Auto Graphics API for Mac"のチェックボックスを外す
"Settings for PC, Mac & Linux Standalone" > "Auto Graphics API for Mac" - ”+”を押して”OpenGLCore”を選択し,ドラッグをしてGraphics API上部に配置
- Player Settingsを開く
"Edit" > "Project Settings" > "Player" - "Auto Graphics APIs"のチェックボックスを外す
"Settings for Android" or "Settings for iOS" > "Auto Graphics API" - "+"を押して"OpenGLES3",もしくは"OpenGLES2"を選択し,ドラッグをしてGraphics API上部に配置
OpenGLES2を利用した場合,一部ポストエフェクトが制限されています。
- UnityのMain CameraのHDRが有効化されていると,YEBIS内部のポストエフェクトもHDRモードとなり,クォリティが向上します。
- OpenGLES2ではYEBIS内部のHDRモードは無効化されます。
- OpenGLES3でも16bit浮動小数点テクスチャに未対応のデバイスの場合はYEBISのHDRモードは無効化されます。
- HDRモードとLDRモードではポストエフェクトの値(例:グレアの明るさ)の表現が異なるものとなります。
そのため,利用するデバイスに合わせてMain CameraのHDRを有効化してからYEBISのパラメータを設定してください。 - HDRモードの使えるデバイスであるならば,Main CameraのHDRモードをONにしてください。
- MainCameraのHDRを有効にするためには,Unityのアンチエイリアス設定をOFFにする必要があります。
"Edit" > "Project Settings" > "Quality" > "Anti Aliasing"
- YEBISパラメータは,YebisBehaviourのインスペクタからYebisParameterのアセットを選択し,
"Edit Parameter”からYebisParameterのエディタウィンドウから編集できます - また,YebisParameterのアセットを選択することでインスペクタに表示されるエディタから直接パラメータを設定することもできます
- 「自動露出調整(Auto Exposure)」のチェックをはずします。
- 「露出値(Exposure)」の値を変更して、露出値を直接設定できます
- シーンのレンダリング画像の明るさを自動調節することができます。
- 「自動露出調整(Auto Exposure)」をチェックして自動露出調整を有効化します。
- 「自動露出の明るさ(Middle Gray)」の値を変更して、自動露出調整の目標とする画面の明るさを設定できます。
- GLES2では無効
- 感光シミュレーションの特性曲線を設定します。
- 「コントラスト(Filmic Contrast)」の値を変更して、全体的なコントラストを設定します。 高い値を指定するほど、黒潰れや白飛びが発生しやすくなります。
- LDRモードでは感光シミュレーションのパラメータは無効となります。
- GLES2では無効
- 「グレアの有効化(Enable Glare)」をチェックしてグレアを有効化します。
- 「品質(Quality)」の値を高くするほど品質の高いグレア表現が可能になります
- 「形状(Shape)」からプリセットされたグレア形状を選択します。
タイプ | グレア形状 |
---|---|
BLOOM | ブルームのみ |
LENSFLARE | ブルーム,ゴースト(レンズフレア),残像を含んだタイプ GLES2では無効 |
STANDARD | 基本的な要素を全てバランス良く含んだタイプ |
CHEAPLENS | くっきりしたゴーストを含む、安価なレンズの表現 |
AFTERIMAGE | 非常に残像の強いタイプ GLES2では無効 |
FILTER_CROSSSCREEN | クロススクリーンフィルタ. 十字型の光芒発生器を装着したレンズ |
FILTER_CROSSSCREEN_SPECTRAL | 分散の強いクロススクリーンフィルタ. 分散の強い十字型の光芒発生器を装着したレンズ |
FILTER_SNOWCROSS | スノークロスフィルタ. 六方向の光条発生器を装着したレンズ GLES2では無効 |
FILTER_SNOWCROSS_SPECTRAL | 分散の強いスノークロスフィルタ. 分散の強い六方向の光条発生器を装着したレンズ GLES2では無効 |
FILTER_SUNNYCROSS | サニークロスフィルタ. 八方向の光条発生器を装着したレンズ GLES2では無効 |
FILTER_SUNNYCROSS_SPECTRAL | 分散の強いサニークロスフィルタ. 分散の強い八方向の光条発生器を装着したレンズ GLES2では無効 |
HORIZONTALSTREAK | 水平フレア. 水平方向に強い光条を持つタイプ. アナモルフィックレンズの簡易表現 |
VERTICALSTREAK | 垂直フレア. 垂直方向に強い光条を持つタイプ. CCDカメラのスミア表現 |
- 「輝度(Luminance)」の値を変更して、グレア全体の輝度を設定することができます。
- 「高輝度抽出の閾値(Threshold)」で指定した値よりも明るいピクセルのみ抽出され、グレアを発生します。
- GLES2では無効
- 「非線形マッピング(RemapFactor)」の値を変更して、グレアの輝度成分を非線形に伸張(または圧縮)マッピングすることができます。
- 自然な輝度の計算ではありませんが、見た目の効果を強調することができます。
- GLES2では無効
- 「グレアの有効化(Enable Glare)」と「ライトシャフトの有効化(Light Shaft)」をチェックしてライトシャフト(ゴッドレイとも呼ばれます)を有効化します。
- GLES2では無効
-
以下のパラメータでライトシャフトの見た目を調整することができます。
- 光源の位置(Position)
- 光源の色(Color)
- 光芒の長さ(Length)
- 角度減衰率(Angle Attenuation)
- 乱数マスクの強さ(Noise Mask)
- 乱数マスクの細かさ(Noise Frequency)
- 回折リングの強さ(Diffraction Ring)
- 回折リングの角度(Diffraction Ring Radius)
-
ヘルパースクリプトである,LightShaftFocuserをYebisBehaviourとともにCameraのコンポーネントに追加すると, シーン内の選択したオブジェクトの位置にライトシャフトをかけることができます。
-
GLES2では無効
- 「被写界深度エフェクト(Enable Dof)」をチェックして被写界深度効果を有効化します。
- 「品質(Quality)」の値を高くするほど品質の高いボケ表現が可能になります。
- デバイスによって品質の上限値は異なります。
PCプラットフォームならば13まで,モバイルならば10までの品質を利用できます。
「品質(Quality)」の値が11以上の時,ボケ味シミュレーションを利用することができます。
- 「絞り羽根枚数(Bokeh Blades)」の値を変更して、絞りを構成する羽根の枚数を設定します。
- 「円形絞りの度合(Bokeh Circularity)」の値を変更して、ボケの円形度合いを設定します。
- 「レンズのタイプ(Bokeh Averration)」を指定してボケ味のタイプを設定します。
- 「収差の強さ[Bokeh Longitudinal Aberration]」の値を変更して、前ボケ後ボケの特徴の強さを設定します。
- 「ピンボケに対する口径食(Optical Vignetting)」をチェックして口径食のシミュレーションを有効化します。 レモンボケ、キャッツアイエフェクト等とも呼ばれます。 (後述のレンズシミュレーションがSimulationモードのときのみ有効となります)
- 「センサーサイズ(ImageSensorHeight)」の値を変更して感光素子(フィルム、デジタルカメラのイメージセンサに相当)の縦サイズを設定します。
- 「センサーサイズ(ImageSensorHeight)」の値はシーンの作業単位で設定します。
- Unityでは物理係数やモデルデータのデフォルト設定の作業単位として一般に1メートルが利用されます。
- Unityの作業単位(スケール)はユーザーが自由に設定できますので、作業中のシーンの縮尺に合わせて換算した値を設定します。
- 例えば35mmフィルムの縦サイズである24mmを設定する場合、シーンの作業単位がcmであれば2.4(cm)を設定します。
- 「絞りのFナンバー(Aperture F-number)」の値を変更して絞りのFナンバーを設定します。
- 「フォーカスモード(Focus Mode)」からフォーカスのタイプを選択します。
タイプ | フォーカスモード |
---|---|
Manual | 手動設定モード |
AutoFocus | オートフォーカスモード |
-
Manualモードでは手動で「フォーカス距離(Focus Distance)」の値を直接設定します。 「フォーカス距離(Focus Distance)」のスライダー横の「macroボタン」をONにすることで,カメラに近い位置のフォーカス位置の調整が行いやすくなります。
-
AutoFocusモードでは「オートフォーカスの測距点(Auto Focus Position)」で指定された画面上の位置に対してオートフォーカスを行います。
GLES2では無効 -
ヘルパースクリプトである,CameraObjectFocuserをYebisBehaviourとともにCameraのコンポーネントに追加すると, シーン内の選択したオブジェクトの位置にオートフォーカスをかけることができます
- GLES2では無効
- 「周辺減光エフェクト(Vignette Mode)」から周辺減光エフェクトのタイプを選択します。
タイプ | 周辺減光エフェクト |
---|---|
Off | 周辺減光エフェクトなし |
Effect | 擬似的な周辺減光エフェクト |
Simulation | 周辺減光の光学的なシミュレーション |
- 「周辺減光エフェクト(Vignette Mode)」を「VIGNETTE_EFFECT」に設定します。
- 「光量低下の強度(Vignette Intensity)」の値を変更して、画面中央から離れるほど露出が落ちる周辺光量低下エフェクトの強さを設定します。
- 「周辺減光エフェクト(Vignette Mode)」を「VIGNETTE_SIMULATION」に設定します。
- 「コサインn乗(Power of Cosine)」の値を変更して、コサイン4乗則による減光シミュレーションを設定します。一般的なレンズでは0.5~1.0の値を設定します。
- 「イメージサークル(Image Circle)」の値を変更して、画像が明るく映る範囲のおおよその直径を設定します。画面の高さを1.0とした比率で設定します。
- (より正確な説明)口径食を原因とする周辺減光により、輝度が半分まで落ちる円の直径を設定します。
- 「半影の広さ(Penumbra Width)」の値を変更して、イメージサークルで明るい領域と暗い領域の境界にできる半影部分の帯の広さを設定します。1.0を設定すると半影部分は画面の中央まで届く幅になります。
- 周辺減光の光学的なシミュレーションを行うとき,周辺減光の強度は被写界深度の設定である 「Film Size」「Aperture Fnumber」「Focus Distance」などのパラメータによって光量低下の表現が影響を受けます。
- 「歪曲収差(Lens Distortion)」をチェックしてレンズディストーションを有効化します。
- 「アナモルフィックレンズ(Anamorphic Lens)」をチェックしてアナモルフィックレンズの効果を有効化します。
- 画面の歪みやグレアの形状など、アナモルフィックレンズ特有の効果が有効になります。
- 「色相(Hue)」の値を変更して色相変換を設定します。
- 「彩度(Saturation)」の値を変更して彩度変換を設定します。
- 「変調(Modulation)」の値を変更して色のスケーリングを設定します。
- 「バイアス(Bias)」の値を変更して色のバイアスを設定します。
- 「モノトーン(Monotone Color)」の値を変更してモノトーン変換の色の設定を行います。
- 「モノトーン変換の割合(Monotone Ratio)」の値を変更してモノトーン変換のかかり方の設定を行います。
- 「ホワイトバランス(White Balance)」の値を変更してホワイトバランスの補正目標の色温度をケルビン度で設定します。
- 「ガンマ補正(Gamma)」の値を変更してガンマ補正を設定します。
- Unityのカラー空間の設定が「ガンマパイプライン」の場合はgamma=2.2を設定するとディスプレイのガンマ補正を行う操作に対応しますが, 「リニアパイプライン」の場合はUnity側でディスプレイへの出力時にガンマ補正が行われるため,二重にガンマ補正を行わないようにgamma=1.0を指定すると正しい補正となります。
- GLES2では無効
- GLES2では無効
- 「モーションブラーの有効化(Enable Motion Blur)」をチェックしてモーションブラーを有効化します。
- Unity5.4以降のバージョンではオブジェクトが動く場合,カメラが動く場合のモーションブラーを表現できますが、 Unity5.3以前のバージョンではカメラが動く場合のモーションブラーのみ表現できます。
- 「時間比(Blur Time Ratio)」の値を変更して、1フレームあたりのシャッター開放時間の比率を設定します。1.0を設定すると、シャッター角度360度に相当するモーションブラーが発生します。
- 「最大の長さ(Max Blur Length)」の値を変更して、モーションブラーの最大の長さを制限することができます。画面の高さを1.0とした比率で設定します。
- GLES2では無効
- 「SSAOの有効化(Enable SSAO)」をチェックしてSSAOを有効化します。
- 「色(Color)」の値を変更して、SSAOの色を設定します。
- 「サンプル数(Samples)」の値を変更して、SSAOのサンプル数を設定します。値を大きくするとSSAOの品質は高くなります。16~25程度の値が高速で無難な結果になります。
- 「サンプル半径(Sample Radius)」の値を変更して、SSAOのサンプルの物理半径を設定します。
- 「サンプル半径(Sample Radius)」の値はシーンの作業単位で設定します。
- 大きな値を設定するほど広い範囲を解析しますが、サンプリングはその分まばらになるため正確な判定が難しくなります。
- 「強さ(Scale)」の値を変更して、SSAOのかかり方の強さを設定します。0.0を指定するとSSAOは無効になります。
- 「コントラスト(Contrast)」の値を変更して、SSAOのかかり方のコントラストを設定します。0.0を指定するとSSAOは無効になります。
- フィードバック画像(前フレームまでの残像)を利用したエフェクトを設定することができます。
- GLES2では無効
- 「フィードバックエフェクトの有効化(Enable Feedback Effect)」をチェックしてフィードバックエフェクトを有効化します。
- 「強さ(Feedback Weight)」の値を変更して、フィードバック画像の重みを設定します。
- 「回転(Feedback Rotation)」の値を変更して、フィードバック画像の回転を設定します。
- 「スケーリング(Feedback Scaling)」の値を変更して、フィードバック画像のスケーリングを設定します。
- 「色相(Feedback Hue)」の値を変更して、フィードバック画像の色相変換を設定します。
- 「彩度(Feedback Saturation)」の値を変更して、フィードバック画像の彩度変換を設定します。
- 「コントラスト(Feedback Contrast)」の値を変更して、フィードバック画像のコントラスト変換を設定します。
- 「明度(Feedback Brightness)」の値を変更して、フィードバック画像の明度変換を設定します。
- 色収差エフェクトを設定することでレンズの屈折による色ずれ表現を与えることができます。
- GLES2では無効
- 「色収差エフェクトの有効化(Enable Chromatic Aberration)」をチェックして色収差エフェクトを有効化します。
- 「波長のサンプル数(Samples)」を設定して、色収差を表現するためのサンプリングする波長の数を指定します。
- 「倍率色収差の分散の強さ(Magnification Dispersion)」の値を変更して、収差の倍率の分散の強さを指定します。
- 「一様な収差の分散の強さ(Uniform Dispersion)」の値を変更して、すべての位置で発生する収差の分散の強さを指定します。
- カメラの撮像素子に生じるノイズによるエフェクトを設定できます。
- GLES2では無効
- 「イメージセンサーノイズの有効化(Enable ImageSensor Noise)」をチェックしてイメージセンサーノイズを有効化します。
- 「ノイズの大きさ(GrainSize)」を設定して、撮像素子に生じるノイズの大きさを指定します。
- 「乗算ノイズの強度(Multiplicative Noise Intensity)」を設定して、乗算ノイズの強さを指定します。
- 「加算ノイズの強度(Additive Noise Intensity)」を設定して、加算ノイズの強さを指定します。
- 「乗算ノイズの彩度(Multiplicative Noise Saturation)」を設定して、乗算ノイズの彩度を指定します。
- 「加算ノイズの彩度(Additive Noise Saturation)」を設定して、加算ノイズの彩度を指定します。
- 「FXAAの有効化(Enable FXAA)」をチェックしてフルスクリーンアンチエイリアスを有効化します。