For the complete documentation index, see llms.txt. This page is also available as Markdown.

智能可穿戴物品

创建具有交互能力的可穿戴物品

智能穿戴设备是一种全局场景。就像 便携式体验一样,它们是一种玩家在元宇宙中移动时随身携带的玩法。例如,在运行一个全局场景时,玩家可以从 Genesis Plaza 的地面捡起一个雪球,走到另一个场景,然后把雪球扔给另一个也在玩同一游戏的玩家。

智能穿戴设备是玩家穿上某件服饰时会被激活的便携体验。智能穿戴设备可以赋予玩家新的能力,例如让他们飞行的喷气背包,或者在整个 Genesis City 中随机放置可收集的金币,在世界其余部分之上再添加一层内容。

入门

使用 CLI

  1. 在新文件夹中打开命令行并运行

npx @dcl/sdk-commands init --project smart-wearable

此命令会为一个新的智能穿戴设备创建基本文件和结构。

模板中的文件

全新智能穿戴设备项目的文件夹与 Decentraland 场景很相似,但你会注意到以下不同之处:

  • wearable.json 包含便携体验的所有元数据

  • 这里有一个用于一副深色眼镜的占位 3D 模型(glasses.glb)和缩略图(glasses.png)。你应该将它们替换为你正在创建的实际穿戴物

  • scene.json 要短得多,它不包含与穿戴物无关的属性,例如地块或出生点

关于 wearable.json

默认的 wearable.json 文件如下所示:

以下字段是必需的: wearable.json:

  • id: 智能穿戴设备的唯一 ID。

  • name: 用户在市场中会看到的穿戴物名称

  • 描述: 用户在市场中会看到的穿戴物描述。请务必说明智能穿戴设备能够做什么,因为市场用户在购买前无法预览其功能。

  • rarity: 代币的稀有度供应量。可能的值包括:

    • unique (1 copy)

    • mythic (10 copies)

    • exotic (50 copies)

    • legendary (100 copies)

    • epic (1000 copies)

    • uncommon (10.000 copies)

    • common (100.000 copies)

以下字段也可以可选地包含。这些设置在你上传智能穿戴设备后,也可以在 Builder UI 中进行配置。

  • data: 包含以下内容

    • replaces: 其他应在装备此穿戴物时被卸下的穿戴物类别列表,除此之外还包括该类别的默认设置。例如:当穿上一个披风上身时,也会隐藏脚部。

    • hides: 其他应在装备此穿戴物时被隐藏(但不卸下)的穿戴物类别列表,除此之外还包括该类别的默认设置。

    • tags: 用于让该穿戴物可在市场中被搜索到的标签。

    • representations:

      • bodyShapes: 可使用此穿戴物的头像表示列表。所有智能穿戴设备都必须同时适用于男性和女性体型。

      • mainFile: 穿戴物 3D 模型所使用的主文件。

      • contents: 用于渲染穿戴物 3D 模型的完整文件列表。例如,3D 模型可能会将纹理作为单独文件包含在内。

      • overrideHides: 此穿戴物类别默认 隐藏 行为的任何例外情况。

      • overrideReplaces: 此穿戴物类别默认 替换 行为的任何例外情况。

    • category: 要使用的穿戴物类别。可能的值包括:

      • 'eyebrows'

      • 'eyes'

      • 'facial_hair'

      • 'hair'

      • 'mouth'

      • 'upper_body'

      • 'lower_body'

      • 'feet'

      • 'earring'

      • 'eyewear'

      • 'hat'

      • 'helmet'

      • 'mask'

      • 'tiara'

      • 'top_head'

      • 'skin'

      • 'hands_wear'

  • menuBarIcon: 用于“experiences”菜单中的图片,用于代表此便携体验。该图片应位于文件夹根目录。建议图片尺寸为 256x256。

  • model: 用于该穿戴物的 3D 模型。该文件应位于文件夹根目录。

  • bodyShape: 此穿戴物兼容的头像身体类型。可能的值:

    • male

    • female

    • both

  • collectionAddress: 已发布穿戴物合集的以太坊地址。该地址会在发布后分配,也可以留空。

缩略图

你必须包含一个名为 thumbnail.png 的图片,放在文件夹根目录。该图片会同时显示在背包和市场中,用 2D 形式代表你的穿戴物。推荐的图片尺寸为 256x256。

选择一张能符合玩家预期并准确代表你作品的图片。

预览

运行便携体验的预览和运行场景预览几乎一样,只需点击 预览 在 Creator Hub 中,或者运行 npm run start 在命令行中。如果 wearable.json 文件已正确配置并且项目被识别为智能穿戴设备,你会注意到你周围可见的全都是默认的空地块。在此预览模式下,你不受任何固定地块的限制,可以在世界中的任何地方添加 3D 模型或声音。

