跳至正文
版本:bleeding-edge 🩸

资产指南

关于资产你需要了解的一切

在 nanos world 中,资产是指所有来自虚幻引擎的对象或内容。 例如,MapsStaticMeshesSkeletalMeshesSoundsParticlesBlueprints 等都属于资产的类型。

为了在你的服务器中使用自定义资产(例如生成一个道具或一把自定义武器),你必须拥有一个资产包。 资产包是从虚幻引擎中一起导出的一组资产。

Folder Structure

所有资产包都存放在服务器的 Assets/ 目录下。 每个资产包都是该目录下的一个子文件夹。

Note

连接到服务器时下载的资产包,或者从资源库下载的资产包,同样也会存储在服务器的 Assets/ 目录下!

这是一个服务器 Assets 文件夹的示例:

Server Folder
NanosWorldServer.exe
Assets/
├── my-asset-pack-01/
├── MyAssetPack01/
├── MyProp.uasset
├── MyProp.ubulk
├── MyProp.uexp
├── MyBigMap.umap
...
└── Assets.toml
├── awesome-weapons/
├── MyWeapons/
├── BigFuckingGun.uasset
...
└── Assets.toml
Packages/
Config.toml

资产包配置

资产包在文件夹的根目录下有一个名为 Assets.toml 的配置文件,在此文件中我们可以设置与该资产包相关的所有适用设置:

Assets.toml
loading...

Settings Detailed

查看每个设置的具体功能描述:

SettingDescription
title易读的名称
author贡献者
version版本 - 采用 SemVer 格式 X.Y.Z
unreal.unreal_folders虚幻项目导出的、需要在游戏中挂载的所有文件夹列表。 这很重要,能确保资产正确保留其相对引用关系
unreal.unreal_version创建此资产包时所使用的版本
unreal.is_plugin_content此资产包是否使用了插件内容
assets.maps此资产包中的地图列表
assets.static_meshes此资产包中的静态网格体列表
assets.skeletal_meshes此资产包中的骨骼网格体列表
assets.sounds此资产包中的声音列表
assets.animations此资产包中的动画列表
assets.particles此资产包中的粒子列表
assets.materials此资产包中的材质列表
assets.blueprints此资产包中的蓝图列表
assets.others此资产包中的其他资产列表

资产元数据

你还可以为每个单独的资产定义自定义元数据!

除了像这样通过字符串来定义资产路径之外:

Assets.toml
[assets.static_meshes]
SM_Flower_01 = "MyFolder/SM_Awesome_Flower_01"
SM_Rock_01 = "MyFolder/SM_Rock_01"
SM_MyAsset_01 = "MyFolder/SM_MyAsset_01"
# ...

我们还可以将它们定义为一个表,从而允许使用自定义值——这些值可以通过脚本进行访问:

Assets.toml
[assets.static_meshes]
SM_Flower_01 = { path = "MyFolder/SM_Awesome_Flower_01", my_tag = "Wonderful", something = 123, thumbnail = "Thumbnails/SM_Flower_01.jpg" }
SM_Rock_01 = { path = "MyFolder/SM_Rock_01", my_tag = "Wonderful", something = 123, thumbnail = "Thumbnails/SM_Rock_01.jpg" }
SM_MyAsset_01 = { path = "MyFolder/SM_MyAsset_01", my_tag = "Wonderful", something = 123, thumbnail = "Thumbnails/SM_MyAsset_01.jpg" }
# ...
tip

path 键是必填项,所有其他值均为选填且可自定义,你可以根据需要随意使用!

标志图片

你还可以设置一张自定义图片,以便在资源库中显示。 为此,只需在 Assets.toml 同级目录下添加一个名为 Assets.jpg 的文件即可。 推荐尺寸为 300x150

在脚本中引用资产

为了能在代码中使用资产,首先必须确保该资产包已被加载。 资产包在以下情况下会被加载:

  1. 加载地图时(这会自动加载该地图所属的资产包)。
  2. 加载在 assets_requirements 中配置了该资产包的包时。
  3. 在服务器的 Config.toml 中的 assets 下手动设置了加载。

资产包加载完成后,你就可以使用以下格式来引用其中的资产:

"[ASSET_PACK_PATH]::[ASSET_KEY]"

示例:

"my-asset-pack-01::SM_Cube"

note

[ASSET_PACK_PATH] 是文件夹名称,而 [ASSET_KEY] 是在 Assets.toml 中定义的键。

资产类型

某些脚本方法需要加载特定类型的资产。 尝试加载无效或错误的类型将会引发错误。 例如:Character:SetMesh() 需要 Skeletal Mesh 类型的资产。

以下是所有支持的资产类型列表:

TypeDescription
Map虚幻引擎的地图/关卡
Static Mesh虚幻静态网格体,可用于为道具和静态网格体加载网格体
Skeletal Mesh虚幻骨骼网格体,可用于为角色和载具加载网格体
Sound虚幻声音,用于加载声音
Particle虚幻粒子,可用于在若干实体中进行设置,包括粒子类本身
Animation虚幻动画,可用于角色和武器类的设置
Material虚幻材质,可用于自定义网格体表面以及用作后处理
Blueprint虚幻 Actor 蓝图,可用于生成蓝图实体

创建你自己的资产

要创建你自己的资产包,请参阅导入自定义资产指南。

📦 导入自定义资产assets-modding/creating-assets/setting-up-ue

默认资产包

nanos world 提供了一个默认的资产包,已经包含在基础游戏中。 请参阅默认资产包页面以获取更多信息。

📦 默认资产包assets-modding/default-asset-pack/default-assets-list