「アイドルマスター スターリットシーズン」におけるグラフィックス実装事例と最適化事例【UNREAL FEST EXTREME '22 SUMMER】

60.2K Views

May 24, 22

スライド概要

講演アーカイブ:
https://www.youtube.com/watch?v=re56DDIQRiM&list=PLr_Cbd4sUDTxsGqpTyasfI1yRzY5Uy8CE&index=4

講演内容:
本セッションでは、「アイドルマスター スターリットシーズン」での描画要素の解説とその実装例、更に一歩踏み込んだ表現を行うために行ったエンジンの改造事例やレイトレーシングへの対応とUE4.24時点での課題、最適化で行った事例の説明をします

講演者:
久多良木 勇人 (株式会社バンダイナムコエンターテインメント プロデューサー)
岩本 東治郎 (株式会社ILCA テクニカルリードプログラマ)

UNREAL FEST EXTREME 2022 SUMMER公式サイト:
https://unrealengine.jp/unrealfest/extreme2022summer/
#uefest

profile-image

Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

「アイドルマスター スターリットシーズン」における グラフィックス実装事例と最適化事例 株式会社バンダイナムコエンターテインメント プロデューサー 久多良木 勇人 株式会社ILCA テクニカルリードプログラマ 岩本 東治郎

2.

はじめに 2021年10月に発売されました「アイドルマスター スターリットシーズン」 の開発事例についてお話します。 最初に「アイドルマスター スターリットシーズン」がどういったゲームか、概要 をBNE久多良木より紹介し、その後本講演のメインとなる開発事例の詳細について ILCA岩本さんからお話をして頂きます。 2

3.

自己紹介 久多良木 勇人(Hayato Kutaragi) バンダイナムコエンターテインメント所属 自社IPや家庭用ゲームを中心にプロデューサーや マーケティング業務を経験。「アイドルマスター」シリーズでは 近年の家庭用ゲームのプロデューサーを担当。本作ではタイトルの 企画にはじまり、開発、販売、宣伝等の幅広い業務に携わる 3

4.

「アイドルマスター」とは 『アイドルマスター』とは、2005 年にアミューズメント施設向けゲー ム機からスタートしたアイドルプロデュースゲームです。 プロデューサーとしてアイドルを育成するゲームシステムや、個性豊 かなキャラクター、楽曲が多くのお客様に支持を受けています。 これまでに家庭用ゲームソフトをはじめ、ラジオ、テレビアニメ、モ バイルコンテンツからステージイベントまでさまざまなクロスメディ ア展開をしています。 4

5.

「アイドルマスター スターリットシーズン」について 『事務所の垣根を超えたスペシャルユニットを結成 アイドルマスター家庭用最新作』 完全新作の長編ストーリー 究極のアイドルビジュアル表現 本作ならではの新プロデュース体験 5

7.

本タイトルで目指したもの ・シリーズ最高峰のビジュアルでアイドルたちにドキドキしたり 癒される体験ができること ・感動的で没入感のある長編の物語 ・事務所の垣根を超えた一大アイドルプロジェクトを結成し、 自分の力でプロデュースできる体験を提供すること 7

8.

自己紹介 岩本 東治郎(IWAMOTO Tojiro) 株式会社ILCA テクニカルリードプログラマ 本作ではゲーム実装、グラフィックス実装、エンジニア の技術サポート、アーティストの技術サポート、 DCCツール開発、サウンド特殊効果部分の実装と調整、 Jenkinsを用いたワークフロー構築、最適化等で幅広く担 当させて頂きました。 8

9.

本セッションについて ・本講演ではUnreal Engine 4を便宜上UE4と表記します。 ・本講演はUE4をある程度触っているエンジニア、テクニカルアーティスト向けの講演となります。 ・本作はUE4.24での実装となっております。最新のUE4と仕様に違いがある箇所についてはご了承下さい。 ・可能な限り具体例を示す様にしておりますが、全ての記載、解説まで行えない事をご容赦下さい。 9

10.

基本設計 ・PCでの展開を見据え、PS4をハード性能の最低ラインと定義 PS4 30~60FPS PS4Pro 40~60FPS PS5 60FPS ※開発当初はハードが出ていなかった為、後から設計 PC 24~240FPS ・UE4を採用し、Deferred Rendering方式を採用 10

