1 月:商店与资源库!
隆重介绍商店、全新类以及所有追溯更新!
本篇博客还将总结自去年 11 月上一篇博客发布以来所开发的所有亮点内容!详细的更新日志可在我们的 Discord 中查看!敬请关注!
隆重介绍:商店与资源库!

我们非常高兴地向大家宣布,期待已久的商店终于上线了!商店是一个市场,每个人都可以在这里上传资产、包、发布新版本、创建团队等等! 100% 与资源库和命令行工具无缝集成!
商店的开发工作由 @MegaThorx 主导!这是初始版本,后续还会迎来多次更新!欢迎提出任何宝贵意见!
功能亮点
- 可创建资产包与包页面,支持添加图片和描述。

- 支持上传新版本,并能够将其标记为草稿、测试版或稳定版。

- 创建团队并添加团队成员。

- 标签与分类系统。

在此处查看完整文档。
nanos world 商店现已上线:https://store.nanos-world.com/
服务器令牌
随着商店的增加,我们推出了全新功能:服务器令牌。
在使用 CLI 从商店下载任何内容时(以及即将推出™的其他集成功能中),必须使用此令牌。你需要将其设置在 Config.toml 文件的 token 配置项中。
有关如何生成令牌,请参阅 https://store.nanos-world.com/settings/tokens/。
新类:Canvas

我们添加了一个全新的类来完全替代原有的 Render 静态类:Canvas! Canvas 就像一个画框,你可以在上面绘制任何东西,从线条、方块到材质与纹理!
你还可以将其用作 UI,或者通过 :SetMaterialFromCanvas() 使用 Canvas 绘制任何物体!
现在创建基础 UI 变得简单得多!
-- 生成一个 Canvas
local canvas = Canvas(true, Color.TRANSPARENT, 0, true)
-- 订阅 Update 事件,我们只能在该事件内部进行绘制
canvas:Subscribe("Update", function(self, width, height)
-- 在屏幕中央绘制文本
self:DrawText("Hello World!", Vector2D(width / 2, height / 2))
-- 绘制一条水平红色直线
self:DrawLine(Vector2D(0, height / 2), Vector2D(width, height / 2), 10, Color.RED)
end)
基本 HUD(画布)教程也已同步更新!
Steam 输入 + 控制器

我们已成功集成了 Steam 输入。如果你还不了解,Steam 输入可以让你使用任何控制器进行设置与游戏,并且能直接通过 Steam 界面对其进行配置。
这是一个出色的集成,因为这种相对简洁的实现方式不仅让 nanos world 支持使用控制器游玩,还为用户提供了自定义按键绑定并与社区分享的可能性。
初始版本已在最新更新中发布,更多按键绑定与配置将在后续推出。
全新内置按键图示

我们添加了一个工具方法,用于根据指定的按键获取对应的图示/图片。只需使用 Input.GetKeyIcon(key_name),它就会返回图片路径,既可用作纹理,也可作为常规图片标签 <img> 嵌入 HTML 中!
你可以将其与 Input.GetMappedKey() 结合使用,从而根据用户的按键绑定配置动态获取对应的按键图示。
弹道轨迹改进
我们对默认的子弹轨迹粒子进行了重做。此前,在特定视角下,你可能会看到巨大球体飞过,天空也会出现多处异常。经过重做后,弹道看起来更加写实,且没有任何瑕疵!
全新地图配置
现在可以为每张地图单独创建配置文件,在其中定义所有兼容的游戏模式、出生点位置以及添加自定义数据!
此外,还可以配置一个完整的包,使其在该地图加载时自动加载。
# 地图配置
[map]
# 兼容的游戏模式
compatible_game_modes = [
"sandbox",
"deathmatch"
]
# 出生点列表
spawn_points = [
{ location = "Vector(100, 200, 100)", rotation = "Rotator(0, 90, 0)" },
{ location = "Vector(200, 300, 100)", rotation = "Rotator(0, 90, 0)" },
]
[custom_data]
whatever = "anything"
查看完整文档请前往地图脚本与数据。
以下更新改动源自之前的 1.1.0-1.3.0 版本,在此我们将重点介绍其中的亮点部分!
交互式 CLI

CLI 中新增了一项非常出色的实用功能:通过交互方式创建资产包与包。
只需使用 add [package|assets] NAME 命令,就能以交互方式创建资产包或包,同时还会自动生成对应的配置和默认文件!
Actor 标签
应测试者的要求,我们实现了访问虚幻 Actor 标签的接口。借助 Actor.SetActorTag() 和 Actor.GetActorTag(),你可以直接在脚本端(客户端)设置或获取虚幻 Actor 标签。
Actor 标签本质上是一个字符串数组,可以在任何地方访问,包括虚幻蓝图。这一微小的改进大大拓展了与蓝图及外部实现集成的可能性。
新类:SceneCapture
这是在 1.1.0 更新中推出的一个非常酷炫的特性。
SceneCapture 是一种相机 Actor,可实时捕获周围环境,我们能够通过 :SetMaterialFromSceneCapture() 将捕获结果渲染应用到任何其他 Actor 上!
它包含多项可配置的性能微调选项:当你没有看向目标 Actor 时能够提高渲染效率,而在距离较远时则会自动降低捕获帧率!
资产缓存
我们实现了一项出色的功能,可在运行时(重新)加载资产时大幅提升性能并减少卡顿现象。卡顿通常发生在机械硬盘(HDD)以及从磁盘读取文件时。现在,所有已加载的资产(包括磁盘文件,如 .ogg 和 .jpg)都会被自动缓存,再次加载时会直接复用。我们仍计划添加一些选项,以便在进入服务器时自动预加载所有已加载资产包中的资产;此外还将提供可通过脚本调用的异步加载选项,以便在实际使用前预加载资产,从而进一步缓解卡顿,为脚本开发者提供更多自由度。
光源描述文件

