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 , 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
.