11.

描画の分類 ・アイドル、衣装、持ち物、動物 ToonShadingで実装 ・3D背景、小物 UE4で基本的なPhysically basedで実装 ・ポストプロセス UE4の基本機能を使用。一部改造、追加 11

12.

トーンマッパ設定 r.TonemapperFilm=0でレガシトーンマッパを使用 ※UE5では利用できないのでご注意下さい ※Film設定のみでは美白がかった肌色の傾向が解決できなかった為、 本作ではこの設定としました ACESフィルムトーンマッパ 本作で採用したレガシトーンマッパ 12

13.

Toon Shadingの実装 ・基本的にはUE4のDeferred Renderingに沿い、Shading Modelとして実装 ToonLit → アイドル&衣装用 ToonHybridLit → Default Litとほぼ同じ挙動で、一部衣装の金属等に利用 ・これに伴って、G-Bufferにも用途変更と追加 13

14.

G-Bufferの用途変更 G-BufferB R16G16B16A16(※①R8G8B8A8) G-BufferD R11G11B10 (※②R5G6B5_UNORM) TWOSIDED_FOLIAGE、HAIR、CLOTH、EYE、CLEARCOATはオミット DefaultLit、 ToonHybridLit ToonLit R Metallic High luminance magnification(高輝度化係数) G Specular Fixed shadow(影のなりやすさ) B Roughness Un use※③ A Shading Model Shading Model Misc ToonLit R Misc Shadow mask(影のマスク値) G Misc Lighting control (ライティング影響度係数) B Misc Fake subsurface(衣装のサブサーフェス係数) ※①、② 一部プラットフォームの場合、最適化で精度を落としています ※② GNMではR5G6B5_UNORMのRenderTargetが取り扱えるのですが、UE4側でサポートを していなかった為、改造を入れて使える様にしています ※③ 開発中盤まで利用していましたが、最適化で用途がオミットされ空きチャンネル化 14

15.

G-Bufferの用途変更(改良できた例) G-BufferB R16G16B16A16(R8G8B8A8) G-BufferD R16G16 (R8G8_UNORM) TWOSIDED_FOLIAGE、HAIR、CLOTH、EYE、CLEARCOATはオミットしているので、 実質Bチャンネルに当たる箇所は本作では潰しても問題は起こらない DefaultLit、 ToonHybridLit ToonLit R Metallic High luminance magnification(高輝度化係数) G Specular Fixed shadow(影のなりやすさ) B Roughness Shadow mask(影のマスク値) A Shading Model Shading Model Misc ToonLit R Misc Lighting control (ライティング影響度係数) G Misc Fake subsurface(衣装のサブサーフェス係数) G-BufferBのBチャンネルにG-BufferDの用途を移す事で、G-BufferDに対する最適化or精度向上の改良が出来る余 地がありました。 G-BufferDの格納値で精度不足による品質低下が見受けられた場合にこの対応を入れる予定でした 15

16.

G-Bufferの追加 G-BufferToon R11G11B10 理想とする影色をGbufferに格納する為に追加 Un use ToonLit R Unused Shadowd base color (影色) G Unused Shadowd base color (影色) B Unused Shadowd base color (影色) 開発初期はR8G8B8A8としていましたが、 精度不足によるマッハバンドが顕著な為、 予備としていたAチャンネルをオミットし、R11G11B10に精度を上げました 16

18.

レンダリングフロー概要① ベースカラー、影カラー、影のなりやすさ 影のマスク値、高輝度化係数、衣装のフェイクサブサーフェス 係数、ライティング影響度係数、DepthOffset、Normal DEFAULT_LITをベースに、ToonLitの場合は Indirect Lighting、Skylight処理を省いてGbufferに書き込み ToonLitシェーディングモデルの適応 Material BasePassPixelShader DeferredLighting ②へ続く 18

19.

レンダリングフロー概要② LightAccumulator_Add時にGBufferD.r(Shadow mask)値で ライティング処理時に影に直接介入 DeferredToon処理 例)顔に髪の毛等のCast Shadowを落としたくない時に利用 完全に顔が影となる場合の対処は、仮想の単一のライトベクトル を使った自動計算(横向き以上になると自動でマスクOFF)or シーケンサによる制御で対処 輝度を含んだライティング情報をToon用に色情 報に置き換えてしまう為、GBufferB.rに保持して おいた高輝度化値を後から合成し、Emissive的な 表現を解決しています ③へ続く 19

