🐙

ゲームグラフィックス・CGWORLD メモ2

2022/11/19に公開

ゲームグラフィック・CGWORLDを読んだ際のメモ
前⇒メモ1

ForSpoken

CGWORLDの287から抜粋

1.LODの手動と自動 p13
LODの作成は、基本的にはSimpoligonで自動作成であるが、意図した結果にならない場合は手動で調整している
リダクションは、モデルの画面占有率と、各モデルごとのポリゴン削減値をもとにリダクションしている

2.ステージ上に各種情報の設置 p14
ゲームの任意の座標に、テキストで情報を入力でき、作業報告や他のセクションとの連携などを共有でき、フィルター機能でソートできる
また、負荷結果と負荷の解析の情報も見れる。
また、サーバー上で負荷を計測し、エラーが出た場合は報告される仕組みとなっている
また、LODの段階色分けも見れる

3.テクスチャデバッグ機能 p14
ミップマップごとの色分け、解像度の整合性をチェックできる

4.植生プロシージャル p15
地形やアセットを手動で配置した後、植生プロシージャルを行った。
ノイズマスクや地形テクスチャで草花や木々が生える位置を指定するマスクを作成し、自動配置を行った。
その後アーティストが、ペイント入力で木々を追加したり、間引いたりすることでアレンジを加えている。
カーブを描くことで、植生を間引き、道を生成する機能も実装。
また、アーティストが、地形の変更やアセットの移動を行うと、植生も自動的に追従し、不自然な干渉や隙間の発生を防ぐ機能も実装。

5.プロシージャルでないオブジェクトを配置すると、そのステージの状態に応じてプロシージャルで生成したオブジェクトの様子が変わる。
例えば、崖の岩を配置すると、同色の小石が堆積したり、ハイトマップに切り替わったりする。そのほかにも、川のカーブを描いたり、池を配置すると、自動的に周辺の植生が塗れるようになっている。
これらを実現するためには、アーティストが配置したオブジェクトからレイを飛ばすことでコリジョン判定を行い実現している。
p15

6.サーバ内で、広域の植生マスクの管理や、広域の植生プロシージャルを行っている。p15

7.ステージごとに同じアセットの見た目を、ステージごとに設定されたシェーダを参照し、自動で変更している。p15

8.重ね着している衣装は、上を脱いだ状態も3Dスキャナーでスキャニングすることで、リアルな布の重なりを再現。p16

9.キャラクターの髪 p16
主要キャラクターの髪は、短冊上のポリゴンを部分的に透明化する手法ではなく、Maya上でnHairを用いてカーブを作成し、Luminous Hairでヘアーを描画した。
あらかじめグループに分けておき、各グループに対して、髪の本数、うねり具合、毛先のばらつき方などをパラメータで指定している。結果はリアルタイムで反映される。
LOD作成も、ほぼ自動化されており、Maya上で段階と距離をしていするだけで良い。
また、ルックデブは、Arnoldをベースにしていて、LuminousEngine上でほぼそのまま再現できるコンバータを用意している
参考サイト

10.解剖学を意識したセットアップ p19

11.猫の毛 p20
Ornatrix で毛のカーブを作成し、Luminous Farで描画している。基本的なつくりは、9と同じであるが多少の違いがある。ファーの色、太さ、生やす場所などは、テクスチャ(カラー、アンビエントオクルージョン、マスク)などでコントロールしており、カーブはファーの流れや、長さを指定している。
また、カーブに沿った補助ボーンの生成、スキニング、Bonamikの設定を自動化するツールをTAが作成。

12.魔法パルクールの障害物を判定するセンサー p25
基本的には、キャラの周囲と入力方向によってレイキャストを飛ばし障害物を判定している。
障害物を検知すると、レイキャストの飛ばす範囲を広げている。
障害物に接近するほど、レイキャストを飛ばす密度が高くなり、凹凸を詳細に判定して、障害物との衝突を避けている。
ゲーム作成中は、レイキャストを視覚化している。
また、周囲の勾配もチェックし、勾配に対してキャラクターの位置や向きを補正している。

13.GPUパーティクルで、点と点をつなぐ幾何学形状エフェクト p27
AEのPlexus 3のようなエフェクトを作成。
全体を発光させると、視認性は上がるがリアリティが損なわれるため部分的に発光させている。
エフェクトの明るさは、昼夜問わず同じで、ライトの影響を受けて見た目が変わるようになっている。
参考動画の0:44

