非写実的レンダリング

非写実的レンダリング (ひしゃじつてきレンダリング、: non-photorealistic renderingNPR) とは、非写実的なコンピューターグラフィックレンダリングのことである。ノンフォトリアリスティックレンダリングとも言う。

非写実的レンダリングは、写実的レンダリング以外の全てを含むため、様々な画風・用途 (漫画、イラスト、スケッチ、セルアニメ、テクニカルイラストレーション水彩油絵水墨画日本画点描ドット絵など) のために様々な手法が存在する。

3DCGにおけるNPRレンダリング技法[編集]

レンダリング手法[編集]

大域照明 (グローバルイルミネーション、GI) レンダリング
一般的な物理ベースの大域照明レンダラー (Arnold、V-Ray、Cycles等) を使って非写実レンダリングを行うことも可能である。
ただし、大域照明レンダリングを行う場合、シーンに光が増殖しないようにシェーダーがエネルギー保存の法則を満たす必要があるほか、重点サンプリングのためにシェーダー (OSLシェーダー、レンダラー固有のC++シェーダー等) でライトベクトルが使えないなどの制限が存在し[1]、使える非写実的シェーディングモデルが限られてくる。
局所照明 (ローカルイルミネーション) レンダリング (ラスタライザとレイトレーサのハイブリッドレンダリング)
RenderMan/REYES (廃止)やその互換実装 (3DelightのRSLモード (廃止) 等)、Mental Ray (開発終了)、Maya Software、3ds Max Scanline、Blender Internal (廃止)などが、このレンダリング手法に対応している。
シェーディング言語としては、RSLシェーダーやMetaSLシェーダーが使われている。エネルギー保存の法則を満たす必要が無いため様々な非写実的シェーディングモデルが使いやすいものの、レイトレースでの反射回数を増やす場合、アーティファクトが起こりやすくなり、反射回数を減らす場合、補助ライトを増やす必要がある。
ラスタライズレンダリング
ゲームエンジンなどで使われている。
シェーディング言語としては、GLSLシェーダーやHLSLシェーダーが使われている。ラスタライズだけでなくレイマーチングや画面空間レイトレーシングなどと組み合わせる事もある。アーティファクトが起こりやすい。
DirectX 12以降のDirectX Raytracing英語版 (DXR)、VulkanのVK_KHR_ray_tracing拡張、Metal 2のMetal Performance Shaders ray intersector等のリアルタイムレイトレーシングAPIが登場し、UnityUnreal Engineなどのゲームエンジンもハイブリッドレンダリングに対応してきている。
ベクターレンダリング
ベクターレンダラー (Maya Vector、BlenderのFreestyle等) が存在し、エッジレンダリングやベクター画像出力のために使用されている。

シェーディング[編集]

シェーディングは光に基づいて色(陰影)を変化させる。物理ベースシェーディングの場合、物体に物理的材質(アルベドやラフネスなど)を設定し、材質と光源の相互作用を計算することで色を算出する。NPRでは単純な計算や色の直接的変換など、物理現象に縛られないシェーディングがしばしばおこなわれる。

NPRでは現実における光の反射・散乱等の原理に基づかないシェーディングがしばしば取り入れられる。例えばハーフ・ランバート・シェーダーでは光が物体の内部にまで入り込んで散乱するような非写実的ライティングをおこなう。またライティング結果の二値化・三値化もしばしばおこわれる。例えばセル画風にする場合、ライティング結果を「主色」と「影色」の二色または三色に変換することが行われている。

NPRでは「物質色」を直接指定する手法、すなわちセルアニメ(2Dアニメ)と同等の色彩設計がしばしば取り入れられる。現実世界(及び物理ベースシェーディング)において「物質色」は物質が光を反射・屈折・散乱・吸収した結果となっており、光源と物理的材質を弄ることで一定のコントロールが可能であるものの、あくまで結果であり物質色を直接指定するようなものではない。色を細かく制御したい場合はCryptomatteやロトスコープなどでマスクを生成し、撮影/レンダリング後(ポストプロダクション)のカラーグレーディングで直接画面の色彩を調節する。