20.

レンダリングフロー概要③ DeferredReflectionsAndSkyLighting ↓ LightShaft ↓ Atmosphere ↓ Fog ↓ PostOpaqueExtention ↓ Translucency ↓ Postprocessing ・・・ ↓ UI DeferrerdToon処理以降は通常のUE4の描画フロー 描画終了 20

21.

ToonLitの挙動 ←影色 動的ライティングの光量による違い 理想色→ 動的ライティングは素直に反映され、リフレクション、Light Shaft、Fog、Atmosphere等も通常通り反映されます ※動的ライティング時の色情報に関してはあえて反映しない様にしており、マテリアルでBaseColorを出力する時点で色を決めています。 初期の実装は動的ライティングでの色反映を行っていましたが、カラー制御が狙った色の具合になりにくく、 更にパッキリした陰影と相性が悪い部分があった事によります。 21

22.

ToonLitの挙動 22

23.

ToonLitの挙動 23

24.

レイトレースへの対応 本作ではPC(Steam)、DirectX12環境でリフレクションとシャドウでレイトレースが利用可能となっています。 ・Raytrace Reflection ・Raytrace Shadow 基本的にはUE4の機能をそのまま利用しており、ToonLit等のカスタムShadingModelに関しても、 レイトレースの恩恵を受ける事ができました。 ※但し、従来のラスタ処理とは違う箇所についてカスタムが必要だった箇所には手を入れています。 24

25.

RayTracingOcclusionRGS.usfの対応例 GBufferD.rに格納したShadow Mask値を ShadingModelで判別し、OcclusionRGSの Shadow値に補正を入れ、レイトレースでも Shadow Maskが効く様に対応してます ・・・ 25

26.

レイトレースへの対応 影マスク処理が効いてない例 影マスク処理が効いている例 ※本作は顔部分に髪の毛のCastShadowは落とさないデ ザインとしている為、右が正しい挙動となります 26

27.

レイトレースリフレクション 27

28.

レイトレースの制約 しかしながら、UE4.24時点では仕様的な制限が多く存在しました。 Reflectionではエフェクト、VATを利用したInstanced Static Mesh等で影響を受けています ShadowではLighting Channelの利用ができなくなってしまう為、いくつかのライトはレイトレースShadowをOFF にしています。 Cascadeのエフェクトが乗らない ※Niagaraの場合、4.26時点ではSprite、 Ribbon、Meshを一部ShadingModelでサ ポート WorldPositionOffsetや、一部マテリ アルパラメータが効かない。 ※UE4.26でWPO対応がされる様に なっていると思います。 28

29.

レイトレースのパフォーマンス レイトレースは負荷が非常に高く、ハイエンドGPUでも非常に重かった為、品質を下げ、一部機能を切ってい ます。 特にリフレクションに関してはフルスペックからいくつか機能を切っています。 バウンス数は全ステージで2を共通仕様としています。 4.24ではWPOが適応されないので切っています 本当は入れたかったですが、DirectLightingを切っています 解像度は半分に落としてます ReflectionはRoughnessを改造で省いている為、デ ノイザがなくても十分だったので切っています 29

30.

キャラクタ描画の構成要素 ※本講演ではキャラクタマテリアルの実装部分に関して、時間の都合で概要のみの説明としますのでご容赦下さい。 ※一部はCGWORLD vol.281 2022年1月号にて特集がありますので、そちらをご覧頂ければと思います。 30

31.

キャラクタ描画の構成要素 ・色、影色 ・フォワード、ディファード切替 ・リムライト ・Postprocess パラ効果 ・指向性リムライト ・Postprocess 疑似サブサーフェス、透け効果 ・高さ影 ・Postprocess DiffusionFilter(エンジン改造) ・各項目の色調整、明度調整 ・Postprocess その他UE4標準の効果・・・ ・スフィアマップによるフェイクの環境マッピング ・アウトライン(法線押し出し) ・高輝度化値 ・影のなりやすさ ・影マスク値 ・肌効果(チーク等の赤み制御) 31

