7 月:Forge、加速 CEF 与协程!
Forge 插件、加速 CEF、协程修复、载具更新及更多!

欢迎来到我们过去一个月最新更新的汇总!这篇博客比平时稍晚一些,正如本月初在 Discord 上宣布的那样。今后,我们的新闻博客将恢复正常时间表,确保它们反映上个月取得的进展。
CEF 实验性功能
我们很高兴地介绍几个长期以来被高度要求的全新 CEF 功能。从硬件加速到新的开发者工具功能!
硬件加速
我们实现了在 CEF 上启用硬件加速的能力!这是一项允许 WebUI 利用你的 GPU 而非 CPU 进行渲染的功能。允许复杂动画流畅运行,同时减轻 CPU 的工作负载。
即使启用了硬件加速,也要避免在 UI 中使用过于复杂的动画。并非所有玩家都会启用此设置,因此建议为他们提供后备动画。
加速绘制
目前,CEF 将 WebUI 页面渲染到缓冲区,然后将其复制到虚幻引擎纹理以进行屏幕渲染,全部由 CPU 处理。
加速绘制将此过程转移到 GPU,直接将渲染的纹理(DirectX 纹理)复制到虚幻引擎纹理,减少 CPU 工作负载。
虽然这个功能备受期待,但它在所有情况下可能不会提高性能。
例如,如果你的 PC 受限于 GPU,启用硬件加速和加速绘制可能会对 WebUI 的响应性产生负面影响。
新的 WebUI 设置
我们公开了几个新设置,以帮助你试验这些新功能:

硬件加速与加速绘制
允许你启用前面提到的那些功能。请注意,加速绘制需要启用硬件加速。
最大分辨率
我们添加了一个设置来限制最大 WebUI 分辨率。例如,如果你以 4K 分辨率运行游戏,这可以节省性能,允许你将 WebUI 分辨率限制为 1080p。
消息循环计划
这是一个内部 CEF 设置,可以通过减少空闲时不必要的 CEF 循环调用来提高 CEF 性能。
新的开发者工具
我们正在引入游戏内的开发者工具,类似于你在浏览器中找到的!

之前,我们只有远程调试功能作为运行时调试的唯一选项,但由于安全顾虑和 Windows Defender 阻止它的问题而被禁用。
现在使用新的开发者工具,你可以使用新方法直接在游戏内调试你的 WebUI:WebUI:OpenDevTools() 和 WebUI:CloseDevTools()。
它启动一个与游戏集成的新窗口弹出,用于检查和调试页面中的 HTML 元素!
其他 WebUI 改进
- DPI 缩放: WebUI 页面现在随显示器 DPI 正确缩放,修复了 Windows 分辨率缩放影响 WebUI 分辨率的问题。
- 平滑滚动: 我们为 WebUI 实现了原生平滑滚动,取代了之前的模拟。
- 打印命令已禁用: JavaScript 中打开外部打印弹出窗口的
print命令已被禁用。 - 多实例修复: 解决了阻止两个游戏实例同时显示 WebUI 的问题。
隆重介绍…… Forge!
nanos world Forge 是一个新的社区制作的插件,用于虚幻引擎,旨在简化 nanos world 的资产创建。它带有内置的工具和烘焙自动化以提高你的生产力!