物理法則を無視してよいのであれば(非写実的であれば)物質色を直接指定しうる。例えばセルアニメでは「影はこの色」と直接指定し影にあたる部分を直接その色で塗る。すなわち目に映る色を直接指定する(色彩設計)。セルアニメ調を目指すセルルック3DCGでは"主色"に追加して"1影"を色で直接指定する。(PBRのように主色が輝度に基づいて暗くなるのではなく)輝度に基づいて主色と1影の色を補間してイラスト調にすることも出来る。このように陰影を色彩設計して非写実的に変化させることがしばしば行われる。

シェーディングモデル[編集]

Uberシェーディングモデル[編集]

物理ベースシェーディング (PBS)
物理ベースシェーディングを非写実的3DCGの作成に使うことも可能である。物理ベースシェーディングを使用した非写実的3DCGには、例えば、ピクサーディズニーのアニメーション映画がある[2]。ゲームでは大乱闘スマッシュブラザーズ SPECIAL (スマブラSP) などがある[3]
Dota 2ヒーローシェーダー
ValveのDota 2で使われていたNPRシェーダーであり、Marmoset Toolbagなどのツールでサポートされている[4]
物理ベースシェーディングと同じくメタルネス (金属さ、金属度) を導入している[5]ものの、ラフネス (マイクロファセット理論における粗さ) は不使用となっており、フレネル反射の調整はフレネル強度 (リムライトマップ) で行っている[5]。また、テクスチャによる色相シフト及びコントラスト調整 (拡散/フレネルカラーワープマスクマップ) に対応している[5][6]
GUILTY GEARシェーダー
GUILTY GEAR Xrdで使われてGDC 2015で発表された拡張セルシェーダー。HoudiniのSideFX LabsのToon Shaderがこれに基づいている[7]
陰になりさすさやハイライトの入りやすさを独自の照明制御用テクスチャ(ilmテクスチャ)で制御している[8][9]ほか、陰影判定の閾値や輪郭線の制御を頂点カラーで指定している[9]。陰影判定で陰になった場合はシーンの環境光色と疑似的な表面下散乱(SSS)テクスチャの色を乗算した値が色として使われる[9]

その他のシェーディングモデル[編集]

セルシェーディング
セルシェーディングはアニメやセルアニメ風のCGに良く使われているシェーディング法であり、シェーディング結果を主色と陰色に変換する。典型的にはライティングの二値化と主色/1影の色彩設計がおこなわれる。セルシェーディングを使用した非写実的3DCGには、例えば、アークシステムワークスのセルアニメ風3Dゲーム (GUILTY GEAR Xrdドラゴンボール ファイターズ等) がある。
GUILTY GEAR Xrdでは、「影の入りやすさ」に相当するセルシェーディングの閾値を頂点カラーで制御している[10][11]ほか、「ハイライトの入りやすさ」をテクスチャで制御している[11]
Gooch shading英語版
主にテクニカルイラストレーションに使われるNPRシェーダーであり[12]、寒色と暖色を指定して、二値化の代わりに寒色から暖色の間のグラデーションを生成する。すなわち寒色-暖色勾配の色彩設計をおこなっている。
ランプシェーダー (Ramp Shader)
二値化や単純なグラデーションの代わりに任意の傾斜 (Ramp) を使うシェーダーであり、セルシェーディングやGooch shadingよりも自由な表現が可能。
テクスチャルックアップによる実装もある (ランプテクスチャ)。
Half-Lambert / Wrapped Diffuse シェーディングモデル
非写実的なライティング手法の一種である。表面下散乱の簡易NPRモデルとしても利用される。Half-LambertはValveの初代ハーフライフで使われていたものであり、Wrapped DiffuseはHalf-Lambertを拡張したものである[13]。ハーフライフだけでなく、他のValve製のゲーム (Team Fortress 2[14]など) でも使用されている。
エネルギー保存の法則を考慮していないため、エネルギー保存の法則を満たすには正規化が必要となる (Energy-Conserving Wrapped Diffuse)。
ハッチングシェーダー
描画ハッチングの再現に使われる。Tonal Art Mapなどの手法が存在する。
ハーフトーン (網点) シェーダー
漫画のスクリーントーンの再現などに使われる。3ds Maxが標準でHalf-toneのOSLシェーダーを搭載している[15] (オープンソース[1])。
ドット絵シェーダー (ピクセルアートシェーダー)
古いコンピューターゲームのグラフィックの再現に使われる。Blender用のPixel Art Shader[16]、Unity用のPixelRenderなどが存在する。
MatCapシェーダー (ペイントマップ)
MatCapシェーダーは法線方向と色をテクスチャで対応させたNPRシェーダーである[17]。モデリング時やスカルプト時にも使われている[17]
Unlitシェーダー
光源の影響を無視するNPRシェーダー。非常に軽いため、ローポリゴン (少ないポリゴン) モデルと組み合わせてロースペックの機器で使われている。
定型ハイライト (Stylized Highlights)
変形可能なハイライト。セルシェーディングと共に使われる。
定型ハイライトはポケットモンスターのアニメシリーズのCGを担当しているOLM Digitalによって開発された[18]。3ds Max及びMayaに標準搭載のArnoldレンダーなどが対応している[19]