32.

キャラクタ描画の構成要素(マテリアル概要図) BaseColor 理想色 影色 リムライトの部位マスク 影マスク 影の落ちやすさ 涙が流れる部分(顔) 透けやすさ(衣装) 高輝度値(衣装) ハイライト形状(髪) チーク、肌の赤み部位(顔、体) Spheremap(衣装) Normal(法線転写) TangentSpaceNormalとの補間値 ・フォワード、ディファード切替 ・リムライト ・指向性リムライト ・高さ影 ・色合成(加算、乗算) ・SphereMapでの環境マッピング ・影制御 ・高輝度化 ・パラメータ調整 Shadow Color High luminance magnification Shadow Mask Normal Fake Subsurfce Depth Offset 32

33.

実際のマテリアルのパラメータ例(顔用) 33

36.

2D用特殊効果 本作では、アイドルとコミュニケーションをとるアドベンチャーパートがありますが、その際に表示される一 部の2Dの背景に対して、フローマップを適応して動きをつけました。 主に川や水面等、ゆるやかな動きに対して適応をしています。 大きなエフェクトのアニメーションや、フローマップで動かす以上の事については、 カスケードによるエフェクトで対応しています。 36

37.

2D用特殊効果(フローマップ) 37

40.

Cinematic DOF UE4ではリアルな挙動を重視している為、Cinematic DOFでは焦点範囲の調整ができませんが、 本作では演出を優先させる為に利用できる様に改造しています。 APostProcessVolume::CanEditChange 上記対応だけでシェーダー中のView.DepthOfFieldFocalRegionに値が入ってくる様になったので、 後はDOFのCircle of confusion(COC)値を計算する部分で焦点範囲の値の反映をするだけで大丈夫でした。 本作ではそのままシンプルな形で、COCのオフセット値として計算しています 40

41.

Cinematic DOF(コード例) CircleDOFCommon.ush DOFCommon.ush ※resolutionAdjustについて フルHDを基準として開発をしていたのですが、画面解像度に比例してDOFのかかり 具合が許容できない程変化してしまう挙動がありました。 なので、ここでフルHDベースで8Kを上限にDOFのかかり具合が同じ様になる近似値 的な補正を行って対応しています。 41

42.

Cinematic DOF(焦点範囲なし) 42

43.

Cinematic DOF(焦点範囲あり) 43

44.

Cinematic DOF(コンフィグ) PS4 PC(高) r.DOF.Recombine.Quality=0 r.DOF.Recombine.Quality=0 r.DOF.Gather.RingCount=3 r.DOF.Gather.RingCount=5 r.DOF.Kernel.MaxBackgroundRadius=0.01 r.DOF.Kernel.MaxBackgroundRadius=0.025 r.DOF.Kernel.MaxForegroundRadius=0.025 r.DOF.Kernel.MaxForegroundRadius=0.025 r.DOF.Scatter.MaxSpriteRatio=0.1 r.DOF.Scatter.MaxSpriteRatio=0.25 44

45.

Cinematic DOF(半透明問題) DepthOfFieldFunctionからCOC半径が取れるため、この値でフォーカスが外れている判定をしています。 キャラの眉毛等のRenderAfterDOFの半透明部位のα値に補正を行い、フォーカスが外れている場合に半透明度 合いが強くなる様にして、眉毛等が浮き出ない様にしています 45

46.

Cinematic DOF(半透明の焦点補正なし) 46

47.

Cinematic DOF(半透明の焦点補正あり) 47

48.

FrameBufferのCapture機能 過去作品で、カメラで写した映像をそのままステージのスクリーンに写すという仕様があり、 本作ではFrameBufferのキャプチャ機能を追加で実装して対応しました。 48

49.

FrameBufferのCapture機能 SceneCapture、FrameGrabberはどちらもコンシューマ機で扱うには高コストだった為、 エンジンにカスタムを入れ、描画結果を2か所のタイミングでキャプチャできる機能を作成しました。 ・PostprocessMaterialのBeforeToneMapping処理後 モニタ表現、フェイクのリフレクション等 ・Tonemapper処理直後 ディゾルブフェード等 ※ターゲットとしているコンシューマプラットフォームで、おおよそ0.14ms程度の動作速度となります。 49