14.リアルな自然現象を柔軟に表現するための取り組み p27
大きさや燃やす素材などの違う実物を燃やし、炎の色・輝度変化の幅・明滅の頻度を計測し、リファレンスにした。
一枚のループアニメーション用テクスチャにDensityやマスクの情報を格納することで、多彩な炎を、任意のタイミングと速度で出したり消したりできるようにした。
また、半透明の物質が影を落とす実装も追加した。シャドウパス用のシェーダを組み、ディザ抜きをした不透明として描画することで疑似的な影を落としている。

15.巨木エフェクト p27
当初はVATを使用して作成していたが、メモリ容量が多いため、ボーンアニメーションと頂点シェーダーを組み合わせた表現にした。
地面の盛り上がりは視差オクルージョンマッピングで表現

16.Stochastic Tri-Planar
本作にフィールドは起伏に富んでいるため、デカールマテリアルは、Triplanar Mappingを使用している。ただ、一般的なTriplanar Mappingだとサンプリング数が増えてしまうので、Stochastic Tri-Planarという一回で済む手法を採用。
参考動画の3:48、参考サイト

17.Luminous Engineにはボックスで囲んだエリアを丸ごとFBXとして出力できる機能があり、出力したFBXをMaya上でキャラクターアニメーションをつける際などに活用された。
p29

18.ShotGridによる制作進行 p29
一日一回の頻度で、各シーンをPCとPS5で自動撮影し、ShotGridへアップロードするツールを開発。また、ShotGridのデータベースから各シーンの最新情報を取得して、Maya上でLuminous Engineと同じ環境を表現できる機能も実装した。

19.フェイシャルの表現向上 p29
FACSをベースとしてリグに、眼球振動リグ、瞳孔拡縮リグ、唇の粘着リグを追加し、表現力の向上を図った。
フェイシャルキャプチャには、Dynamixyz Performerを使用している。
参考サイト参考サイト

20.現実のライティングをLuminous Engineで表現 p31
屋外でグレーボール、グレーチャート、カラーチャート、レゴブロック、ミラーボールを並べてHDRIとリファレンス写真を撮影し、EV値を計測。そのあと、Arnoldで再現した後、Luminous Engine
参考サイト

21.イベント製作ツールの改良 p31
イベント製作ツールにいくつかの改良を行った。露出、空、雲、影、霧などのフィールドのライティングを行えるようにした。また、特定のキャラクターにライトを追従させたり、最適化されたライトをオフにして、カットシーン用のライト設定したりできる機能を追加。

22.4k HDRに対応するため、Rec.2020を採用 p32

Horizon Forbbiend West

CGWORLDの287から抜粋

1.リアルタイムの流体表現 p67
キャラクターに相互作用するリアルタイムの水の表現

2.雲の表現 p67
ボリューム表現に加え、特定アスペクトを特徴的に反射させ空をドラマチックに演出

3.完全なPBRパイプライン p71
エネルギー保存側に沿った解像度非依存ブルーム、全てのライトが密度モデルに相互作用する統一されたボリュームレンダリングなど完全なPBRパイプラインを新たに構築

4.ライティング p71
ライティングは、EVベースのワークフローで行われる。様々なライティングシナリオと時間遷移に対応できる段数の広い露出システム、ホワイトバランスによる色温度調整、ブラックバランスによる自然なコントラストの付与・除去など。

また、太陽光は、カスケードされたシャドウマップ、保存性ハイトフィールド、ハイトマップシャドウを複合的に使用。
これにより、ゲーム全体の落ち影を様々な精度・解像度を常に描くことができる。

影付きの領域内は指向性のSSAOと、焼き込みスカイビジビリティを使用。これは実質的な3Dボリュメトリックな焼き込みAOで、スカイライト遮蔽するために用いられる。
この技術の組み合わせにより、長距離の大きなAOが得られ、森や建物の下に美しいグラデーションが描かれた。

一日を12段階に分けて間接光をベイクし、そのパスを太陽光の強度や色に合わせて変調することで太陽光と間接光を良好な近似を得ている。
そこからスカイビジリティ、静的な間接光ライト、白熱光シェーダーからの直接・間接光がベイクされ、放射照度ボリュームに使用される。