エッジレンダリング[編集]

NPRではエッジや輪郭の線画表現による強調がしばしば取り入れられる。エッジレンダリングは漫画の背景CGや青図説明書などに使われるほか、他の用途にも上記レンダリング手法と組み合わせて使用されている。手法によって破線や点線への対応、交差への対応、鏡面反射や屈折への対応などが可能なものと不可能なものがある。

エッジレンダリングには以下のような手法が存在する:

背面法[11] (裏ポリゴン法[20])
一般的なレンダラーでも使うことが出来る。「GUILTY GEAR Xrd -SIGN-」では太さの制御に頂点カラーを使用している[9]
法線パスや深度パスからの輪郭抽出[20]
頂点カラーの塗り分けによる輪郭抽出[21]
BlenderアドオンのFreePencilがこれを実装している。
View Mapを使う手法[22]
BlenderのFreestyleで使われているエッジ検出手法[23]。交差線には非対応となっており[24]、それが必要な場合はブーリアン演算などを組み合わせる必要がある。
レイトレーシングとポストプロセスの組み合わせ[25]
レイトレーシングによって鏡面反射と屈折にも対応している[26]ArnoldのToonシェーダーで使われている[26]
パスベースの手法[27]
パスベースの物理ベースレンダリング (PBR) に直接組み込んだもので、ラインにも光沢反射などの物理的な効果がかかるのが特徴となっている。

シェーディング補助手法[編集]

法線編集・法線転写
シェーディングで生じる陰の形を単純化するために法線編集や法線転写が使われている。
法線編集や法線転写を使用した非写実的3DCGには、例えば、アークシステムワークスのセルアニメ風3Dゲーム (GUILTY GEAR Xrd等)[8] がある。
各キャラクター専用光源
グローバルな光源の代わりにキャラクター毎の光源を使うという手法であり、アークシステムワークスのセルアニメ風3Dゲーム (GUILTY GEAR Xrd等)[8]バンダイナムコエンターテインメント鉄拳7[28]が採用している。
またゲームでは空中のキャラクターの位置を分かりやすくするために光源からの影を切って真下に影を出すということも行われている[29]
カメラ距離毎のテクスチャ
カメラから遠い場合に低い解像度のテクスチャを使うことで高速化する技術「ミップマップ」を流用し、距離によって異なるテクスチャを使用するという手法があり、任天堂のゲームなどで使われている[30]

カメラ投影[編集]

