> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-pt/wearables-e-emotes/emotes/props-and-sounds.md).

# Props e Sons

Diretrizes para adicionar props e sons aos emotes.

Para levar os teus Decentraland Emotes ao próximo nível, podes adicionar props (geometria 3D) e/ou sons a eles, tornando os emotes muito mais divertidos e envolventes! Neste guia, encontrarás tudo o que precisas de saber para os exportar corretamente!

{% hint style="info" %}
**💡 Dica**: Instale o [plugin Decentraland Tools Blender](https://extensions.blender.org/add-ons/decentraland-tools/). Inclui várias funções úteis para o ajudar a editar e exportar modelos 3D, wearables e Emotes.
{% endhint %}

## **Noções básicas e limitações**

Para começar a adicionar props aos teus emotes, é importante usar o [Ficheiro de template de Decentraland](https://raw.githubusercontent.com/decentraland/documentation-creators/main/images/emotes/BaseMale_Rig_1.0.blend) que terá o rig do avatar e também a Ground Reference para manter o teu trabalho dentro dos limites do espaço permitido.

**Atualmente, as animações dos props só funcionam com animações de Armature/Bones, o que significa que animações \_transform**\_\*\* não são permitidas.\*\*

O emote e os respetivos props devem ser exportados todos juntos num único *.glb* ficheiro (Avatar\_Armature + Props\_Armature com as suas animações).

* No máximo 3 MB no total.
* No máximo 3k tris no total para os props.
* No máximo 2 materials e 2 textures para os props.
* No máximo 62 bones para a armature do prop.
* O emote deve ter uma animação para o avatar e uma animação para o prop. *Atualmente, várias animações não são permitidas.*
* Ambas as animações (Avatar e Prop) devem ter o mesmo comprimento de keyframes.
* As animações não podem exceder 300 frames ou 10 segundos.
* Os limites do espaço são 4 metros quadrados. Os props e partículas devem permanecer dentro do cubo de referência fornecido no Avatar File. Para o movimento do avatar, consulta [Ground Reference and Animation Area](/creator/content-creator-pt/wearables-e-emotes/emotes/creating-emotes.md#ground-reference-and-animation-area). secção.

## **Convenções de nomenclatura:**

As convenções de nomenclatura devem ser rigorosamente seguidas para que os emotes funcionem! Caso contrário, não serão reproduzidos corretamente nem no Builder nem no world.

#### Convenções de nomenclatura das armatures:

**Para o Avatar:**

`Armature`

**Para os Props:**

`Armature_Prop`

#### Convenções de nomenclatura das animações:

**Para o Avatar:**

`AnimationName_Avatar`

* Exemplo: `TennisServe_Avatar`, `GunShoot_Avatar`

**Para os Props:**

`AnimationName_Prop`

* Exemplo: `TennisServe_Prop`, `GunShoot_Prop`

## **Começar**

Antes de começares a tua animação, terás de criar um rig para o prop. Se não estiveres familiarizado com o processo, consulta [Create a Rig](/creator/content-creator-pt/modelacao-3d-e-animacoes/create-a-rig.md) para mais informações sobre como o fazer.

Certifica-te de que o objeto do prop e a armature têm as suas origens localizadas na posição 0,0 no Blender. Além disso, aplica as transformações ao objeto do prop e à armature, garantindo que ficam congeladas numa escala de 1,1,1. Isto é crucial para evitar quaisquer potenciais problemas com o comportamento do prop quando utilizado no world ou durante as animações.

#### Fazer o Prop Seguir o Rig do Avatar

Alguns props podem ter de ser anexados a certas partes do corpo, como uma raquete de ténis à mão. Isso pode ser feito simplesmente adicionando uma constraint. Para o fazer, em ***Pose Mode***, seleciona o osso do prop (o da raquete de ténis, por exemplo), pressiona ***CTRL + Shift + C*** no teu teclado e seleciona ***Child of*** ou apenas clica no ***Bone Constraint Properties*** separador e, no menu dropdown, seleciona ***Child of***.

*Adiciona uma constraint premindo `Ctrl + Shift + C` no teu teclado.*

Depois, em ***Target***, seleciona a armature do avatar e em ***Bone*** seleciona o osso que queres que o prop siga. Para manter a posição original do prop, clica em ***Set Inverse*** assim que adicionares a constraint. Se a influência for 1, o prop seguirá totalmente o osso selecionado; se for 0, a constraint será desativada. Podes definir keyframes na influência para a ligar e desligar ao longo da animação. Para isso, basta premir I enquanto o cursor estiver sobre ***Influence***.

***Child of** menu da constraint. Cria keyframe na influência para a ligar e desligar.*

{% hint style="info" %}
**💡 Dica de animação!** Se usares o slider para desligar a Influence, o prop não manterá a sua posição anterior, tornando difícil manter a animação fluida. Para evitar ter de corrigir manualmente a posição, em vez de usares o slider, clica no X junto a Influence, define um keyframe nele e outro em todos os atributos de transform. Desta forma, o prop manterá a mesma posição que tinha quando a Influence estava ligada!
{% endhint %}

{% hint style="info" %}
**💡 Dica de animação**

Não deixes o prop visível desde o início! Para evitar estragar o que está prestes a acontecer e uma transição abrupta, começa a animação com o prop reduzido para 0.001 e só o colocas em 1 quando quiseres que apareça. Lembra-te de voltar a reduzi-lo para 0 até ao fim da ação. Isto tornará as transições muito mais fluidas e fixes!
{% endhint %}

### Animation Slots

O Blender 4.4 introduziu uma nova funcionalidade: animation slots. De acordo com a documentação do Blender, «o objetivo dos slots é permitir que uma action armazene dados de animação distintos para múltiplos data-blocks». Em suma, os slots tornam possível guardar a animação de várias coisas na mesma Action. Como é que isso afeta os Emotes 2.0?

Nova funcionalidade do Blender 4.4: animation slots.

Mesmo sendo possível que o avatar e o prop partilhem o mesmo action clip, devido à convenção de nomenclatura e ao número de animation clips envolvidos no Emotes 2.0, isso não vai funcionar. Portanto, o pipeline para isto seria:

1. Cria um animation clip para o avatar, ou renomeia o fornecido (***Starting\_Pose***). Ele já tem um animation slot, mas podes usá-lo (***Avatar\_Animation***) ou criar um novo.
2. Renomeia o animation clip ***AnimationName\_Avatar***
3. Cria um animation clip para o prop e renomeia-o ***AnimationName\_Prop***
4. Clique em ***New*** botão para criar um animation slot para ele (irá receber um nome automático: ***Armature\_Prop***)
5. Anima como farias nas versões anteriores do Blender.

A criar um action clip e um slot para a animação do prop.

## **NLA Tracks**

Para que todas as animações sejam exportadas, os clips devem ser adicionados às NLA Tracks. Certifica-te de que há apenas um animation clip para o avatar e outro para o prop, **devem ter exatamente o mesmo número de frames.**

Em ***Object Mode***, seleciona a armature do avatar, vai a ***Pose Mode***, seleciona o respetivo animation clip no menu Browse Action, clica em ***Action*** e depois em ***Push Down*** opção.

Depois, volta para ***Object Mode***, seleciona a armature do prop, vai para ***Pose mode***, seleciona o respetivo animation clip no menu Browse Action, clica em ***Action*** e depois em ***Push Down*** opção.

A fazer push down das actions para as NLA tracks.

{% hint style="warning" %}
⚠️ Tem cuidado ao fazer push down das actions. Certifica-te de que selecionas a armature desejada com a respetiva animação. Não te limites a mudar a animação e a fazer push down antes de selecionares a outra armature, ou acabarás por atribuir duas actions a uma armature e nenhuma à outra.
{% endhint %}

As NLA tracks devem ficar assim: uma animação para cada armature.

{% hint style="info" %}
**🔥 Dica de otimização**

**Antes deste passo, certifica-te de fazer um backup do teu projeto.**

Se tiveres objetos diferentes para os teus props, podes fundi-los num único mesh. Podes fazê-lo simplesmente selecionando os objetos e premindo o atalho ctrl + J.

Isso ajudará a reduzir os draw calls no jogo, tornando o emote mais eficiente.

Tem em mente que isso não funcionará para partículas.

*Seleciona os objetos e pressiona `Ctrl+J` para os fundir.*
{% endhint %}

## **Exportação**

Os Emotes 2.0 são exportados da mesma forma que os emotes comuns. Certifica-te de que apenas a armature do avatar, a armature do prop e os meshes do prop estão visíveis e esconde tudo o resto.

Mantém visíveis apenas a armature do avatar, a armature do prop e o mesh do prop para exportar.

Para exportar, vai a File > Export > glTF2.0 (.glb, .gltf)

Nas definições de exportação, expanda Include e, em Limit to, ative Visible Objects. Depois, expanda o separador Data, expanda Armature e ative Export Deformation Bones Only.

|   |   |
| - | - |

Clica em Export e está feito!

## **Adicionar áudio aos emotes**

### Formato e limitações para clipes de áudio

* O formato correto para exportar sons para os teus emotes é `.mp3` e `.ogg`.
* O clipe de áudio deve ter a mesma duração que o emote.
* Embora não haja limitação de tamanho para o áudio, o emote com props e sons não pode ter mais de 3 MB.

{% hint style="info" %}
**📔 Observação**: Se o emote tiver som (mp3 ou ogg), deve ser compactado num zip com o .glb. Depois disso, basta arrastar e largar o .zip no Builder. Mais detalhes podem ser encontrados aqui: [A enviar emote com som](/creator/content-creator-pt/wearables-e-emotes/gerir-colecoes/uploading-emotes.md#uploading-emotes-using-a-zip-file)
{% endhint %}

{% hint style="info" %}
**💡 Atenção!** Toma em consideração que os clipes de áudio usados no emote devem ser IP (Propriedade Intelectual) original, com direitos de reprodução e seguindo os [Política de Conteúdo](https://decentraland.org/content/)critérios.
{% endhint %}

### Editar sons

Para adicionar sons aos teus emotes, podes fazê-lo de diferentes formas:

1. **Edita os teus sons diretamente no Blender**

Uma forma de adicionar sons aos teus emotes é usar o editor de sequências de vídeo que o Blender fornece.

Para começar a adicionar sons, vai a *Editor Type> Video Sequencer.*

Arrasta e larga os teus sons para a interface dos canais.

Prime o atalho `N` para veres mais opções para lidar com os teus sons, como mostrar a waveform, tornar os sons Mono ou alterar o volume.

{% hint style="info" %}
Se quiseres fazer fade in e fade out, podes fazê-lo simplesmente adicionando keyframes de 0 para 1 e vice-versa à propriedade de volume.
{% endhint %}

Quando terminares de editar os sons, podes exportá-los indo a *Render> Render Audio*. Na opção de exportação, precisas de selecionar `.mp3` ou `.ogg` o formato na *Container* secção e depois *Mixdown*. **Só o áudio dentro do intervalo de frames será exportado.**

2. **Renderizar a animação e adicionar som com um software de edição de som**

Embora editar sons diretamente no Blender possa ser conveniente, não é muito flexível porque o software não está focado principalmente na edição de som. As ferramentas disponíveis são muito básicas. Se quiseres dar um toque mais profissional aos teus sons, recomendamos usar um software dedicado à edição de som da tua preferência.

Existem várias opções de software que podes usar, como [Audacity](https://www.audacityteam.org/) (Gratuito e Open Source), Adobe Audition, Ableton Live ou ProTools. Usar software dedicado à edição de som irá fornecer-te uma gama mais ampla de ferramentas, funcionalidades e efeitos sonoros, permitindo melhorar os teus sons e dar-lhes um aspeto mais profissional.

Para renderizar o teu emote, podes simplesmente adicionar uma câmara à tua cena no Blender e posicioná-la de forma a conseguires ver todos os elementos o mais claramente possível, para depois teres uma boa referência para adicionar sons.

Ao renderizar um emote, é importante incluir apenas o intervalo de frames do teu emote e não mais. Escolhe uma proporção que se adeque às tuas necessidades e seleciona a pasta de saída onde queres que o vídeo ou a sequência de imagens seja guardada.

{% hint style="info" %}
**Dica!**

*Antes de renderizar, certifica-te de que fazes um render com amostragem baixa para poupares tempo no teu render!*
{% endhint %}

Assim que este passo estiver concluído, usa o teu vídeo como referência para criar os sons correspondentes usando o software de edição de som da tua preferência. **Garante que a sequência de vídeo corresponde à taxa de frames da animação de 30 frames por segundo (fps)**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-pt/wearables-e-emotes/emotes/props-and-sounds.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
