# Emotes

Emotes são os [entities](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md) que contêm animações para os avatares dos jogadores.

Eles incluem arquivos em formato GLB para diferentes body shapes.

### Pointers <a href="#pointers" id="pointers"></a>

Emotes têm exatamente um associado [pointer](https://github.com/decentraland/docs/blob/main/contributor/pointers/README.md), que indica a coleção a que pertencem e seu índice dentro dela. São URNs desta forma:

```
urn:decentraland:matic:collections-v2:<collection address>:<item index>
```

Para ilustrar, o `pointers` array para um emote se parece com isto:

```json
{
  "pointers": [
    "urn:decentraland:matic:collections-v2:0x2d9560df9dd8ba8b2dc3746bc1d217698d258fb5:0"
  ],
  // ... other entity properties
}
```

### Campos de Metadata

Emotes compartilham a maioria de seus campos básicos com [wearables](https://github.com/decentraland/docs/blob/main/contributor/entity-types/wearables/README.md). O `emoteDataADR74` propriedade é onde a informação específica do emote está localizada.

| Campo               | Valor                                                                                                                                                 |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                | O [pointer](https://github.com/decentraland/docs/blob/main/contributor/pointers/README.md) que resolve (ou costumava resolver) para este emote.       |
| `name`              | O título de exibição para este emote em um [collection](https://github.com/decentraland/docs/blob/main/contributor/collections/README.md).            |
| `description`       | Uma descrição estendida para este emote.                                                                                                              |
| `imagem`            | O [nome de arquivo interno](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#files) com uma imagem para este emote.      |
| `miniatura`         | O [nome de arquivo interno](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#files) para uma versão 256x256 da `imagem`. |
| `raridade`          | Um de `comum`, `incomum`, `raro`, `épico`, `lendário`, `exótico`, `mítico` ou `único`.                                                                |
| `i18n`              | Um array de traduções para o campo `name` .                                                                                                           |
| `collectionAddress` | O endereço Ethereum da coleção que contém este emote.                                                                                                 |
| `metrics`           | Algumas medições úteis sobre as animações (veja abaixo).                                                                                              |
| `emoteDataADR74`    | Os metadados estendidos para este emote, conforme definido em [ADR-74](https://adr.decentraland.org/adr/ADR-74) (veja abaixo).                        |

É assim que um JSON típico se parece:

```json
{
  "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": {
    // Objeto de medições (veja abaixo).
  },
  "emoteDataADR74": {
    // Metadados estendidos definidos em ADR-74 (veja abaixo).
  }
}
```

### Metrics

Na `metadata.metrics` objeto, você encontrará algumas medições simples para a animação empacotada com este emote. Um exemplo:

```json
{
  "triangles": 0,
  "materials": 0,
  "textures": 0,
  "meshes": 0,
  "bodies": 0,
  "entities": 1
}
```

### Emote Data ADR-74

Este objeto contém os campos que os World Explorers (ou outras aplicações gráficas) precisam para animar modelos com este emote.

| Campo             | Valor                                                                                          |
| ----------------- | ---------------------------------------------------------------------------------------------- |
| `category`        | Um de `dance`, `stunt`, `greetings`, `fun`, `poses`, `reactions`, `horror` ou `miscellaneous`. |
| `representations` | Um array de arquivos de animação associados a diferentes body shapes.                          |
| `tags`            | Um array de tags string descritivas deste emote.                                               |
| `loop`            | `true` se a animação deve se repetir quando terminar.                                          |

Algum JSON para clareza:

```json
{
  "category": "dance",
  "representations": [
    // Informação sobre a animação para diferentes body shapes (veja abaixo).
  ],
  "tags": [ "carnaval", "dance" ],
  "loop": true
}
```

#### Representations

Cada item em `metadata.emoteDataADR74.representations` campo define os arquivos de animação apropriados para cada body shape.

| Campo        | Valor                                                                                                                                          |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `bodyShapes` | Um array de body shape aplicáveis [pointers](https://github.com/decentraland/docs/blob/main/contributor/pointers/README.md).                   |
| `mainFile`   | O [nome de arquivo interno](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#files) para o arquivo GLB principal. |
| `contents`   | Todos os arquivos, incluindo `mainFile` e quaisquer adicionais que ele possa referenciar.                                                      |

Por exemplo, um `representation` item:

```json
{
  "bodyShapes": [ "urn:decentraland:off-chain:base-avatars:BaseMale" ],
  "mainFile": "male/funnydance.glb",
  "contents": [
    "male/funnydance.glb"
  ]
}
```

Você normalmente encontrará duas entradas de representation, uma para `BaseMale` e uma para `BaseFemale`.