要测试智能穿戴设备在场景环境中的表现,你也可以通过使用一个 Workspace。例如,你可以将智能穿戴设备与 Genesis Plaza 场景一起运行,以测试它在繁忙场景、乘电梯等情况下的表现。

提示

  • 在定位实体时,请注意位置是全局的,相对于 Genesis Plaza 的 0,0 坐标。

  • 要响应附近玩家:

    • 参见 获取所有玩家 了解如何从周围的其他玩家获取数据。

    • 请注意,智能穿戴设备、周围场景和其他玩家的加载顺序可能会因情况不同而不同。如果玩家进入 Decentraland 时已经穿上了智能穿戴设备,那么很可能你的穿戴物的全局场景会比其他玩家先加载。另一方面,如果玩家先加载进入一个场景,然后再穿上该穿戴物,那么当穿戴物场景开始运行时,其他玩家很可能已经加载完成。

    • 对于多人体验,请等待玩家连接到其 realm 内的一个岛屿。获取 realm 数据并检查 ‘room’ 字段。如果 ‘room’ 字段为 null,则玩家尚未连接到岛屿,其他玩家也还不会加载。你可以每 1 秒定期检查一次,直到 ‘room’ 字段出现,然后再初始化你的逻辑。

  • 要与周围场景交互:

    • 你不能直接向附近场景或其他便携体验发送任何指令, messageBus 目前在每个便携体验/场景中都处于沙箱隔离状态。

    • 你可以使用一个中间服务器在便携体验和场景之间传递信息。

    • 如果你执行 raycast,就可以检测到与周围场景中实体的碰撞体发生的命中。这可以告诉你精确的命中位置、法线方向,甚至 3D 模型的实体名称和网格名称。此功能仅在命中使用 SDK7 编写的场景中的实体时有效。

  • 终止便携体验:运行 kill() 方法即可自行终止一个便携体验。

发布

要发布你的智能穿戴设备:

  1. 确保 wearable.json 中的信息是准确的。如果你以另一个项目为起点,请确保 id 是一个唯一标识符,没有被其他穿戴物使用。

  2. 运行 npm run pack 在你的项目文件夹中。这会生成一个 smart-wearable.zip 文件到你的项目文件夹中。

  1. 打开 Builder,打开 Collections 选项卡,点击 + 上传一个新的穿戴物。

  2. 将你压缩后的 smart-wearable.zip 文件拖入 Builder,确认所有信息准确无误。

注意:如果你的穿戴物包含不同的模型表示,你需要采用一个变通方法:

  1. 在你的项目中,为每个表示创建一个新文件夹(male 和 female),并将每个表示的 3D 模型放入其对应文件夹中。

  2. 更新你的 wearable.json 文件,以包含新的表示。

  3. 运行 npm run pack 以生成一个新的 smart-wearable.zip 文件。

  4. 将新的 smart-wearable.zip 文件拖入 Builder。

  1. 打开穿戴物编辑器,并确保“hide”和“remove”类别已正确设置,以便在佩戴此穿戴物时禁用其他穿戴物类别。

  2. 创建一个包含此穿戴物以及其他可能穿戴物的新合集。

  3. 点击“Mint Items”旁边的三点图标,并选择“See in world”。这将打开一个带有 Sepolia 浏览器的选项卡,你可以在那里在 Decentraland 中试用你合集中的所有穿戴物,并在更真实的场景中查看它们的表现,例如在 Genesis Plaza 里跑动。

  4. 到这一步,你的穿戴物就已经准备好发布了。

受限操作

为防止滥用,某些功能默认不允许在便携体验中使用,需要添加权限标志。

参见 所需权限 了解更多细节。

限制

重要:整个智能穿戴设备必须控制在 3MB 以内。这包括 3D 模型、缩略图、代码、库、音频文件、额外的 3D 模型、UI 图片等。此限制针对未压缩文件夹。Builder 不会允许你上传超过此大小的穿戴物。要检查便携体验的大小,请运行 npm run pack,项目大小会在命令输出文本中注明。你也可以通过解压生成的 smart-wearable.zip 文件并检查文件夹大小来验证。

智能穿戴设备只会为佩戴它的玩家运行便携体验。其他玩家看不到这些效果。例如,如果便携体验渲染了一只跟随玩家的宠物,周围其他玩家不会看到这只宠物。不过,其他玩家会看到作为穿戴物场景一部分运行的角色动画,甚至 自定义头像动画 已作为智能穿戴设备文件的一部分上传。

智能穿戴设备只有在玩家佩戴时才会生效。因此,玩家只能同时激活有限数量的智能穿戴设备,并且根据它们占据身体的不同部位,有些会彼此不兼容。例如,你不能同时戴两个帽子,或者同时戴头盔和头发。

如果一个穿戴物被其他已佩戴的穿戴物“隐藏”但没有被“移除”,那么即使对应的穿戴物不可见,智能穿戴设备仍然可以保持开启。

示例

智能穿戴设备示例)

最后更新于