5.水中の光の表現 p71
ボリュームレンダリングを用いて、水深に基づいて光の減衰を正確にモデル化。そこから、カメラ・デプスと距離の両方での散乱を細かく制御している。

6.ポストプロセス p71
モーションブラー、ラジアルブラー、DOF、AO、フィルムグレイン、ブルーム、ビネット、3DLUT、深度ベースのカラーコレクション、遠景の空・雲用のライトシャフトを適用。

あんさんぶるスターズ!

CGWORLDの289から抜粋

1.羽の衣装 p25
半ドーム状のポリゴンに無数の板ポリを刺すことで表現
滑らかに見えるように法線を挑戦。
参考動画

2.宝石シェーダー p25
宝石がある衣装で宝石シェーダーを作成。まず、ポリゴンに宝石風のカットを入れ、複雑に光が反射するにしている。アイドルが動いて光の入り方を変わるたびに、輝き方が変化する。
参考動画

3.袖のエナメル素材、パンツのレザー素材、靴のスエード素材による質感の違いが出るようにテクスチャで制御している。 
ベースカラーがあって、シャドウカラーには、袖のエナメル素材感を出すために、反射光を入れている。影に入ったときにもべた一色にならず、部分的に反射する。
また、シャドウマスクには袖の複雑な反射を表現するため、中間色も残している。靴にはスエードの複雑な素材感を入れている。
また、リフレクションマップで袖のエナメル素材とパンツのレザー素材の差を出すために、袖のみにリフレクションを入れている。
スペキュラーマップは、袖、パンツ、靴すべてに異なるアプローチをして、質感の差を出している。 p27
参考動画

4.インナーのぎらぎらとしたスパークシェーダー p27
バンプマップでは、法線方向を拡散させ、通常のシャドウマスク・リフレクションマップ・スペキュラマップを使う場合よりもギラギラ感を出るようにしている。
また、スペキュラマップを使うことで、配色の幅も広がるため複雑なラメ感を表現できる。
参考動画

5.胸から上などクロースアップになりやすい部分のテクスチャは高解像度、手のひらのようなべた塗でも違和感のない部分は低解像度にしている。 p27

6.ベースカラー、シャドウマスク、リフレクションマップ、スペキュラマップが1024×1024、シャドウカラーが512×512 p27

7.腕を上げると、肩章の布の根本がグシャと変形する一方で、花は変形しないように、ドリブンキーやコンストレインを使用して調整している。
また、肩布と上腕が干渉しないように上腕外側のポリゴンは削除しつつ、腕を上げたときに脇が自然に見えるように上腕内側のポリゴンを残すといった工夫がある。 p27

8.パールシェーダー p27
少ないポリゴン数でどの角度から見ても球体に見えるパールシェーダを実装
パール一個ごとに四角ポリゴン一個用意して、8×8ピクセルの単色ベタのテクスチャと、ディティールマップを適用することで表現している。
立体でつくると大量のポリゴンを使用するし、カメラが寄るほどシルエットががたがたになるので、ビルボードの応用で表現することにした。

9.エミシッブシェーダ p31
参考動画

10.衣装の半透明シェーダーの実装 p31
透過する内側部分の作成と、表示の優先順位、処理負荷の高さなどが苦労した。
参考動画の2:15、参考動画

11.顔の横にある装飾は、目立つので揺れ骨を増やしていいる p31

12.観客 p33
板ポリに観客テクスチャのUVスクロールを適用することで表現。
また、テクスチャがカメラの方を向くように頂点シェーダーで少し変形させている。

観客の配置は、配置用の内製ツールも開発している。
角度や距離などを指定して扇状に自動配置した状態、ランダムに広げた状態、個別に手動で動かした状態など。

13.テクスチャは、3Dモデルへの適用時には拡大・縮小・反転を多用することでテクスチャ容量を削減している。
参考動画

14.教会内のライティング p35
ライティングはテクスチャでコントロールしており、UVMap1にディフューズマップ、UVMap2にライトマップを適用。テクスチャを使うことで処理負荷の軽減とカードイラストのテイストに近い画づくりをしている。ライティング時にポリゴンの法線を気にする必要がないため作業の効率化にもつながっている。
ライトの当たり方が単純なグラデーションにならないように、PhotoShopの水彩ブラシを使い、ライトマップのエッジ部分を潰すような描きこみも追加している。
参考動画

