Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2Dキャラをリッチに魅せる描画テクニック

Avatar for 二宮章太 二宮章太
February 06, 2023

 2Dキャラをリッチに魅せる描画テクニック

2Dキャラのクオリティをもう一段階上げたいと思ったことはありませんか。このセッションでは2Dキャラに適用できる「擬似ライティング」「擬似被写界深度」など、Universal Render Pipelineにおける実装例を交えて、2Dキャラをリッチに魅せるテクニックを紹介します。

Avatar for 二宮章太

二宮章太

February 06, 2023
Tweet

Other Decks in Programming

Transcript

  1. 自己紹介 ⼆宮 章太 2015年にサイバーエージェントに⼊社、Sumzapに配属 iOS/Android向けUnity製ゲームアプリの新規開発を多数経験 対戦アクションバトル/コマンドバトル/UI/ADVなど 幅広い機能の開発に携わる 最近では, ShaderやRendering Pipelineの拡張などを駆使して

    Unityのデフォルトの機能ではできないような特別な演出を実現する業務が多い いろいろ開発をする中で出てきたアイデアの中から 2Dキャラをリッチに⾒せる仕組みを紹介します
  2. 2Dキャラ x 被写界深度について 2Dキャラへの被写界深度表現は難しい ZWrite Onにすると… Z Fighting: 深度Offset 地⾯と⼲渉:

    位置調整 透明pixelもZ: アルファカットアウト それでも半透明部分は綺麗にならない
  3. 3層描画システム RenderFeatureにより 描画処理を挿⼊ 通常の半透明描画処理 奥レイヤの描画 ポストエフェクト 通常の不透明描画処理 ⼿前レイヤの描画 ポストエフェクト バッファ合成

    通常のポストプロセス RenderFeatureにより 描画処理を挿⼊ Directional Blur 奥レイヤ描画 通常描画 ⼿前レイヤ描画 Directional Blur
  4. 3層描画システム RenderFeatureにより 描画処理を挿⼊ 通常の半透明描画処理 奥レイヤの描画 ポストエフェクト 通常の不透明描画処理 ⼿前レイヤーの描画 ポストエフェクト バッファ合成

    通常のポストプロセス RenderFeatureにより 描画処理を挿⼊ Directional Blur 奥レイヤ描画 通常描画 ⼿前レイヤ描画 Directional Blur 奥レイヤオブジェクトにRenderer.renderingLayerMaskを設定 カリング処理により奥レイヤのみを描画 DirectionalBlurのポストエフェクトを⾏う
  5. 3層描画システム RenderFeatureにより 描画処理を挿⼊ 通常の半透明描画処理 奥レイヤーの描画 ポストエフェクト 通常の不透明描画処理 ⼿前レイヤの描画 ポストエフェクト バッファ合成

    通常のポストプロセス RenderFeatureにより 描画処理を挿⼊ Directional Blur 奥レイヤ描画 通常描画 ⼿前レイヤ描画 Directional Blur 同様に、通常の半透明描画処理、⼿前レイヤオブジェクトにも Renderer.renderingLayerMaskを設定 カリング処理により各レイヤを描画する
  6. 描画パスの最適化 通常の半透明描画処理 奥レイヤの描画 ポストエフェクト 通常の不透明描画処理 ⼿前レイヤの描画 ポストエフェクト バッファ合成 通常のポストプロセス Directional

    Blur 奥レイヤ描画 通常描画 ⼿前レイヤ描画 Directional Blur URPの半透明描画パス の描画対象のrenderingLayerMaskを動的に変更し 不要なパスの描画対象も⼀緒に描画する UniversalRenderer.Setupにて半透明描画パスのもつFilteringSettingsを加⼯し、 該当のポストエフェクトがないときには - 奥/⼿前レイヤ描画パス の対象も半透明描画パスで描画 - RenderFeatureで追加した奥/⼿前レイヤ描画パスを無効化 した ポストエフェクトが有効なフレームのみ 奥/⼿前レイヤ描画パスを実⾏することが可能になった