透視投影
透視投影は非写実的レンダリングにおいても一般的に使われている。セルアニメなどに多用される二点透視図法や2Dパンには、レンズシフトが必要となる。
平行投影
平行投影は、説明書などのテクニカルイラストレーションや、2.5Dのゲームに使われている。平行投影のうち、正投影 (オルソ)に対応するソフトウェアは多いものの、不等角投影や斜投影に対応するものは少なく、正投影にLatticeモディファイアを組み合わせることが行われている。
平行投影のうち、クォータービューの不等角投影を採用したものとして、マクシスの『シムシティ4』がある[31]。また、3/4ビューの斜投影を採用したものとして、任天堂の『ゼルダの伝説 神々のトライフォース2』がある[32]
ハイブリッド投影
透視投影と平行投影の両方を組み合わせることも行われている。ストリートファイターIVではキャラクターの投影において、X軸が正射影かつY軸が透視投影のハイブリッド投影を採用している[33]ストリートファイターVではキャラクターの投影において、透視投影と平行投影の1:1の混ぜ合わせによるハイブリッド投影を採用している[34]
嘘パース
非写実的レンダリングでは嘘パースが使われている。例えばカメラからの距離によって画角を変化させていくことが行われている[35]
また複数のパースを混在させることもできる。一部のモデルに対しラティス変形を使う手法、モーフ変形を使う手法 (宇宙戦艦ヤマト2202 愛の戦士たち等で使用[36])、ボーン変形を使う手法 (GUILTY GEAR Xrd -REVELATOR-等で使用[37]) などがある。
パニーニ投影
18世紀の絵画で使われている投影法[38]。直線を保ちながら広い視野角にすることが可能。

エフェクト[編集]

おばけブラー (アニメブラー、Animation Smear)
アニメなどの残像 (モーションブラー) 表現に用いられる「おばけブラー」の3DCGでの再現には、ジオメトリ変形を使う手法や、2D画像を重ねる手法が存在する[39]
おばけブラーを採用したものとして、CyberConnect2の『ナルティメットストーム』シリーズ[40][39]や、ブリザード・エンターテイメントの『オーバーウォッチ』がある[41]
透過光処理
セルアニメの発光表現に用いられる「透過光処理」の再現には、ポストエフェクト機能やコンポジット機能などが使われている。

2DにおけるNPRレンダリング技法[編集]

ニューラルネットワークによる画風変換英語版
様々な画像変換モデルが考案されている。3Dを考慮したものも登場している。