15.アイドルに近い板ポリを立体的に、周辺部は層状に重ねることで、処理負荷を軽減 p38
参考動画

16.水たまりの表現 p37
リフレクションの範囲を調整するマスクを使用して、全て反射しないように調整
参考動画

17.リップシンク p47
社内のスタッフが楽曲を歌いその表情を撮影した動画を解析ソフトに入力。スタッフの母音の口形を動画でピックアップして解析ソフトに登録した後、各母音の口形をアイドルにリターゲットする。そして、ピックアップした登録データをもとに動画全体の口の動きを解析ソフトがトラッキングし、アイドルにトラッキング結果を反映させている。
これにより、歌詞と口の動きのタイミングが同期し、強弱も付けた状態のリップシンクのアニメーションデータが用意できた。

18.地面にプロジェクションマッピング p53
内製ツールを使用して、地面にプロジェクションマッピングを組み込んでいる
参考動画

19.彩度を調整する機能 p53
ライティングやポストエフェクトによってシーン全体が明るくなる場合は、アイドルの存在感を出すために、衣装・髪の彩度を低くする機能がある。
また、ライティングの変化に合わせて彩度の値をアニメーションさせることができる。

20.入れ替えの設定 p55
指合わせのシーンで、手の大きさが違うキャラ同士を入れ替えても、指の位置が合い、見栄えよくカメラに収まるように工夫されている。

キャラクターの身長に差があっても、カメラ内で不自然な見た目にならないように位置を調整できる。

キャラクターの身長に差があっても、首の傾きが不自然にならないようにしている。

キャラクターの身長に差があっても、手をつなぐのが不自然にならないようにしている。

21.花の開花 p51
花の開花表現では、同じテクスチャを違う彩度で表現

画面全体に適用されるカラーグレーディングではキャラクターにも適されるため、キャラクターのみ個別調整できるシェーダーを開発

通常の背景はライトマップで表現しているが、花の影を動的に表現したかったため、専用のカメラでリアルタイムに投影した影を使っている。

参考動画

22.ローカルライトマップ p51
シーン全体に適用されるライトマップとは別に、一部分に適用できるローカルマップを用いて暖炉の光を表現している。
全体のライトマップには、暖炉の光の影響は描かれておらず、ローカルマップで描きそれらを組み合わせることで暖炉の光を表現している。
通常のライトマップは、AOをベースにしており手書きで調整している。一方で、ローカルマップライトは、全て手書きで、RBGチャンネルに別データを格納でき、周辺をより暗くしたい、明るくしたい場合などに使用する。
ピンポイントに影を落としたい場合、通常のライトマップだと解像度が低すぎて綺麗な影を落とせないので、ローカルマップライトは重宝する。

また、TimeLine上でローカルライトマップに紐づいたマテリアルを変えることで、壁の一部が緑いろになったり、机の周囲だけ明るくしたりといったこともできる。

窓から入る動的な光は、ローカルライトマップで表現している。
参考動画

甲板を照らすライトはローカルライトマップで表現している。
参考動画の1:30

ローカルライトマップによって、ステージのほとんど暗くしつつ金属部分や赤色の発光部分を目立たせている

23.スペースエフェクト p59
スペースエフェクトは、任意の位置に、色、光、フォグなどを乗せる機能で、デプス情報を参照し、3Dモデルへのかかり具合を調整できる。
Unityの描画パイプラインをカスタマイズすることで、一般的な映像製作におけるコンポジットジットに相当する作業ができるようになっている。
参考動画の2:25

24.多面体スクリーン表現 p59
多面体スクリーン表現では、楽曲に合わせて色と模様が移り替わる。
色違いのスクリーンを個別に用意すると処理負荷やデータ量が大きくなってしまうため、ひとつのテクスチャアニメーションに複数のLUTを適用することで軽量化を実現している。
参考動画

25.被写界深度 p59
Maya上で、ロケータを設定し、このロケーターとカメラの距離を参照しながら、Unity上でFocus Rangeなどのパラメータえお設定している。
参考サイト