50.

FrameBufferのCapture機能 本処理に関してはUDNにてやり取りを行っております。 その際に思わぬ所で貴重な資料をご共有頂けました。 ご協力頂いた方々にこの場をお借りして、心から感謝を申し上げます。 FrameGrabberを利用した前フレームの描画結果の取得が重い ※ライセンシ向けページとなりますので、閲覧には開発者登録が必要となります ※本作ではUE4.24へ最適化する為、RDG(Rendering Dependency Graph)方式で再実装を行っております 50

51.

最適化 講演時間の都合で、エンジニアリングが必要になった箇所の一部を ピックアップしたご紹介となります 51

52.

最適化 DefaultEngine.ini [/Script/Engine.RendererSettings] r.DynamicRes.OperationMode=2 r.DynamicRes.MinScreenPercentage=85 r.DynamicRes.MaxScreenPercentage=100 r.DynamicRes.FrameTimeBudget=33.3 r.DBuffer=False r.SupportReversedIndexBuffers=False r.EarlyZPass=3 r.HZBOcclusion=0 r.DOF.Recombine.Quality=0 bDefaultParticleCutouts=True r.TemporalAASamples=4 r.TemporalAA.Upsampling=0 r.TemporalAAPauseCorrect=0 r.DOF.Gather.RingCount=3 r.DOF.Kernel.MaxBackgroundRadius=0.01 r.EarlyZPassOnlyMaterialMasking=False r.SSR.Temporal=0 r.SSR.HalfResSceneColor=1 r.SSR.Quality=2 r.LightShaftAllowTAA=0 r.VolumetricFog.TemporalReprojection=0 r.AmbientOcclusion.Compute=1 r.Upscale.Quality=3 r.Water.SingleLayer=0 r.HairStrands.Enable=0 要約 ・動的解像度設定 ・品質のリダクションが可能な設定項目の設定 ・本作で利用しない機能をOFF ※PS5では60FPSを下回らない程度に描画品質を向上させ、 フルHD基準で150%のスーパーサンプリング状態にしています また、60FPSでほぼ張り付く為、動的解像度はOFFにしています r.DynamicRes.OperationMode=0 r.Shadow.MaxResolution=4096 r.Shadow.MaxCSMResolution=4096 r.SkeletalMeshLODBias=-3 r.SSR.Temporal=1 r.SSR.HalfResSceneColor=0 r.SSR.Quality=4 r.PostprocessAAQuality=6 r.ScreenPercentage=150 r.Upscale.Quality=5 r.Tonemappper.Sharpen=0.5 52

53.

最適化 観客 53

54.

最適化 観客(基本対策) 本作ではステージで5万人前後の観衆を3Dオブジェクトとしてステージに設置しています。 基本的にはFoliageとして設置しています。 ・Opaque、Unlitマテリアルのみ ・LODできちんとリダクション ・Shadow無し ・VATでアニメーション 54

55.

最適化 観客(基本対策) 観客のLOD分布の例 55

56.

最適化 観客(GlobalClipPlaneの副作用対策) 本作では一部シーンでPlanarReflectionを利用する為、GlobalClipPlaneが有効化されています。 UE4では、 PlanarReflectionを利用する箇所とは関係なく、頂点シェーダーにSV_ClipDistanceのシステムセマン ティックが宣言されてしまい、頂点キャッシュやラスタライザに負担をかけてしまう為、PlanarReflectionと関 係のないメッシュに関してはSV_ClipDistanceを宣言させない様にする改造を入れています。 マテリアル設定例 Common.ushの改造例 改造でPlanarReflectionと関わりがないマテリアルに、チェックボックスで制御が可能になっています 56

57.

最適化 観客(GlobalClipPlaneの副作用対策前) 57

58.

最適化 観客(GlobalClipPlaneの副作用対策後) 58

59.

最適化 観客(GlobalClipPlaneの副作用対策) 59

60.

最適化 観客(亜種) 60

61.

最適化 多人数ライブ 61

62.