虽然仍在开发中,但建议将其作为当前 ADK 的补充工具,因为它自动化了各种流程,如烘焙、脚本,以及未来™ 将资产上传到资源库。
此插件由一位专注的社区成员 NegativeName 开发,并将随 ADK 一起免费分发!
由于这是一个自愿项目,请考虑通过赞助来支持他和这个项目:https://ko-fi.com/negativename。
烘焙处理器
烘焙处理器是一项功能,在你的资产烘焙后自动复制它们,将其移动到配置的 ServerPath/Assets/ 目录,这样你就不必每次烘焙时手动复制它们。
结合资产包自动重载功能,它极大地加快了重新烘焙和测试资产的迭代过程!
它还在每个资产包文件夹中生成一个 Assets.toml 文件,自动列出其所有资产。
其他工具和功能
Forge 包含各种工具来增强你的资产创建体验:
- Object2Lua:将虚幻引擎蓝图资产转换为 Lua 表。
- Foliage2Lua:将植被 Actor 转换为 Lua 表表示。
- 材质拾取器:通过在视口中点击材质来快速识别它们。
- 占位符:在地图中放置 Actor 并将其导出为 Lua 代码。
- 快速实例化器:将静态网格体 Actor 转换为实例化静态网格体 Actor。
- StaticMeshToFoliage:将静态网格体 Actor 转换为植被类型。
- 缩略图生成器:为资产创建高质量 PNG 缩略图,支持批量处理。
有关工具的详细列表和如何下载的说明,请访问 Forge 页面:
Forge 设置assets-modding/forge/setup未来发展
Forge 仍在开发中,如果你有任何建议或发现任何漏洞,请不要犹豫,直接联系我们或 NegativeName!
我们仍在共同努力不断扩大 Forge 的可能性,我们计划打造一个非常可靠的工作流程,直接从 Forge 创建、管理和上传资产包!
此外,在接下来的几天里,我们将更新我们的 ADK 教程和 ADK 项目,以减少冗余工具并进一步简化它!请继续关注更新!
载具更新
我们对载具进行了重大改进,添加了缺失的方法并增强了方向盘上的程序化手部放置。
手部放置
角色的手现在程序化地适应方向盘的位置。为实现这一点,你必须在配置 VehicleWheeled:SetSteeringWheelSetup() 时指定方向盘的位置。
之前,我们使用角色的相对位置,这导致不同角色和网格体之间的不一致。通过此更新,所有角色和网格体将表现一致。
我们还为 VehicleWheeled:SetSteeringWheelSetup() 添加了一个新参数:rotation。此重构确保传递给它的参数相对于载具的根骨骼。因此,所有载具都需要使用这个新的相对位置重新配置。
扭矩曲线
你现在可以配置载具的扭矩曲线!我们为 VehicleWheeled:SetEngineSetup() 添加了一个新参数:torque_curve,允许通过脚本自定义它:
local torque_curve = {
[ 0.0] = 0.5,
[ 800.0] = 0.9,
[2000.0] = 1.0,
[4000.0] = 0.9,
[5000.0] = 0.0,
}
my_vehicle:SetEngineSetup(600, 5000, 900, 0.2, 5, 600, torque_curve)
新载具方法
我们引入了一个新方法:VehicleWheeled:SetDifferentialSetup()。允许你通过传递自定义 DifferentialType 来配置载具的差速器。
此外,我们公开了一个新参数来更改用于计算车轮悬挂的形状到 :SetWheel():suspension_sweep_shape(SuspensionSweepShape)。
Lua 协程修复

我们终于成功解决了 Lua 协程的大部分已知问题,修复了众多崩溃并确保其与各种脚本调用和方法一起工作。
例如,Package.Require 和来自 Database 或 File 操作的异步回调现在在协程执行中无缝工作。
感谢所有帮助重现这些漏洞和崩溃的测试者!
Linux 服务器要求
我们审查了运行 Linux 服务器的最低要求版本。官方支持的版本现在是 Ubuntu 22 和 24,以及 Debian 12。
我们还改进了构建过程,为较旧的机器包含必要的库(例如 glibc),解决了兼容性问题。但是,Debian 11 不再被官方支持。
有关更多详细信息,请访问更新的服务器安装指南:
服务器安装指南core-concepts/server-manual/server-installation资源库维护

本月早些时候,我们宣布了资源库/商店的维护期。我们正在开发一个能更好满足我们需求的新版资源库,因此进行了完整的后端重构。
虽然我们还没有发布日期,但进展迅速。目前,游戏仍将通过游戏内资源库和 CLI 提供默认包(sandbox、default-weapons 和 default-vehicles)供下载。
账户系统迁移
除了资源库维护之外,我们还在改进我们的账户系统后端,将其与新资源库系统集成。在我们完成这些迁移期间,我们已经暂停了新的测试者邀请几周。我们应该很快™就准备好了。
如果你在此过渡期间遇到登录错误,请告诉我们!
结语
这是一个“两个月”的更新,包含了几项令人兴奋的功能和改进。社区创建的 Forge 的引入是我们愿景的开始,即打造一个更可靠资产开发套件(ADK),简化资产创建过程。虽然仍有很多需要改进的地方,但这是重要的第一步。再次感谢 @NegativeName 发起这项倡议!
高度要求的 CEF 硬件加速功能已集成,这不是一个容易的集成,希望你能充分利用它!现在让我们测试其稳定性并确保它按预期工作!
Lua 协程问题困扰了我们很长时间,感谢你们的报告和坚持,我们成功修复了它的大部分问题!
我们也在不知疲倦地工作,为资源库和账户系统创建一个新的生态系统,我们已经在将账户迁移到新系统,并为资源库开发满足我们所有需求的后端。这些更改正在逐步推出,以尽量减少摩擦。许多更新已经无缝实施,我们正努力在没有任何停机时间的情况下进行,以使这一过渡尽可能顺利!
我们感谢你在这些过渡期间的耐心和支持。你的反馈对我们改进非常有价值。请继续关注更多更新,感谢你成为 nanos world 社区的一部分! 💖
也感谢所有在 Ko-fi ☕ 上支持我的人,你不知道看到你们的支持愿望让我多么有动力,这对我来说多么令人安心! 💙