26.スカイボックス p59
あんすたでは、画角が狭いので夜空にカメラを向けた場合、星がかなり大きく映ってしまう。
ただ、スカイボックス用に高解像度テクスチャを実装するのは負荷がかかるので、夜空のテクスチャとは別に、星だけのテクスチャを用意し、両者を重ねることで解像度を確保している。
板ポリに適用した上で重ねている。
参考動画

27.水のシェーダー p61
屈折は比較的処理負荷が高いため、必要な部分でのみ限定して使用している。
参考動画の0:15

28.ペンライト p67
ペンライトは、頂点シェーダーによってメッシュを動かすことで表現しており、文字を描いたり、それをアニメーションできたり、時間に経過に合わせて色が変化する。
参考動画の1:25

Final Fantsy16

CGWORLDの301から抜粋

1.数値的な正確さを追求するため、現実世界の明るさを測定 p24
松明、ろうそく、焚火などを撮影し正しい値から作成
ただシーンによっては暗くなりぎたところもあるのでそこは微調整

2.ライティング p24
シーンにおける各点の入射光の分布を事前に計算し、レンダリング時に参照するイラディアンスボリュームによってGIを高速化し、一部を除く光源周辺を除くすべてのシーンをリアルタイムに反射を表現

3.リアルタイムの影の表現 p24
動的オブジェクトの表現のため、影はライトマップではなくリアルタイムで表現している。

4.リアルな顔を追求する p25

5.髪や毛の表現 p25

6.衣装政策の流れ p26

7.タイリングテクスチャと別途のテクスチャを組み合わせて、パフォーマンスと見た目のクオリティを上げる p27

8.召喚獣フェニックスのエミッシブ表現 p27
エミッシブスクロール機能によって実現。
エミッシブパラメータのほかに「エミッシブ強度」を3チャンネルもち、それぞれノイズマスクやUVスケール値・スクロール値・フローマップを割り当てることで、複雑な光の表現を実現
参考動画

9.AOマップとノーマルマップを組みあせたマイクロシャドウによる陰影表現 p27
ハイメッシュからローポリメッシュにベイクしたときの欠損した微細な凹凸表現を補正

10.汚れや濡れの表現 p30
キャラクター・モンスターで汚れや濡れの表現が指定可能で、パラメータで動的に変えることができるほか、重ねることも可能。
汚れは、土汚れ、濡れ、血汚れ、汚れMixなどが表現可能。
髪の毛は異方性反射で、濡れると自動的に水滴が生成され、重みで少し下がり風の影響受けないようになっている。

11.頂点シェーダーによる揺れ p30
Maya上の頂点カラーペイントで揺れの影響度を調整する。
ただ長髪であればボーンで揺れを表現。

12.NPCのバリエーション制作 p30

13.Bonamilkによる揺れもの表現 p34

14.傾斜に合わせてポーズを補正するLeanIK p34

15.戦闘中の補正機能 p35
手首をターゲットの方向に自動的に向けるIKシステムを作成することで、地面や空中ごとの個別にモーションを作成せずに済んでいる。
また、ダメージ時に物理演算と攻撃方向の組み合わせで毎回異なるモーションを演出している。

16.足と地面のインタラクション p35
どんな地形でも足がきちんと接地するFootIKを実装。人型・四足・多脚で可能。
また、傾斜がある状態で踵がべったり付くのは変なので少し浮かせたりと様々な調整が可能。
このための計算精度、足首・つま先の回転限度角や回転速度などが指定可能。

信長の野望・新生 with パワーアップキット

CGWORLDの301から抜粋

1.背景マップ制作 p37、p38、p39
国土地理院の地形データをもとに、プロシージャル制作ツールのWorldMachineと内製の地形作成ツールを組み合わせて作成。

2.四季ごとにアルベドテクスチャとオブジェクトを変えている p37

3.背景のPBRマテリアル p39
テクスチャの構成はアルベドマップ、リフレクションマップ、ノーマルマップ、AOマップ、ラフネスマップ

4.大量の樹林は、ブルボードとLOD(2~3段階)組み合わせて最適化 p39

5.高度なマップを量産する自動生成システム p40~p41
マップのベースをプログラマー主導の自動生成に任せて、地形用のテクスチャのアップスケーリングや色彩調整もプログラムが行う。
自動生成された地形に対して、道の始点や終点や中間地点を入れることで自動でマップに道が生成され、城門や戦闘施設なども配置される。
マップの配置は一定間隔ではなくアルゴリズムによる配置であるため、タイリング感なく自然に見える。
一部はプランナーが微調整している。

