当前开发要求(UE 5.7)
支持的设备硬件:Nintendo Switch 2
支持的IDE:Visual Studio 2022
SDK版本:
SDK:20.5.6
最低固件版本:20.1.0-2.2
Nintendo开发接口(NDI)早已废弃,无法再从Nintendo下载。 请改用Nintendo文件包管理器(NNPM)。
版本说明
所有Nintendo
新增内容:
进行了一项修改,提供了一种将附加内容版本与应用程序版本分离的方法,因为在某些情况下,开发者可能只想更新附加内容的发布版本,而不想更改应用程序版本。
在支持的硬件上为Nintendo平台实现了开发目的的CPU超频。
启用ASTC纹理压缩时,现在也启用RDO。
RDO 可在不明显损失质量的情况下提供更好的封装压缩(在大型项目中可减少约 5% 的总封装大小)。
现已实现ApplicationWillDeactivateDelegate和ApplicationHasReactivatedDelegate。 这些事件对应于应用程序进入和离开失焦状态的时间(而非后台状态)。
请注意,CVarSuspendInBackground的值会影响操作系统向正在运行的应用程序提供的信息,进而影响可以广播的委托。 如需详细了解这些状态,请参阅Nintendo文档中的"处理焦点状态变化"。
禁用了定义了[[nodiscard]]警告的NintendoSDK函数,以简化向SDK 21的过渡(非正式支持)。 未来的虚幻引擎版本将解决此警告的具体实例。
错误修复:
此前,从 Target Manager 2 启动文件包 (.NSP) 时,`IsPackagedExecutable` 函数可能无法检测到这种情况,从而导致动态模块加载逻辑模块从非预期位置加载。 IsPackagedExecutable现在将正确检测到这种情况,动态模块将从预期位置(包)加载。
此前,如果启用了Zen,但未设置有效的文件缓存日志大小,应用程序可能会卡住或无响应。 现在,如果使用文件缓存(由于 Zen 或其他原因),则在 GetJournaledBytesBeforeFlush 中设置有效的缓存日志大小。
此前,在制作补丁时,即使"基于"版本已被创建为"发布版本",也无法找到该版本。 现在,Nintendo补丁将查找发布版本存储的位置,对应于生成补丁时使用的“基于”版本。 此外,增加了额外的日志记录,以便更清晰地了解进程的状态。
此前,对NintendoExports.FindTmFile的调用无法成功找到NXSymStore.exe文件。 这种情况可能发生在发布符号时(例如,在进行编译时)。 现在可以成功找到该文件了。
NintendoInputSender
添加了一项修复,以确保当弹出对话框由按钮按下触发时,能够获取焦点并显示在主NintendoInputSender窗口上方。
修复了一个问题,即更改开发工具包启动应用程序(主页/开发菜单)时,设备不会自动重启到请求的应用程序。
切换到新的启动应用程序需要通过对话框确认,而不是立即执行请求。
此前,如果在测试配置中设置了NO_LOGGING,编译会失败,并在NintendoSystemCrashCallbackHandlers.cpp中出现错误。 现在不会发生错误。
此前,使用Nintendo CPU分析器以“测试”配置捕获应用程序时,会报告一个严重问题,错误地将构建标记为“开发”构建。 现在,测试版本不再被错误地识别为'开发'版本。
Nintendo Switch 2
新增内容:
改进了默认INI设置。
这些设置更能代表Nintendo Switch 2应用程序以60 fps运行时,为提高视觉保真度而预期的配置。 由于这些设置会提高视觉保真度,因此可能会增加相关的GPU开销。 我们的测量结果显示,这在1毫秒或略低于1毫秒;但这可能会有所不同,并且取决于内容。
供参考,以下是BaseSwitch2DeviceProfiles.ini中更改的设置:
sg.ViewDistanceQuality 3 -> 1
sg.ShadowQuality 1 > 2
sg.GlobalIlluminationQuality 1 -> 0
sg.ReflectionQuality 1 -> 2
sg.PostProcessQuality 1 -> 2
sg.TextureQuality 1 -> 2
sg.EffectsQuality=1 1 -> 2
sg.FoliageQuality 2 -> 3
sg.ShadingQuality 2 -> 3
r.MaxAnisotropy 1 -> 8
以下纹理组已从线性过滤升级到各向异性过滤:
世界
WorldNormalMap
WorldSpecularCharacter
CharacterNormalMap
CharacterSpecularWeapon
WeaponNormalMap
WeaponSpecularVehicle
VehicleNormalMap
VehicleSpecularCinematicLightmapShadowmapRenderTargetMobileFlattenedTerrain_Heightmap
TerrainWeightmap
对于这些,MaxAniso 设置为 2。
r.Shadow.MaxCSMResolution在控制台模式下增加到2048。分辨率在控制台模式下增加到4k。
添加了 VRS Engine/Platforms/Switch2/Config/BaseSwitch2Engine.ini 的示例设置。
这些设置默认禁用,因为当前形式的VRS并不总是能提高性能。 请使用代表性内容进行分析。
更新了 NVN2 RHI,当注册新采样器将超过采样器限制时,从其采样器缓存中移除最近未使用的未引用采样器。
现已支持HDR显示输出。
使用现有的 RHI cvars 启用对 120Hz 和 VRR(可变刷新率)的支持,并在 Switch2 编辑器项目设置中添加了 120Hz 和 VRR 选项。
通过设置 Switch2.RespondToGraphicsScale=2,提高了 Campus 激活时的性能。
修复了在平台上启用硬件光线追踪时发生的崩溃问题。
此前,打包过程会假定Nintendo Switch(1)平台始终存在,如果不存在则会打包失败。 将会抛出以下错误:“平台名称 Switch 不是有效的平台名称”。
这个问题已经解决,只有在执行 MergeNSPs 机制时才需要 Switch(1) 平台(该机制确实需要 Switch(1) 和 Switch 2 平台同时存在)。
修复Switch2上的着色器符号信息。
更新说明
Nintendo Switch 2
要在平台上启用HDR显示输出,请在平台 -> 渲染下启用"支持HDR"设置。
要为 Switch2 平台启用 120Hz 刷新率(而不是标准的 60Hz)或 VRR(可变刷新率),请选中 Switch2“启用显示 120Hz 刷新率”和/或“启用显示可变刷新率 (VRR)”项目设置复选框。
注意:请确保你的应用程序的帧率持续保持 >= 40fps,然后再启用VRR。 VRR目前仅支持在掌上显示器上使用。