最適化 多人数ライブ 特定のコンシューマ機の場合に、各CPUへの効率的なタスク分散の配分をして欲しかった為、エンジンのコー ドを一部変更し、働かない傾向が出ていたCPUコアの利用率を引き上げています。 本作ではサウンド系処理を偏らせて割り当てる様にしています。 XXXPlatformAffinity.hの例 プロジェクト設定( CRIWARE )の例 GetTaskGraphThreadMask() 6CPU_ALL → 7CPU_ALL GetRHIThreadMask() 6CPU_ALL → 7CPU_ALL ※2進数表記で『1000000』 初期設定は63で『 0111111』 GetAudioThreadMask() 6CPU_ALL → MAKEAFFINITYMASK1(6) ※ややこしいですが、0開始なので、6は7番 コアという指定になります 62

63.

最適化 多人数ライブ(CPU割り当て調整前) 63

64.

最適化 多人数ライブ(CPU割り当て調整後) 64

65.

最適化 多人数ライブ(CPU割り当て) 65

66.

最適化 多人数ライブ この対応はコンシューマ機のみへの特殊対応となっています。 また、働かない傾向が出るこのCPUコアはOSと処理を共有するタイミングがある為、フルの性能は使えず、 条件によっては更にアプリで使えるCPU時間が低下します。 ※UE4ではデフォルトである程度利用する様になっていますが、タイトルによっては無改造だとあまり効果的には利用されないかもしれません どこまで負担を偏らせても大丈夫かはタイトルやタスクの粒度によって異なるかと思いますので、 プラットフォーマのプロファイラで、CPUコアの利用状況を解析しつつの調整となるかと思います。 本作では割り当ての整理だけで1~2msec程のCPUサイドのパフォーマンス向上が行えました。 プロファイラ上では働きづらかった特定コアの利用率が1~7%から、40%程まで向上しています 66

67.

最後に まだ沢山ご紹介したいのですが、本日はここまでとなります。 最近ではUE5もリリースされ、今後もNPRへの取り組みはもっと面白くなってくると思います。 また、ハードと機械学習の進化によって、人間の感性に近い表現『物理的には嘘だけど感覚的にこうした方が 良く見える』を、今までのやり方とは違う形でランタイム上に表現するアプローチも可能になってきました。 UnrealEngineのこれからも楽しみです。 67

68.

追記 質疑応答の際に返答しきれなかった部分の補足とアンサーの追記となります 68

69.

Q&A Q.マテリアルが複雑になってそうですが、ノードではなくコードでの実装が多かったりしますでしょうか? A.ほとんどがノードで作成されていて、一部ノードで組むのが大変なループ処理等はCustomノードでコード処 理を行いました Q.身長差の大きいアイドルもいますが、開発中でベースにしたアイドルはいますか? A.ルック開発では天海春香さんをベースとする事が多かったです。 デバッグでは、諸星きらりさん、双葉杏さんの最も身長差が出る組み合わせを確認のパターンのひとつとして いました 69

70.

Q&A Q.VATがLOD分つくられていたというところで、観客で同時にロードされているVATテクスチャ総量(合計サイ ズ、枚数など)など教えて頂けるとありがたいです A. LOD0 256KByte LOD1 192KByte LOD2 128KByte LOD3 64KByte LOD4 64KByte 合計704KBytexモーション数(MAXで10種類)= 7040KByte モーションによってサイズは前後していますが、おおよそこのサイズ感でした フレームレートは30で、作成時には可能な限り短いループモーションとなる様にして 無駄が出ない様に気を付けて作成をしていました。 70

71.

Q&A Q.物理の処理負荷は全体の何%程度なのでしょうか? A.シーンによって負荷度合いが異なりますが、28人等の大人数の場合は33.3msecの予算の内最大で50%程に 達する事はありました 通常のライブでは33.3msec換算で5~10%程度となっています 本作はアニメーションとカスタムの物理はマルチスレッド実行となっている為、 ある程度負荷は分散させている実装となっています 71

72.