6.火球と伴星のエフェクト p45
制作は内製ツールで行い、レンダリング素材をAEでコンポジットしている。
火球エフェクトは、カメラのチルトに合わせて火球が移動するため、複雑な軌道に追従するダミーモデルを用意している。
伴星のエフェクトは、回転速度や位置は火球のスケールに合わせて調整している。
伴星の残像は、モデルを時間差で表現
参考動画の0:00~

7.内製ツールから出力した素材(背景、キャラクターアニメーション、エフェクト)をAEでコンポジット p45
参考動画の0:00~

8.墨と筆で描いたような輪郭エフェクト p45
内製ツールで出力したキャラクターと、それをエフェクトっぽくアレンジした墨エフェクトを使用してAEでコンポジット。
キャラクターにAEのタービュレントディスプレイを使用したりもしている。

アスタータタリクス

CGWORLDの301から抜粋

1.UnityのURPで制作 p46

2.キャラクター・背景制作のツール p46
3DはMaya、3DCoat、xNormal
2DはPhotoShop
動画制作はAE

3.Timelineを初めとするUnityの拡張 p47
主にマルチシーン保存に対応していない複数の背景シーンをトラックに呼び出す機能を独自に組み込んだ。
また、街中を自由に歩いて行動するマップデバッグツール、3Dバトルシーンのみを再生するためのデュエルデバッグツール。

4.キャラクターモデルの量産 p48
流用可能な顔や手のメッシュをほかのキャラクターに移植して人型3Dモデルを量産。
MayaでUnityの見た目をプレビューできる環境を構築し、量産時のチェックをスムーズにした。
作成した3DモデルをMayaから一覧できるブラウザも開発。キャラや武器、背景、フロップなどカテゴリ別に整理されている。

5.セル調の品質を高めるアウトライン制御 p49
アウトラインは、シェーダとテクスチャで表現している。
シェーダーでは頂点カラーで法線方向を決めアウトラインを制御。
テクスチャは主にシェーダーで表現できない内側(腹筋の割れ目など)のアウトラインで使用。
なお、シェーダによるアウトライン制御のコツはモデルとモデルの間に少しすき間を残すのがコツ。
鼻のメッシュは、鼻先のラインのみメッシュで作成することで違和感が出ないように調整。横を向いた時の鼻は、鼻のメッシュがシェーダーのアウトラインに重なるように調整することで自然に見えるようにした。鼻が正面ではシェーダアウトラインがなくなり、鼻のメッシュだけが残り、よりアニメらしい見た目になっている。

6.質感を高める独特のリムライト表現 p49
Unityから色や強さを制御できる。

7.アニメらしい陰影のコントロール p49
セル調は陰影の入り方がフォトリアルと異なるため、独自の陰影をコントロールが必要となる。
カラーテクスチャと影専用のシャドウテクスチャを用意。
影の出やすさは重みマップと呼ばれるマスクテクスチャでコントロールしている。
法線の編集作業を効率化するため、Maya上で編集ツールも開発。

8.独自ツールのセットアップ  p50
人型モデルは体型パターンごとにジョイントを共通化しており、自動リグツールを利用することである程度体型に応じたリグを生成できるしくみになっている。
また、同ツールでセカンダリグの生成や、アニメーションベイク、スキニングチェックも開発。

9.服などの揺れ p50
Unityの基本物理シェーダーを使用。揺れものは手付のモーションではなくボーンの数を増やして物理できれいに動くように制御。
全ての揺れものに基本物理シェーダーを適用してしまうと、意図しない動きが出たり、3Dモデルのすり抜け問題などがあるため状況に応じてONOFFできるにしている。
揺れアニメーションのタイプは、
シーン開始時、TimeLine上のアニメーションクリップ時、ParticleSystemのエフェクト時。

10.フェイスアニメーション p51
ブレンドシェイプでフェイスアニメーションを行っている。
自社ツールで、眉・目・口のすべてに笑顔や驚きといった表情が設定可能である。
またMaya上で作った表情を登録しておくことで、流用やバリエーション制作しやすいな環境づくりも形成。

