UE5.4でLODBias_VTを使う際に必要なCLについての質問となります。

お世話になっております。

UE5.6にある「LODBias_VT」の機能を確認したうえで、UE5.4でも使いたくCL40870803のマージを行ったのですがうまく機能しませんでした。

この機能を使ううえで、他にマージが必要なCLがあればお教えいただけませんでしょうか。

また、機能を使う為の改造範囲が多岐にわたるようであれば、その旨をお教えいただけるだけでも大丈夫です。

[Attachment Removed]

再現手順[Attachment Removed]

(下記リンクは、Epic Games のサポートが内部的に使用するリンクですので、ユーザーの方に下記リンクを利用して頂く必要はございません。回答はこの日本語スレッドに日本語として表示されることになります。)

[Required CLs for using LODBias_VT in [Content removed]

[Attachment Removed]

[mention removed]​ 様

(以下は、サポート担当の Nappoly Kevin によるコメントを翻訳したものです。)

お問い合わせいただきまして、ありがとうございます。

> UE5.4でも使いたくCL40870803のマージを行ったのですがうまく機能しませんでした。

その CL を統合したときに、どのような問題が発生したか教えていただけますか?その問題によって、すべての仮想テクスチャに影響がありましたでしょうか? それとも特定の仮想テクスチャ群にのみ影響が生じたのでしょうか?

もしもその問題が UDIM に特有のものなのでしたら、以下のスレッドが参考になるかもしれません。

[Unexpected behavior with MaxLODSize_VT and [Content removed]

[Attachment Removed]

[mention removed]​ 様

(以下は、サポート担当の Kelly Stephen によるコメントを翻訳したものです。)

クックのプロセスを調べて、発生していない挙動を特定することができます。

まず最初に TextureLODSettings.cpp 内の UTextureLODSettings::CalculateLODBias(int32 Width, …) にブレークポイントを設置することをお勧めします。ブレークの条件を LODGroupInfo.LODBias_VT > 0 にすると、reduced (解像度縮小) 対象のいずれかの LOD グループに属するテクスチャが処理された際にブレークするはずです。例として、以下のようなコールスタックが得られます (Unreal Engine 5.6 で取得したものです)。

UnrealEditor-Engine.dll!UTextureLODSettings::CalculateLODBias(int Width, int Height, int MaxSize, int LODGroup, int LODBias, int NumCinematicMipLevels, TextureMipGenSettings InMipGenSetting, bool bVirtualTexture) Line 196	C++
UnrealEditor-Engine.dll!GetTextureBuildSettings(const UTexture & Texture, const UTextureLODSettings & TextureLODSettings, const ITargetPlatform & TargetPlatform, ETextureEncodeSpeed InEncodeSpeed, FTextureBuildSettings & OutBuildSettings, FTexturePlatformData::FTextureEncodeResultMetadata * OutBuildResultMetadata) Line 1326	C++
UnrealEditor-Engine.dll!UTexture::BeginCacheForCookedPlatformData(const ITargetPlatform * TargetPlatform) Line 3785	C++
UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::RouteBeginCacheForCookedPlatformData(UE::Cook::FPackageData & PackageData, UObject * Obj, const ITargetPlatform * TargetPlatform, UE::Cook::ECachedCookedPlatformDataEvent * ExistingEvent) Line 12614	C++
UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::CallBeginCacheOnObjects(UE::Cook::FPackageData & PackageData, UPackage * Package, TArray<UE::Cook::FCachedObjectInOuter,TSizedDefaultAllocator<32>> & Objects, int & NextIndex, UE::Cook::FCookerTimer & Timer) Line 4377	C++
UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::PrepareSaveInternal(UE::Cook::FPackageData & PackageData, UE::Cook::FCookerTimer & Timer, bool bPrecaching, UE::Cook::ESuppressCookReason & OutDemotionRequestedReason) Line 4131	C++
UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::PrepareSave(UE::Cook::FPackageData & PackageData, UE::Cook::FCookerTimer & Timer, bool bPrecaching, UE::Cook::ESuppressCookReason & OutDemotionRequestedReason) Line 4039	C++
UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::PumpRuntimeSaves(UE::Cook::FTickStackData & StackData, unsigned int DesiredQueueLength, int & OutNumPushed, bool & bOutBusy) Line 4951	C++
[Inline Frame] UnrealEditor-UnrealEd.dll!IsEngineExitRequested() Line 404	C++
UnrealEditor-UnrealEd.dll!UCookOnTheFlyServer::TickMainCookLoop(UE::Cook::FTickStackData & StackData) Line 1528	C++

バックポートした 5.4 の実装と 5.6 について、コールスタックの比較やデバッグでのステップ実行をすることで、それらの差異が際立つ可能性もあります。

もし LODBias_VT の機能を 5.6 の最小構成のテストプロジェクトでまだ検証していない場合は、まずそれを行うことをお勧めします。バックポート版と比較するための基準になります。

上記がお役に立てたかどうか教えてください。

[Attachment Removed]

ご返答ありがとうございます。

状況としては下記のようなものとなります。

マージ後にDevelopmentEditor/Win64をビルドし、

エディターメニューから「ツール」→「プラットフォーム」→「デバイスプロファイル」を開き、

「Windows」のセッティングで「World」「Character」「Effect」の「LOD Bias VT」の値を4に設定して保存し、

"UE/Config/DefaultDeviceProfiles.ini"の[Windows DeviceProfile]セクションに下記が追加された状態でWin64パッケージを作成したものの、いずれの仮想テクスチャにも影響が見られませんでした。

また、今回使用したテクスチャはUDIMではない為、お教えしていただいた問題については関係なさそうです。

+TextureLODGroups=(Group=TEXTUREGROUP_World,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,LODBias_VT=4,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=16384,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default,CookPlatformTilingDisabled=False,MaxAniso=0)
+TextureLODGroups=(Group=TEXTUREGROUP_Character,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,LODBias_VT=4,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=16384,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,MinMagFilter="aniso",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default,CookPlatformTilingDisabled=False,MaxAniso=0)
+TextureLODGroups=(Group=TEXTUREGROUP_Effects,LODBias=0,LODBias_Smaller=-1,LODBias_Smallest=-1,LODBias_VT=4,NumStreamedMips=-1,MipGenSettings=TMGS_SimpleAverage,MinLODSize=1,MaxLODSize=16384,MaxLODSize_Smaller=-1,MaxLODSize_Smallest=-1,MaxLODSize_VT=0,OptionalLODBias=0,OptionalMaxLODSize=4096,MinMagFilter="linear",MipFilter="point",MipLoadOptions=AllMips,HighPriorityLoad=False,DuplicateNonOptionalMips=False,Downscale=1.000000,DownscaleOptions=SimpleAverage,VirtualTextureTileCountBias=0,VirtualTextureTileSizeBias=0,LossyCompressionAmount=TLCA_Default,CookPlatformTilingDisabled=False,MaxAniso=0)

[Attachment Removed]

お世話になっております。

調査をしていたところ一か所マージミスが見つかり、修正したところ正常に動作しているようでした。

こちらのミスによりお手間をかけさせてしまい申し訳ございませんでした。

[Attachment Removed]

ご報告いただきまして、ありがとうございます。

本件、これにてクローズとさせていただきます。

ありがとうございました。

[Attachment Removed]