Q&A(質疑応答時の返答での補足項目) Q.ライブなどでカメラカットなどが切り替わるときに、テクスチャストリーミングの低解像度テクスチャが見 えるなどの問題は出ませんでしたか?対策をしていた場合、どのような対策を行いましたか? A.カメラ切り替わりイベントを受け取った瞬間にLODの強制固定をさせる実装機能に加えて、ストリーミングの設定自体にも変更がありまし たので補足させて頂きます。 r.Streaming.MaxTempMemoryAllowedの値をデフォルトより大きくして対応していました 本作では背景の物量自体は特別多くなかったので、r.Streaming.NumStaticComponentsProcessedPerFrame等はデフォルトのままの運用にしてい ました。 キャラクタに関してはプリキャッシュしておく形にしているので、Streaming自体での問題はあまり出なかったのですが、キャラの一部は例 外的にNeverStreamingをテクスチャ設定に入れていました。これに加えてCameraRotationThreshold、CameraTranslationThresholdも調整している のですが、最新のUEでこのコンフィグ設定が有効かは不明なので、使えなかったらすみません。 テクスチャストリーミングの全体設定に関しては公式ドキュメントがあるのですが、ストリーミング遅れ等は設定調整だけで対応できるパ ターンが多かった印象です(但し、ギリギリの環境の場合はメモリやヒッチ等のトレードオフが発生するかもしれないです) https://docs.unrealengine.com/4.27/ja/RenderingAndGraphics/Textures/Streaming/Config/ 72

73.

Q&A(質疑応答時の返答での補足項目) Q.トーンマッパがUE5では利用できないとありますが代用手段としてはどのようなものがあるのでしょうか? A.レガシトーンマッパの事と解釈しているのですが、代替手段として質疑応答時にUE5で代用する際の正確な 調整項目名が思い出せなかったのですが、正式な名称は PostprocessVolume>カラーグレーディング>Misc> トーンカーブ量 の項目でした。 講演後にEpic Game Japanの方が検証をして下さっているので、こちら参考になるかと思います! https://qiita.com/EGJ-Osamu_Saito/items/1b478c0d91f263452b0f 73

74.

Q&A(質疑応答時の返答での補足項目) Q.観客はフォリッジで実装されたとありましたが、他に検討した方法はありましたか? A.こちら放送時での理由に加えて、フィールド上に色塗り感覚で大量に配置する手段としても利点があった事 も追記させて頂ければと思います 74

75.

Q&A(質疑応答時の返答での補足項目) Q.別の方が担当されたかと思うのですが、シーケンサを多用する上で支援ツール作成やエンジン改造などは行 いましたか? A.担当者に確認しましたので、以下の情報を補足させて頂ければと思います。 ・キーの重なりがあった場合に検出する機能 ・キーのタイミングが1/60秒単位からずれていた場合に自動補正するツール ・サブシーントラックのソート機能 ・サブシーンのHierarchalBiasをルールに則って設定する機能 ・人数に応じてサブシーントラックのActiveをランタイム上で切り替える機能 ・シーケンサで走るモーションを再生する際に、共通のモーションで体が大きい人と小さい人の歩幅を合わせる為、アニメーショントラック のPlayRateをランタイムで変えられる様に改造 ・用途に合わせたカスタムトラックの追加を行っています。 なるべくプロパティをオブジェクト単位にまとめて制御する形で追加していて、処理順序が複雑にならない様に対応しました 75

76.

お知らせ 76

77.

CGWORLD vol.281 2022年1月号にて、特集を組んで頂けました。 今回ご説明できなかった部分や、各セクションでの取り組み等、 気になる方は是非こちらもご参照下さい!! https://cgworld.jp/magazine/cgw281.html Web記事も公開中! https://cgworld.jp/article/202204-imas-ss02.html https://cgworld.jp/article/202204-imas-ss01.html 77

78.

人材募集 イルカでは、比較的規模の大きいコンシューマーゲームを中心に開 発しておりますが、ゲームだけではなく、エンターテイメント全般 での様々な挑戦を続けております。その為、職種も幅広く募集して おります。 もし「私たちと一緒に開発してみたい!最新の技術に触れたい! ゲームに限らず色々やりたい!」という方は、ホームページを是非 ご確認ください。 株式会社イルカHP:https://www.ilca.co.jp/ 開発タイトル一例:https://www.ilca.co.jp/works/ UE5 × エースコンバットプロジェクトも始動中! 興味ある方はこちらも是非ご応募ください! 78

79.

ご清聴ありがとうございました 79

80.

アンケートへのご協力をよろしくお願いします https://forms.gle/uxbE3w1gRnk82Twu7 80