11.MayaとUnityでシェーダーを共有しPBR開発 p53
効率的なルックデブ環境を構築するためMaya⇔Unity間でシェーダーを共有できるにした。

12.水面の表現 p53
水面の表現にはカメラのデプスマップを活用して、水深に応じて水色や太陽光の反映、白波の追加などを行った。
そのほかにもリフレクションプローブや反射やノーマルマップのテクスチャスクロール、屈折なども反映している。

13.シーンを一変させる背景の動的な色味変更 p53
背景の色味をUnity上で動的に変更できるスクリプトを開発。
ベイク後のライトマップカラー変更や、画面の明暗を操作できるカラーフィルターなどの機能。

14.シェーダーバリアントによるシェーダー負荷の対策 p53
1種類のシェーダーで多くの機能を実現できるようにしたため、shader_futureやmulti_compile命令が多くなってしまってシェーダーメモリが増大してしまった。
そこで、シェーダーのグローバルキーワードを整理した。例えば、FogをLinearにしてみたりなど。

15.背景は基本的にはライトマップ p52
背景は基本的にはライトマップをしているが、セル調のはっきりとした影が表現しずらいため、ベイクした後にライトマップのカラーを変更するようにした。

16.アニメらしさときめ細かやさが詰まったエフェクト p54
Shurikenで制作し、URPのシェーダーを使用している。
URPはHDRベースとなり、エフェクトの発光強度を物理ベースの数値で共通化して管理しやくなった。
カメラのHDRを有効にしてから、Unity標準の「PostprocessingStack」→「Bloom」を使用して発光を表現している。

17.ポストプロセスによるリッチな表現 p54
被写界深度、ネガポジ反転のよる衝撃エフェクト、躍動感を演出するブラー、グラフティカルな印象を与える色収差とブロックノイズを与えることでデジタル感演出、ノイズを使って特殊な空間への移行を伝える演出。

18.ライトマップの調整による背景と影の馴染ませ p55
ライトマップの背景色を調整できるスクリプトを用意。
中間色や影色が背景となじまない部分に適用して良い影色にしている。

19.キャラクターと背景を別々に生成する影 p55
ライトはキャラ用と背景用で分け、影の落ち具合コントロールしてクオリティを高めている。

20.ライティングの各種ポストエフェクト p55

プロジェクト暁

CGWORLDの304から抜粋

1.VFXチームがキャラのエフェクトやだけでなく、ポストプロセスやライティングなども手掛けた
p27
参考動画

2.透明な床面に対するリフレクション p28
映り込み防止にY軸の高さ以下はゼロにするしくみを取り入れているが、リフレクションが必要な部分には専用エフェクトを配置している。
参考動画の0:55

3.キャラクターのリムライトの照り返し p28
キャラクターの攻撃エフェクトの照り返し表現には、キャラクター側のリムライトを利用してエフェクトの影響を受けているように工夫されている。

4.グリッジ表現 p29
RGBに分離した素材の加算描画で実現
参考動画の0:27

5.VFXチームがAEで作成されたUIとホログラム p29
参考動画の2:33

ファイナルファンタジーVII エバークライシス

CGWORLDの304から抜粋
当内容はこちらの動画で講演されているものである。

1.疑似SSSでリアルな肌の質感の表現 p34
SSSSSは負荷がかかるため、Rampテクスチャを使用して疑似的なSSSを表現している。
また、肌のディティールが入り込みすぎるの滑らかにするため、ノーマルマップの影響なくすことで実現している。
また、頂点カラーのRに表面のライトベクトルと法線の内積を持ち上げるパラメータ用意して、肌の透明感を生み出した。

2.すべてのモデル体型のリグを生成するGeneralRig p35

3.動きの破綻を防ぐ揺れものの設定 p35
Spring Boneで髪や服などの揺れもの表現しているが、現実ではありえない動きがきっかけとなって3Dモデルにめり込むといった事象が見受けられた。
そこでキャラクターを加味するかどうかのパラメータを用意して破綻を防いだ。

4,板ポリでリッチに見せるマップ背景 p36
モバイルということもあって背景すべてを3Dで作成するとパフォーマンス上厳しいことから、完成した3Dモデルがある背景をキャプチャーして、その画像を背景として使用した。
一方で、一部のモデル例えばドアなどは3Dとなっている。
板ポリに深度を持たせているため影を落とすことも可能。