We've added a new cool setting for Lights: Light Profile, which allows changing the Light Profile Texture of a Light with Light:SetTextureLightProfile().
你可以将其设置为我们内置的光源描述文件之一。所有内置光源描述文件均导入自 IES 光源描述文件包。
例如,这可以为你的灯光添加逼真的闪光灯效果。
载具改进
现在可以手动控制载具引擎的启动状态,也可以使用 Vehicle:SetAutoStartEngine() 控制驾驶员上车时是否自动启动引擎。
同时我们还添加了一个小细节:尾灯,制动时亮红色,倒车时亮白色,可以通过 Vehicle:SetTaillightsSetup() 进行自定义配置:
目前载具网格体颜色尚未与前大灯及尾灯完全同步,我们将在接下来的更新中对此进行改进!
降落伞自定义

我们为内置降落伞新增了一项实用的自定义项,现在可以通过 Character:SetParachuteTexture(texture) 修改其纹理。此外,所有内置纹理均位于 nanos-world/NanosWorld/Content/NanosWorld/Textures/Parachute/,可使用如 assets://nanos-world/Textures/Parachute 形式直接引用。
社区焦点
我们的社区一直在用心打造许多令人惊艳的作品,在此想与大家分享!
T-Drones
作者:Timmy
Timmy 制作了一个非常酷且功能完善的无人机包,快来看看吧!完全集成了全新的 SceneCapture,构建出“3D 相机系统”。此外,无人机还具备一键返航功能!太棒了!
T-Drones 是一款旨在模拟航拍无人机行为的脚本,设计初衷是使其能够在绝大多数游戏模式中运行。
它的构造非常注重模块化,能够轻松适应任何想要进行修改或功能扩展的需求。
KOTOR RP
作者:ERO Team (NegativeName, Mougel, False 与 Tark)
ERO 团队正在全力开发一款极其精彩的星球大战角色扮演模式(KOTOR RP),这绝对会超级震撼!这里展示了一些世界截图以及光剑的连击系统!
Star Wars KOTOR RP 是一个基于星球大战宇宙的法语角色扮演游戏模式。
你将在那个遥远的银河系中扮演一名角色。你的身份完全由你自己决定。你是加入西斯帝国去奴役银河系,还是加入银河共和国誓死守护它,抑或是保持中立不偏不倚。
选择权在你手中!成为一名绝地武士、西斯、士兵、佣兵,抑或只是普通商人。



T-Bomber
作者:Timmy
此外 Timmy 还在制作一款炸弹人游戏模式!非常棒的作品,我已经迫不及待想玩玩了!
T-Bomber 是一款类炸弹人游戏模式,灵感极大程度地来源于著名的迷宫游戏。
其宗旨是在复刻原版炸弹人体验的同时加入更多新趣味,并展示 nanos world 脚本开发的丰富可能性。
规则非常简单:活到最后的人获胜!
VZombies
作者:Voltaism
Voltaism 正在开发基于《使命召唤》体验的僵尸游戏模式。过程既充满乐趣又令人惊悚!
这是一个近乎完工的游戏模式,基本上复刻了经典的《使命召唤:僵尸》模式,你需要尽可能长久地抵御僵尸生存下去!
该游戏模式还支持人机陪你一同战斗。


nanos BattleField 2043
作者:LighterChu, Trevor 与 MemeFrug
《战地风雨 2042》发售时,我们寄予了厚望。至于我们为什么制作 nanos battlefield 2043——它不仅仅是《战地风云 2042》,而是把历代战地作品融合在未来的集大成之作。

结语
再次感谢大家的反馈与支持,每一个建议和发现的漏洞都在推动 nanos world 的飞轮越转越快!
本篇博客汇总展示了我们在过去一个月中取得的各项亮点进展。请注意,数不胜数的改进、漏洞修复及其他新功能,均可在我们的 Discord 更新日志和游戏内查看。
我们十分关注大家最关心的诉求,并希望尽快加以实现,使 nanos world API 愈加完善。我们的路线图依然很长,重大核心目标包括引入全新类型的载具(包括空中与海上)、自定义角色(支持任意骨骼)、直接蓝图支持等等!
眼下我们计划重新设计 Steam 商店页面。此前由于一些技术原因该页面被暂时搁置,现在我们希望使其重焕生机;同时,我们也打算对 nanos world 进行品牌重塑——我们深知,符合游戏主题的徽标与精美宣发图对于 Steam 平台的自我营销及吸引新玩家至关重要!
下期再见!谢谢!
