ゲームグラフィックス・CGWORLD メモ2
ゲームグラフィック・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のビューでどの端末でも表示されるセーフエリアを提示してレイアウトの目安にしている。
ファイナルファンタジーXIV: 黄金のレガシー
CGWORLDの307から抜粋
1.ライティングとの一本化で一体感ある画作りを目指す p44
もともと、Houdiniでのエフェクトはライティング/レンダリングは、ほぼHoudini(Mantra)であったが、Mayaでレンダリングするキャラ・背景とはツールもレンダラも異なり、別々にレンダリングしたものを重ねるやり方に限界を感じていた。
そこで、AASを共通フォーマットとして、MayaでもHoudiniでも同じレンダリング結果になるように改良された。
この結果、ライティングの馴染みがよくなる、ブラーやDOfが一致する、ディテールの欠損回避などのメリットがあった。
これを実現するため、Mayaで製作されたキャラ・背景のAASをHoudiniで読み込み、Houdiniで作成したエフェクトのエクスポートを自動化するツール、ライティングと連携するためのフロー整備などがエンジニアの協力のもと行われた。
2.ポイントライトによるオーラエフェクト p44
オーラや炎などはボリュームなのでそのまま持っていくとノイズが激しくてボリュームレンダリングができないことから一旦ライト化することにした。
参考動画の1:23
3.メッシュライトによる炎エフェクト p44
Houdiniでボリュームを作成して、それをMaya上でメッシュに変換しメッシュライトにしている。
参考動画の2:18
4.炎素材の撮影 p45
炎のエフェクトを作成するため火気使用なスタジオで火を撮影し、それをもとにエフェクトを作成した。
5.焼ける肉のシズル感を出す p45
焼ける肉のシズル感を出すため、バーベキュー場でリファレンス撮影し、それをもとに作成。
炎や煙などは、Houdiniで作成。
参考動画の1:30
6.海の表現 p46
HoudiniのOcean Spectrumの結果をテクスチャ化してArnoldのシェーダーで再現しディスプレインスメント。テクスチャ解像度依存になるためディテールが甘くなる場合もあるが、広い海を描いてもメモリ大幅削減を実現。なるべく少ないポイント数で再現するため、ディスプレインスメントとバンプを処理を併用している。
また、一枚のテクスチャで賄うと粗くなったり、単純なグリッド分割だとシームが出てしまうため、ワンメッシュのままUVをUDIM状に利用し、それぞれの分割エリアだけでテクスチャを描き足している。
なお、6エリアに区切っている。
また、船が置かれる中心部のみメッシュを細かくしている。
参考動画の5:18
7.モデルのシルエットにそって水しぶきをあげる p47
モデルのコリジョンに合わせて水しぶきを表現。
ポイントが多すぎるとライティングチームに渡った時重くなってしまうので、カメラから遮蔽されている箇所のカット、データタイプを32bitから16bit変更した
参考動画の1:08
8.津波の表現 p47
①ベースメッシュに細かい振幅を津波のジオメトリを作成。
②ポイントを作成。
③POPシュミレーションをかける
④Whitewaterで、水粉末とする
参考動画の1:08
9.流体らしく見せた水中の表現 p47
ボリュームでポイントをアドベクションさせなるべく流体のようにした。
参考動画の1:11
10.ライトの光量はHDRIの露出量に応じて変化させる p48
HDRIは各時間帯を撮影し、各種ライト、ランプ、ディフューザー込みの演出ライトなどライブラリ化しており、内部的に露出量を保持し、シーン上で露出に合わせることが可能。
11.RRTの採用 p48
高輝度域に対して色情報を飽和した高彩度な出力ではなく、低彩度でディテールのあるフィルム的な挙動で出力する。
12.イベントシーンで、ライトの向きを記載した絵コンテの作成 p49
13.3Dモーションブラー p50
参考動画の1:11と1:18
14.Deepコンポジット p50
現実をシュミレートする=なるべくコンポジットでごまかさないということで、Deepのような3D系データと相性が良いはずという判断だ。
エフェクトは、HoudiniからHtoAでASSで出荷してもらい、Maya上でアセットを読み込み、ライティングと馴染みのいい状態を確保
15.水への反射表現 p50
現実には存在しないオーラを水に反射させるにあたり、パーティクルをそのままライトにするという発想で対応。
エフェクト側で作成したパーティクルの軌道にそのままライトベイクできるように位置情報・アニメーション情報を付与し、それをライトに置き換えた。
参考動画の1:24
16.ノイズ除去 p51
水などのエフェクトを含めてのレンダリングであったため、ノイズがいくつか見られた。
単純にノイズを削除しようとするとテクスチャのディテールが失われるので、ノイズのみが除去されるよう事前にテクスチャ成分で除算・ノイズ除去後にテクスチャを乗算している。
17.炎ライトのレンダリング p51
オイルランプの照明環境用にリファレンス撮影し、輝度を下げても炎の色を保ってライティングできる連番テクスチャを取得。高輝度のリニア素材をエリアライトに貼って現実空間をシュミレート
18.タイトルロゴアニメーション p52
モーショングラフィックスで飾るのではなく、壮大に描かれた本編から流れるようにロゴが形成されていくように配慮
参考動画の5:20
19.トランジション 色つなぎ p53
次のシーンの変わり目に何かのきっかけでつなぐため、カメラの動きに合わせて次のシーンの色に近づけている。
参考動画の3:00
20.トランジション レンズフレア p53
参考動画の1:42
21.トランジション 天井つなぎ p53
参考動画の3:20
22.色鮮やかな海上シーン p54
キャラのセリフに合わせて、海の色と空のグラデーションによる冒険の高揚感を意識した調整を行っている。
例えば海は、もともと白かったがコントラスト強めたりした。
参考動画の4:50
23.恐怖感や不安感かじられるようにビネットを強調 p54
参考動画の0:58
24.モンスターを容易に倒すシーンでは彩度を高くすることでシリアスに見えないようにした
参考動画の1:27
25.戦闘シーンの室内描写 p55
室内はリアルなライティングであるが背景やキャラがライトの色で埋もれてしまうため、天窓の光を強め全体のトーンを絞って影にグラデーションを出している。
二刀流のスーパースローショットでは、コントラストと彩度を強め、エフェクトの発光感や玉ボケを美しく見せている。
足元のアップシーンでは、あえて暗く見せて次のシーンの期待感を上げている。
参考動画の1:48と2:24
26.屋台とキャラクターに目がいくようにビネットを追加 p55
参考動画の3:29
Marvel's Spider-Man 2
CGWORLDの307から抜粋
1.プロシージャル技術を活かした都市の構築 p73
Houdiniにジオメトリックな都市データを完全に取り込み、それを利用して、都市エリア周辺に小道具や植物をレイアウトしたり、オーディオシステムの伝搬ボリュームを定義できる。
何万もの建物の壁の汚れや、汚れのボリュームメトリックなディテールマップを、手作業ではなくプロシージャルなツールを使用してベイク。
道路や歩道に多くの位置データをベイクし、よりスマートなランタイム・サーフェイス・シェーダーが、時間帯の変化に基づいて摩耕や濡れをプロシージャルに処理できるような仕組みを構築。
窓や日よけなどはトリムシートでテクスチャリングされ、レンガのような壁はワールドスペースにタイリングテクスチャを貼れるツールを構築。
マテリアルにはすべて外観を変更するためのパラメータがあり、オープンワールドの隅々まで機械的ない外観を担保し、道路や歩道は全てHoudiniでプロシージャルで生成される。
2.次世代クオリティを意識したエフェクト製作 p74
使用したツールは、Houdini、Maya、Ember Gen、Substance Desiner、PhotoShop
サンドマンの竜巻は、Houdiniのレイマーチを用いた深度とモーション情報を付与している。
参考動画の13:40
戦闘エフェクトの多くは、メッシュを用いて作成
参考動画の29:35~
STAR OCEAN THE SECOND STORY R
CGWORLDの308から抜粋
1.ドット絵キャラクターを3D空間内で破綻なく描画するため p57
高い位置からのカメラでビルボードのキャラを映すと、背景にめり込んでしまったため頂点シェーダーのよって前後関係を調整した。
長い尻尾をもつモンスターのしっぽが地面にめり込んでしまったため、頂点シェーダーでカメラからの見た目は維持しつつ、頂点を地面に沿って引き延ばすことで防いだ
キャラクター同士の前後関係はポリゴンで判定せずにUnityのステンシル機能を活用し、Zソート法のように描画順を制御することでめり込みを防いだ
エフェクトのめり込みは、キャラ、透明な平面、エフェクトの順番で描画しZ値をリセットすることで解決した
2.ドット絵キャラクターを3D背景に馴染ませるための、シェーデイングとライティング p58
URPをベースとしている。
逆光時にキャラクターが暗くなるため、シェーダーをカスタマイズしている。
ただ、木の影などは逆光でも影を落として背景に馴染ませている。
Unityデフォルトの点光源もカスタマイズして、光の減衰幅を大きくすることで柔らかい光を表現している。
ただ、NitendoSwitchにも対応するため、点光源の計算を単純にしている。
キャラクターの影は、落ち影用のビルボード用意し、キャラクターから分離することで足元とのズレを防いでいる。
また、キャラクターの向きよって影が正しく描画されなかったため落ち影のビルボードは常に光源を向くようにしている。
3.3Dエフェクトのずれ p59
カメラに合わせてビルボードのキャラクターが回転した際に、戦闘時のエフェクトがずれてしまうことが問題が発生した。
なので、該当エフェクトは最終出力時にビルボードと同じ挙動に対し、キャラクターに合わせて回転させることでずれ防いてでいる。
4.ブレンドカメラの設定 p60
移動してくと景色が変わるが、どこ切り取っても良い画になるように滑らかにカメラが推移するしくみをカメラ側で調整されている。
参考動画の1:16:46
5.Houdininiによる山のオブジェクト作成 p62
6.シルエットだけ見える遠方の陸地の最適化 p62
フォグ色とハーフランバートによるシェーダーで、シルエットだけ描画してGPU負荷を抑えた。
また、一部のプラットフォームではテクスチャの読み込みを削減している。
7.マップにコリジョンを設定するツール開発 p63
ペルソナ3 リロード
CGWORLDの308から抜粋
1.リアル調とアニメ調のハイブリッドを目指したエフェクト p82
スキルのエフェクトはUEのNiagaraで作成し、イベントのエフェクトはシーケンサーを使って作成。
UEは、連番素材を再生する機能があまり強くないため、Niagaraで基本的な動きを統合したモジュールを用意し、それをベースに作成している。
使用した箇所は、必殺技のフィニッシュの部分や、画面に対してのモデルの占有率が高いエフェクトなど。
モデルの連番はあまり解像度は関係ないため、画面に大きく描画されるようなタイプのエフェクトは連番で出している。
特に電撃系のエフェクトはモデル連番が多い。
VATは抽象的なエフェクトではなく、オブジェクトがそのものが出るエフェクトで使用している。
参考動画
GRANBLUE FANTASY Relink
CGWORLDの309から抜粋
1.ハッチング使ったキャラモデル p26
2.手書き感の再現したアウトライン p27
3.リムライトをキャラに施すことで立体感をだしている p28
カメラ向きによってリムライトの位置が変わるようになっている
4.髪の光沢表現 p28
5.カメラの回転に応じて視差効果により瞳の凹みが再現されている p29
6.カメラ向きによってモデルの造形が変わる自動顔変形を実装 p30
7.SimplyGon9を用いて自動でLODモデルを作成 p31
LODを適用させたくないメッシュを指定したり、LODを切り変える距離なども設定できる。
8.メッシュストリーミングとテクスチャストリーミング(SVT)により、メモリ使用量85%削減 p32~p33
メッシュストリーミングでは、読み込んだメッシュデータをキャッシュする機能もついている。
メッシュの切り替わりで起こるポッピングは、低解像度のLODを描画してユーザーから気づきにくくしている。
テクスチャストリーミングは、Granite SDKを用いたSVTでカメラに映る部分のみをロードしている。これにより、膨大な物量によって表現された街並みをシームレスに繋いで歩けるようになった。
SVTは一枚のテクスチャアトラスを使用しており、アーティストがテクスチャを更新すると自動的にテクスチャアトラスが反映されるようになっている。
9.接地面を馴染ませて、アセット同士の差し込みを引き起こす直視感や色浮きなどを軽減している(グラウンディング処理) p42
10.人工的に見えないように、ステージの雰囲気や住人の性格などに合わせてアセットごとに経年劣化表現を加えている p42
11.ポストプロセスは、エリアオブジェクトで配置するとそのエリアオブジェクトごとにポストエフェクトが適用される。ポストエフェクトは、DOF、Fog、ブルーム、影色の調整、キャラへのライティング、遠景に絵画調の効果などがある p43
12.雲 p44-p45
雲は天球の描写、ボリュームを使った作成、板ポリゴンにテクスチャをマッピングしたものなど状況に応じて使い分ける。
板ポリゴンの作成は、独自機能を作成して、色味やスケールなどを自由にコントロールできるようになっており様々なバリエーションの雲を作成できる。
雲を表現するときには、見せたい対象が後ろになる雲や空に溶け込んで見えなくなってしまわないように、見せたい雲の前後の雲に明度変えながら対応している。その際、明暗の境界が自然になるように明暗を調整している。
一部のカットシーンに映る雲は専用に雲を作成している。
ステージの雰囲気に合わせて雲を作成している。また、時間帯や天候に応じて雲の色味調整などは、テクスチャで変更しなくてもパラメータで制御可能。
インゲームの雲は、視点の移動や負荷を考えてポストプロセスと独自機能を組み合わせている。
13.風 p46-p52
ステージのエリアごとに、風の強さ、方向、風の種類が異なっている。
また、フィールドに吹く風だけでなくバトル中の敵の行動やキャラクターの攻撃・アビリティによって発生する風も含んでいる。
風をテストできる専用のステージがある。
風によって草に草浪がハイライトして移動する。近景と遠景で対応している。
キャラの揺れは、風が吹いていることが分かりやすく、またエリアごとの違い、キャラクターの個性も考慮して細かく設定している。
髪型に応じて風を受けたときになびきかたを調整している。
アクションゲームで、移動速度が速いので緩急により髪などが不自然になってしまうことがあったが、これを細かく調整
髪や衣装のシルエットを維持するための重力設定
各ジョイントで重力のブレンドを行えるように揺れものシステムで対応
インゲームで発生する揺れものの干渉は、モーションごとに細かい調整を行い、ひとつひとつめり込みを取り除いている。
13.描画負荷が高いエフェクト p55
ロゼッタやカリオストロのエフェクトが負荷がかかたったので、モデルパート、エフェクトパートの各担当へ相談、見た目を維持しつつモデルの軽量化したり、エフェクトで表現できる要素はエフェクトに移行した。
ロゼッタの茨のモデルは、当初は個別のモデルを作成してモーションごとに組み合わせて一つの演出を作っていたが、最終的には組み合わせた結果を1つのモデルにまとめられている。
14.自動リップシンク p56~p57
奥義時のボイスは複数あるため、それを一つ作成するのは手間がかかるので自動リップシンクで対応している。
15.敵のヒットモーションは、プレイアブルのキャラの種類によって個別のアニメーションが適用される。 p58
例えばランスロットとゴブリンに攻撃するゴブリンはそこまでのけぞらないが、バラサガの場合は大きくのけぞる。
16.スキルや感覚が異なるメンバーで、スタイルとクオリティでエフェクト作っていくための事前準備 p60
作業の指針となるように、半透明の重なりや描画負荷などを確認できるデバッグビューで実装し、「ビジュアル的に仕上げてから最適化」という流れではなく、最初から処理負荷を意識してバランスを取りながら作業を進めた。
17.主人公からのエフェクトから作成し、そこで質感の模索を経てテイストを確定し、そのあとライブラリ用のエフェクトを多数作成 p60
18.作成したエフェクトはライブラリ化され、チーム内で随時閲覧利用できるように整備された p60
ライブラリは、仕様の順守やクオリティの担保のみならず、ほかのスタッフの表現の幅を広げる方向にも貢献した。
19.リアルでもないセル調でもないエフェクト p60
初めはセル調強めでエフェクト作成していたが、背景の質感と合わないので「ファジーな質感7:セル調3割」で作成することを意識した。
エフェクトの芯となるパーツはセル調に仕上げつつ、風圧などのサブパーツはファジーな感質感にすることで、世界になじませるようにしている。
エフェクトの芯となるセル調エフェクトは、CLIPSTUDIO PAINTで作画した手書きエフェクト素材が用いられている。
エフェクトの芯となるセル調エフェクトの例は以下の動画参照。
リンクやタックのヒット時や、ジータのテンペストブレードの十字に光る箇所で使われている。
参考動画の0:14、参考動画の0:57
20.ヒットストップ時にはエフェクトが最大出力になるように調整している p61
ヒットストップのタイミングはキャラクターが一番力を振り絞った見栄えになるのでエフェクトも最大出力じゃないと辻褄が合わないため。
参考動画の0:34
21.武器の軌跡 p62
武器の軌跡は、疑似スペキュラと明暗コントラストの工夫している。
金属である刀を振った時にきらっとした光が入るであろうと想定してハイライトを入れている。
参考動画の0:50
また、武器軌跡の手書きテクスチャは素材の左側が武器の進行方向で先頭が明るく末尾が暗くなっており、こうした明暗の書き分けにより視認しやすいエフェクトになっている。
22.武器の残像表現 p62
剣や斧などは、攻撃の軌道に合わせて武器が曲がって見えるような残像表現が全ての武器に適用されている。
23.エフェクトで生じる風の制御 p63
攻撃エフェクトは、エフェクトが出るタイミングで同時に風の制御を入れて、揺れものを揺らして臨場感が向上。
この風の制御はエフェクトアーティスト一人できる開発環境になっており、エフェクトのインパクトと風のタイミングを入念に詰めることができた。
また風の制御が入ったときはボックスが表示されて確認しやくなっている。
また、フィールドの風と競合した場合は、風のベクトルを加算制御して見た目が破綻しないようなっている。
参考動画の1:04
24.シームレス演出 p64
ムービーからインゲームに移行する際はロードを挟まず、ムービー中で登場していたキャラでインゲームが進行していく。
参考動画の3:02:44
また、キャラがたくさんいるのでインゲームに移行した際、カメラやモーションが不一致になってしまったので、これに対応する仕組みと400パターンも作成した。
25.2人主人公の切替対応 p66
主人公が2人であるためカットシーンでは、体格差に応じてカメラの位置やポーズを、フェイシャルやサウンドを切り替えられるしくみを実装。
ユーザーが違和感なくストーリーに没入できるようにしている。
26.揺れものアニメーションの制作手順 p68
先にDccツールで作らずに、ゲーム側でアニメーションを調整した後にそれをエクスポートしてDCC側で調整してる。
またLiveLinkで背景が変更になったとしても即座にアニメーションに修正できる対応となっている。
呪術廻戦 ファントムパレード
CGWORLDの310から抜粋
1.キャラクターのアニメーション p81
バトルパートにSpine
ADVパートにLive2D
2.バトル中のスキル技や必殺技演出は、AEで制作したカットイン映像をTimelineで挟み込みこんでいる。
なおTimelineはカスタム化しており、トラック編集やスローモーションやポスプロなどにも対応している。p81
参考動画
3.エフェクト p81
呪力や呪いのエフェクト、攻撃ヒット時の火花、衝撃波などはPartcleSystemで作成。
煙などの一部のエフェクトは、EmberGenを採用。
呪力エフェクトのテクスチャの一例。
4.必殺技カットインの作成の流れ p82
①Vコンテ作成。
②Spineでキャラのパーツを分け、メッシュでアニメーションつける
③AEで背景を加えて書き出す。
④UnityのTimelineで最終調整を行う。
5.Live2Dによる繊細なモーション制作 p83
6.Live2Dの独自開発のリップシンクツール p83
7.Live2Dを改造してノーマルマップを使用したライティングで、背景の環境を反映したライティングを実現している。 p84
8.ポストプロセスによる画作り p84
カラーグレーディングによる色調統一、露光調整など
FINAL FANTASY VII REBIRTH
CGWORLDの311から抜粋
1. アレクサンダーのマテリアル表現 p83
聖なる審判の発光表現では、パーツごとにマテリアル数60個も用意している。
2.風の設定 p86
地形に沿って風の向き、強さが自動で計算される仕組みを導入。
なお事前計算で行っている。
地形によって、キャラの服や木の揺れが変わる。
3.Houdiniによる破壊表現 p86
形状変化が起きるDeform Animation Componentが用意されており、そこで読み込むアセットやスタート・エンドを指定できるようになっている。
CGWORLDの312から抜粋
1.独自のLOD p71
アセットを大量に描画するしくみとの一環として、Meshletベースで描画を効率化する処理を独自実装。
このため、アーティスト側でLODを作成する必要がなくなった。
最遠景(街や鳥など)のモデルはまるごと軽量化メッシュにしている。
参照サイト
2.コリジョンの自動生成 p72
レベルに配置されるアクタ数が今回は多く、自然地形が多い。
なので、手作業でコリジョンを作成するのではなく、自動化を行った。
参照サイト
3.テクスチャのリポートを軽減 p72
巨大な自然地形や建築物のテクスチャをユニークで用意するとなると莫大なテクスチャ解像度が必要になるのでリピートさせないテクスチャとリピートさせるテクスチャを用意し、レイヤーマテリアルで重ね合わせて繰り返し感を軽減させている。
4.ダンジョン地形自体が大きく変動する古代種の神殿 p72
動く背景物はスケルタルメッシュかVBA(後述)で対応。
5.CascadeからNiagara移行 p72
CascadeからNiagaraにコンバートする機能があるが、本作はエンジン内部に深く手を入れているため、すべて作りエフェクトを作りなおした。
Niagaraの利点としては、ユーザパラメータによってエフェクトの挙動を変えられること。
Cascadeのころは、少し挙動を変えるだけでもファイルごとに分ける必要があったが、Niagaraではそれがなくなった。
これ恩恵を受けたのは、「ライフスポット」。
これは大きさが異なっているので、パーティクルの数やサイズなどをファイルに分けていたら管理が煩雑になって大変であったが、Niagaraだとこれがなくなった。
6.VAB(Vertex Animation Buffer)の活用 p72
炎や煙など不定形なエフェクトはVATを使用するが、今作はVABを独自実装をした。
VABは、バリナリでデータなので2のべき乗の制約がなくビット単位で詰め込むことができる。
またテクスチャとしての制約から解放され、フレーム数も自由になった。
7.爆発エフェクト p74
アレキサンダーの爆発エフェクトはHoudiniを使用して作成。
爆発後の下に対流するような動きやキノコ雲のシルエット、黒煙の発光感なども。
8.エフェクトを追懐した白マテリアと黒マテリア p74
前作はボリュームテクスチャを用いたプロシージャルノイズで表現されていたマテリアだったが、今作ではそこにエフェクトを追加している。
9.フィーラーの描画方法 p74
カットシーンはキャラクターと同じように描画
中景はVAB
遠景はGPUパーティクル
10.天球 p75
11.ライティング周りで制作は円滑にするツール p77
12.カメラが映しているオブジェクトp 71
Compute Shaderによる可視判定、空間ボリューム、事前計測を行い、瞬時にロードアンロードしている。
13.フィールドの風のパラメータを取得して、煙や死亡エフェクトに反映させている p73
14.背景とキャラのライティング p75
両方ともライトプローブ。
前作はキャラクターはライトプローブ、背景はライトマップであったが、今作はフィールドが大規模なのでライトマップにすると作業コストや容量的にも厳しいと判断し、ライトプローブにした。
ただ全てライトプローブだとは背景の場合背景がかなりフラットになってしまったり、壁のすきまから光が漏れ出るライトリークが起きたためライトプローブを強化した。
パルワールド
CGWORLDの312から抜粋
1.キャラクターの特徴に合わせてエフェクトを作成している p48
2.武器固有でエフェクトを作成している p48
3.NiagaraとPhotoShopでエフェクトを作成している p50
4.効率化を意識したシェーダー p50
親マテリアルからインスタンスのバリエーションを設定できるシェーダーを開発。
これによって多くのバリエーションのエフェクトを作成できた。
5.エフェクトの時間変化 p50
ステージの時間変化によってエフェクトの色味が変わるようになっている。
6.ユーザーパラメータのエフェクトのスケーリング p51
モンスターによっては形態変化したりするので、同じエフェクトでもサイズ感にあったエフェクトサイズに調整している
7.エフェクトで使用するテクスチャを余分な箇所をカットして負荷軽減 p51
8.エフェクトのLODを行って負荷軽減 p51
9.時間に応じたキャラクターの見た目の変化 p57
10.目の視差マッピング p57
11.ポストプロセス p58
UE標準のものは、ブルーム、被写界深度、カラーグレーディング
独自のものは、アウトラインとモザイク表現。
アウトラインはSobelフィルター背面法ではなく、深度で実装している。
12.シャドウの最適化 p59
Discussion