自定义资产(如果纯粹是视觉的:自定义图形)是基础游戏资产的级别或情节特定替代品,或者是自定义 lua 代码用来增强自定义功能的新资产(例如,当敌人被击败时播放的自定义声音效果)。
本页介绍了不同类型的自定义资产及其规则。
如何使用
自定义资产通常涉及大量具有不同文件扩展名的文件的管理。我们建议您在操作系统(Windows、Linux、Mac)上启用可见的文件扩展名,以便您更轻松地查看它们并避免意外错误。
所有自定义资产都遵循一些基本规则:
自定义资产通常可应用于Level 和 Episode 文件夹。特殊规则如下。
如果该资产是基础游戏资产的替代品,则自定义资产需要与基础游戏资产具有相同的名称
例如,如果您想用 SMB3 Goomba NPC npc-1 的精灵替换您的剧集 npc-1.png,您可以将名为 npc-1 的文件放入您的关卡或剧集文件夹中。
文件扩展名很重要。对于图像文件,支持 .png 和 .gif(建议使用 png)。对于音频文件,支持多种文件类型 。.wav 声音可以用 .ogg 声音替换,.png 图像可以用 .gif 图像替换。
如果在编辑器打开时更改剧集或关卡文件夹的内容,则需要按 F8 或顶部的圆形箭头按钮重新加载关卡的资产。
特殊规则:BGM音乐文件
游戏背景音乐的音乐文件不会自动计入自定义资产。您会发现,将“sm64-water.ogg”放入您的剧集或关卡文件夹本身不会产生任何效果。为了应用音乐文件,请将模板文件夹的 music.ini 文件复制到您的剧集文件夹中,并设置位于您的剧集文件夹中的自定义音乐的路径。目前无法按关卡进行替换。
特殊规则:图形
除级别和情节文件夹外,用于替换数据/图形文件夹中任何内容的图形都有一个额外的文件夹可以放置。
如果您在剧集文件夹中放置一个名为“graphics”的文件夹,并创建与 data/graphics 中的子目录相匹配的子目录,则这些文件夹中的图形将被替换,就像它们在剧集文件夹中一样(它们将替换整个剧集中的资产)。
特殊规则:npc-n.lua、block-n.lua
每个对象的 lua 文件不会替换,而是附加到其基础游戏文件的逻辑中。这是因为与 SMBX2 之前的块和 NPC 保持一致,这些块和 NPC 的逻辑无法通过本地 lua 文件覆盖。如果您想替换基础游戏 NPC 或块,可以使用自定义范围。
内容包
内容包(当包含特定类型的资产时,通常称为 NPC 包、方块包、BGO 包)是一种自定义资产,其中包含新方块、BGO 或 NPC 的 Lua 代码和功能。这些资产利用自定义范围来添加不会替换任何现有资产的新资产。
如何使用
内容包的基本规则与其他自定义资产相同,但它们的源文件稍微复杂一些,通常需要进行一些编辑才能正常工作。
下载并打开包后,浏览其内容,直到找到如下图所示的文件夹。有些包只包含一个这样的文件夹,但有些包是许多不同风格和功能的不同资产的集合。至关重要的是,名为 npc-751.txt、ini、lua、png 的文件就是您要找的。
我要复制哪些文件?
下一步是将这些资产复制到您的关卡或剧集文件夹中。从根本上讲,所有具有相同 ID 的资产都属于同一类,但这些资产可能依赖更多文件!
简单的解决方案是复制整个文件夹,而不用再担心,但如果您只想要其中的一小部分内容,则需要注意以下几点:
Tileset.ini 文件。这些是辅助文件,用于将资源的图块集添加到编辑器。
效果文件。NPC 和方块在被摧毁或击败时可能会产生效果。这些效果通常命名为 effect-n.png 和 .txt。
如果图像看起来相关,则最容易找到这些,但可以通过在 lua 文件中查找效果 ID 的实例来确认。尝试在 NPC 的 registerHarmTypes 函数中查找 Effect.spawn/Animation.spawn 调用或 751-1000 范围内的数字。
额外设置 json 文件。这些文件为资源提供编辑器内额外选项。这些文件通常称为 npcsettings_xxxxx.json 或 blocksettings_xxxxx.json。
可以通过查看 npc/block-n.ini 并查看额外设置字段是否设置来了解 NPC 是否使用额外设置。
AI 文件夹和文件。有些脚本将共享代码放入“AI 文件”中。这是一个可以任意命名的 lua 文件,但大多数脚本创建者将其放入名为 AI 的子文件夹中。
如果您要导入的 .lua 文件有类似“local myScript = require(" AI/ someOtherFile")的行,请确保导入此文件。请密切注意 AI/。
声音文件。
如果 lua 脚本或 AI 文件使用文本参数对 SFX.play() 进行任何调用,请确保复制您找到的所有同名声音文件。
其他图像。
查看相关的 lua 文件并找到 Graphics.loadImage 的实例,以确定需要哪些图像文件。
其他文件也可能与之相关,因此复制过多文件总是比复制过少文件更安全。对于文件夹结构混乱且与此不同的复杂包,我们建议创建者在 zip 存档中放置一个自述文件来解释其包的布局。
一旦确定了要复制的文件,您就可以将文件复制到您的级别或情节文件夹中。
我已经有这个ID的NPC了...
由于自定义范围内的 ID 可以自由灵活,因此可能会发生您尝试从包 A 中复制一个 npc-751 和从包 B 中复制一个 npc-751 的情况。当然不可能有两个同名的文件,但幸运的是,这种模块化意味着文件可以重命名!
1.重命名您正在导入的辅助包的文件以填充当前未被占用的 ID。确保保持在自定义范围内。
2.打开您已重命名的资产的 npc/block-n.ini 文件,以确保它们使用与其名称相同的图像文件。
3.如果使用了效果,请确保也打开 .lua 文件。有时自定义资产会使用“npcID”或“NPC_ID”变量作为与其相关的效果 ID。如果是这种情况,请重命名效果。
4.如果您复制了图块集文件,则 ID 引用将在此处中断。您稍后必须在编辑器中调整图块集。如果您没有复制图块集,则可以使用编辑器的图块集编辑器中的“显示自定义”切换按钮轻松创建一个图块集。
就这样!现在您可以开始在关卡中使用您在此处下载的包。如果它们没有立即显示在编辑器中,请确保使用 F8 刷新。请尽情享受吧!