5.海の表現 p37
綺麗な海を表現する要素として、白い泡、透明度、深度による海水の色の変化に注力した。

6.エフェクトのコツを p38
水や炎や氷などのリアリズムのあるエフェクトは、透明だけでなく不透明を加えることで納得感やシーン選ばない一定のクオリティを担保できる。

7.エフェクト表現 p38
エフェクトは、等速や等倍を避け、同じ動きをすることがいっさいないようにしている。

8.エフェクトの過負荷をツールで検知 p38
オーバードローを検知し、サーモグラフィのようにオーバードローの数に応じて色分けできるツールの導入。
また、ポリゴン数、パーティクルの数、テクスチャの解像度や枚数などもカウントできるようになっている。

9.リアルタイムとプリレンダリングを併用した召喚獣演出  p39

10.ホーム画面のライティング
美麗なホーム画面のライティングは、Unity上で表現した。
松明の光を反映するセル補助ライトで明滅させることでリアリティを出している。
また、窓の月の光を表現するリムライト、キャラの顔をはっきり見せるためのライト、光芒の表現
参考動画の1:05

ヘブンバーンズレッド

CGWORLDの304から抜粋

1.涙の表現 p41
エフェクトに頼らず、ポリゴンのモデルを作成し目頭や目尻に貯まったり、そこから流れ落ちる表現を実現

2.髪のハイライト表現 p43

3.フェイスの影のコントロール p43

4.アウトライン p43

バンドリ! ガールズバンドパーティ!

CGWORLDの304から抜粋
1.UnityとMaya側で同じ見た目になるシェーダの開発 p49
ベースカラー、シェーディング、マクスによる影(顔モードとノーマルモードあって、部位によって調整できる)、スペキャラ、リムライト、アウトライン、エミッシブなどに対応。
ポストプロセスなどは、Unity側で追加

2.表現豊かなアウトラインの設定 p50
アウトラインは、色や太さだけてなく、Zオフセットかけたり、そのオフセットに対してマスクをかけたりできる。
また、アウトラインに対して、ベースカラーや影を合成できたり、その合成方法も指定できる。

3.前髪が透けて見える眉 p50
2回描画する事で実現。
1回目は不透明で描画。2回目はアルファブレンドによる半透明で、カメラに向けて頂点シェーダをオフセットさせて描画

4.半透明の衣装と光沢表現 p50
シースルー素材などの半透明の部分に関しては、半透明の部分の専用バッファを描画し、それ不透明の部分にブレンドすることで表現
また、MitMapを使用して光沢感あるアクセサリーを表現。

5.衣装を自動でキャラの身丈に合わせるスケーリングシステム p51

6.キャラに応じだアニメーションの補正 p52
ライブで演奏するキャラを変えられるため、キャラによっては楽器の手の位置などが変わったりした。
これを防ぐため、手の位置と回転を楽器のアニメーションにベイクし、楽器を手のIKターゲットにしてベイクした位置に移動する処理を行なってる。

7.シルエットが異なるモデルには専用の設定 p52
シルエットが異なってるキャラを使用すると、手が頭にめり込む不具合が発生した。
そこで、専用のコリジョンで用意して回避。

8.細かな表情を手づけできるフェイスアニメーション p53
フェイスアニメーションは、ブレンドシェイプで実現。
Unity側で表情変化と口パクを簡単に行えることで、Mayaに一々戻る必要がない。

9.揺れものはMagica Clothで実験 p53

10.ライブ映像は30fpsで、リズムゲームの部分は60fpsで表現 p54

11.観客のサイリウムアニメーション p55
グループ同士の間隔や人数を、サイリウムの回転角度を細かく調整できる。
サイリウムは4本セットになった動きのパターンを3つ用意している。
動きのパターンはVATテクスチャを使用している。
これによって低負荷で見栄えのあるアニメーションを実現している。

12.3Dカットインにおけるカメラの位置・ズーム位置
身長差によってカットインの際カメラから見切れたりすることがあった。
そこで、ある計算によってこれを解消している。
また、画面の斜めからみるカットでは端末によって見切れたりするのでMayaのビューでどの端末でも表示されるセーフエリアを提示してレイアウトの目安にしている。

Discussion