出典[編集]

  1. ^ Open Shading Language Blender Foundation
  2. ^ 物理ベースのマテリアル Epic Games
  3. ^ CEDEC 2019 - さまざまなIPのキャラがフェアに対戦するための工夫とは。「大乱闘スマッシュブラザーズ SPECIAL」の絵作りを開発陣が語る 4Gamer.net 2019年9月7日
  4. ^ Toolbag Version History Marmoset
  5. ^ a b c Dota 2 Workshop - Item Shader Masks Valve Software
  6. ^ DOTA 2 - Character Shader Masks Guide Valve Software
  7. ^ SideFX Labs ツールリスト SideFX
  8. ^ a b c 西川善司の「試験に出るゲームグラフィックス」(1)「GUILTY GEAR Xrd -SIGN-」で実現された「アニメにしか見えないリアルタイム3Dグラフィックス」の秘密,前編 4Gamer.net 2014年7月12日
  9. ^ a b c d 西川善司の「試験に出るゲームグラフィックス」(1)「GUILTY GEAR Xrd -SIGN-」で実現された「アニメにしか見えないリアルタイム3Dグラフィックス」の秘密,前編 p.2 4Gamer.net 2014年7月12日
  10. ^ GDCの舞台で世界に披露された「GUILTY GEAR Xrd -SIGN-」の「アニメにしか見えない3Dグラフィックス」制作手法 4Gamer.net 2015年3月18日
  11. ^ a b c 西川善司の「試験に出るゲームグラフィックス」(1)「GUILTY GEAR Xrd -SIGN-」で実現された「アニメにしか見えないリアルタイム3Dグラフィックス」の秘密,前編 P.1-2 4Gamer.net 2014年7月12日
  12. ^ 『Real-Time Rendering, Fourth Edition』 P.103 Tomas Akenine-Moeller、Eric Haines、Naty Hoffman 2018年9月10日 ISBN 978-1138627000
  13. ^ Wrap Shading Peter-Pike Sloan、Derek Nowrouzezahrai、Hong Yuan 2011年11月30日
  14. ^ Illustrative Rendering in Team Fortress 2 Valve Software 2007年
  15. ^ 3DS Max 2020 new features revealed CGPress 2019年3月27日
  16. ^ Free Blender shader turns 3D models into pixel art CG Channel 2015年2月10日
  17. ^ a b Shading Blender Foundation
  18. ^ 『Image and Video-Based Artistic Stylisation』 P.362 Paul Rosin、John Collomosse 2013年 ISBN 978-1447145189
  19. ^ Stylized Highlight Solid Angle
  20. ^ a b 3DCG における画像処理と形状処理の併用によるリアルタイム輪郭線描画 奥屋武志、田中克明、坂井滋和 2016年
  21. ^ 『東北ずん子で覚える! アニメキャラクターモデリング』 榊正宗 2016年5月26日 ISBN 978-4862463265
  22. ^ Programmable Style for NPR Line Drawing Eurographics Symposium on Rendering 2004年
  23. ^ Blender 2.67: Freestyle Line Rendering Engine Blender Foundation
  24. ^ Rendering » Freestyle » Introduction Blender Foundation
  25. ^ Production Ray Tracing of Feature Lines Shinji Ogaki、Iliyan Georgiev 2018年
  26. ^ a b Line drawings from 3D models: a tutorial p.21-22 Pierre Bénard、Aaron Hertzmann 2019年7月19日
  27. ^ Physically-based Feature Line Rendering Rex West 2021年
  28. ^ UNREAL FEST 2015レポート「鉄拳7」はなぜ「Unreal Engine 4」を選択したのか 4Gamer.net 2015年11月20日
  29. ^ 『星のカービィ ディスカバリー』のアートディレクションで立ちはだかった壁とは? シリーズ初の3Dアクションで「カービィ」ワールドに現実世界を融合するという新しい挑戦【CEDEC 2022】 マレ 2022年8月24日
  30. ^ The Graphics Technology of Super Mario Sunshine PC Perspective 2018年3月4日
  31. ^ 『Foundations of Art and Design』 P.105 Alan Pipes 2004年2月1日 ISBN 978-1856693752
  32. ^ The Legend of Zelda: A Link Between Worlds (3DS) Review Brutal Gamer 2013年12月2日
  33. ^ 3Dゲームファンのための「(スーパー)ストリートファイターIV」グラフィックス講座(後編) 今解き明かされる、2D格闘ゲームテイストを3Dグラフィックスで実現する匠のワザ Impress 2011年12月1日
  34. ^ 西川善司の「試験に出るゲームグラフィックス」(10)「ストリートファイターV」における高密度なノンフォトリアル表現,そのレシピを探る・中編 4Gamer.net 2018年11月10日
  35. ^ 日本アニメCGの新たな原動力 Autodesk 3ds Max 2011×PSOFT Pencil+ 3(第4回) CGWORLD.jp 2011年3月4日
  36. ^ CG制作会社サブリメイションのスタジオ見学で「宇宙戦艦ヤマト2202 愛の戦士たち」に登場するコスモタイガーのバージョンKを細かく解説してもらった GIGAZINE 2018年10月31日
  37. ^ 3Dならではの表現をプラスしさらに進化したノンフォトビジュアル『GUILTY GEAR Xrd -REVELATOR-』 P.6 CGWORLD.jp 2016年7月19日
  38. ^ Pannini: A New Projection for Rendering Wide Angle Perspective Images The Eurographics Association 2010年
  39. ^ a b 第五回 超アニメ表現を越える!神作画表現!! CyberConnect2
  40. ^ 文化庁メディア芸術祭、エンタメ部門シンポジウムを開催 松山氏「キャラクターゲームを軽い気持ちで作るな!」 GAME Watch 2010年2月15日
  41. ^ This Is Not An Overwatch Glitch Kotaku 2016年5月19日

外部リンク[編集]