emotes
Emotes are the entities that hold animations for player's avatars.
They include files in GLB format for different body shapes.
Pointers
Emotes have exactly one associated pointer, which indicates the collection they belong to and their index inside of it. They are URNs of this form:
urn:decentraland:matic:collections-v2:<collection address>:<item index>
To illustrate, the pointers array for an emote looks like this:
{
"pointers": [
"urn:decentraland:matic:collections-v2:0x2d9560df9dd8ba8b2dc3746bc1d217698d258fb5:0"
],
// ... other entity properties
}
Metadata Fields
Emotes share most of their basic fields with wearables. The emoteDataADR74 property is where the emote-specific information is located.
| Field | Value |
|---|---|
id |
The pointer that resolves (or used to resolve) to this emote. |
name |
The display title for this emote in a collection. |
description |
An extended description for this emote. |
image |
The internal filename with a picture for this emote. |
thumbnail |
The internal filename for a 256x256 version of the image. |
rarity |
One of common, uncommon, rare, epic, legendary, exotic, mythic or unique. |
i18n |
An array of translations for the name field. |
collectionAddress |
The Ethereum address for the collection that contains this emote. |
metrics |
Some useful measurements about the animations (see below). |
emoteDataADR74 |
The extended metadata for this emote, as defined in ADR-74 (see below). |
This is how a typical JSON looks like:
{
"id": "urn:decentraland:matic:collections-v2:0x2d9560df9dd8ba8b2dc3746bc1d217698d258fb5:0",
"name": "Funny Dance",
"description": "Move around like a champ",
"image": "image.png",
"thumbnail": "thumbnail.png",
"rarity": "rare",
"i18n": [
{ "code": "es", "text": "Danza Graciosa" }
],
"collectionAddress": "0x2d9560df9dd8ba8b2dc3746bc1d217698d258fb5",
"metrics": {
// Measurements object (see below).
},
"emoteDataADR74": {
// Extended metadata defined in ADR-74 (see below).
}
}
Metrics
In the metadata.metrics object, you'll find some simple measurements for the animation packaged with this emote. An example:
{
"triangles": 0,
"materials": 0,
"textures": 0,
"meshes": 0,
"bodies": 0,
"entities": 1
}
Emote Data ADR-74
This object contains the fields that World Explorers (or other graphical applications) need to animate models with this emote.
| Field | Value |
|---|---|
category |
One of dance, stunt, greetings, fun, poses, reactions, horror or miscellaneous. |
representations |
An array of animation files associated to different body shapes. |
tags |
An array of string tags descriptive of this emote. |
loop |
true if the animation should repeat itself once it ends. |
Some JSON for clarity:
{
"category": "dance",
"representations": [
// Information about the animation for different body shapes (see below).
],
"tags": [ "carnaval", "dance" ],
"loop": true
}
Representations
Each item in the metadata.emoteDataADR74.representations field defines the animation files appropriate for each body shape.
| Field | Value |
|---|---|
bodyShapes |
An array of applicable body shape pointers. |
mainFile |
The internal filename for the main GLB file. |
contents |
All files, including mainFile and any additional ones that it can reference. |
For example, a representation item:
{
"bodyShapes": [ "urn:decentraland:off-chain:base-avatars:BaseMale" ],
"mainFile": "male/funnydance.glb",
"contents": [
"male/funnydance.glb"
]
}
You will commonly find two representation entries, one for BaseMale and one for BaseFemale.