# Props e sounds

Para levar os seus Decentraland Emotes para o próximo nível, você pode adicionar props (geometria 3D) e/ou sounds a eles, tornando os emotes muito mais divertidos e envolventes! Neste guia, você encontrará tudo o que precisa saber para exportá-los corretamente!

## **O Básico e as Limitações**

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

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

O emote com os seus props deve ser exportado tudo junto em um único *.glb* arquivo (Avatar\_Armature + Props\_Armature com 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, múltiplas 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 de espaço são de 4 metros quadrados. Props e particles devem permanecer dentro do cubo de referência fornecido no Avatar File. Para o movimento do avatar, consulte [Ground Reference and Animation Area](/creator/content-creator-pt/wearables-e-emotes/emotes/creating-emotes.md#ground-reference-and-animation-area). seção.

## **Convenções de Nomeação:**

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

#### Convenções de Nomeação das Armatures:

**Para Avatar:**

`Armature`

**Para Props:**

`Armature_Prop`

#### Convenções de Nomeação das Animações:

**Para Avatar:**

`AnimationName_Avatar`

* Exemplo: `TennisServe_Avatar`, `GunShoot_Avatar`

**Para Props:**

`AnimationName_Prop`

* Exemplo: `TennisServe_Prop`, `GunShoot_Prop`

## **Primeiros passos**

Antes de começar a sua animação, você terá de criar um rig para o prop. Se você não estiver familiarizado com o processo, consulte [Criar um Rig](/creator/content-creator-pt/modelacao-e-animacoes-3d/create-a-rig.md) para obter mais informações sobre como fazer isso.

Certifique-se de que o objeto do prop e a armature tenham suas origens localizadas na posição 0,0 dentro do Blender. Além disso, aplique as transforms ao objeto do prop e à armature, garantindo que estejam congeladas em uma escala de 1,1,1. Isso é crucial para evitar possíveis problemas com o comportamento do prop quando ele for utilizado no world ou durante as animações.

#### Fazendo o Prop Seguir o Rig do Avatar

Alguns props podem precisar ser anexados a certas partes do corpo, como uma raquete de tênis à mão. Isso pode ser feito simplesmente adicionando um constraint. Para isso, em ***Pose Mode***, selecione o osso do prop (o da raquete de tênis, por exemplo), pressione ***CTRL + Shift + C*** no seu teclado e selecione ***Child of*** ou apenas clique na aba ***Bone Constraint Properties*** e, no menu suspenso, selecione ***Child of***.

*Adicione um constraint pressionando `Ctrl + Shift + C` no seu teclado.*

Depois, em ***Target***, selecione a armature do avatar e, em ***Bone*** selecione o osso que você quer que o prop siga. Para manter a posição original do prop, clique em ***Set Inverse*** assim que adicionar o constraint. Se a influência for 1, o prop seguirá totalmente o osso selecionado; se for 0, o constraint será desativado. Você pode definir keyframes na influência para ativá-lo e desativá-lo ao longo da animação. Para fazer isso, basta pressionar I enquanto o cursor estiver sobre ***Influence***.

***Chlid of** menu do constraint. Faça keyframe da influência para ativá-la e desativá-la.*

{% hint style="info" %}
**💡 Dica de Animação!** Se você usar o slide para desativar a Influence, o prop não manterá sua posição anterior, o que dificulta manter a animação fluida. Para evitar ter de corrigir a posição manualmente, em vez de usar o slide, clique no X ao lado de Influence, defina um keyframe nele e outro em todos os atributos de transform. Dessa forma, o prop manterá a mesma posição de quando a Influence estava ativada!
{% endhint %}

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

Não deixe o prop visível desde o início! Para evitar revelar o que vai acontecer e uma transição abrupta, comece a animação com o prop reduzido para 0.001 e só o leve para 1 quando quiser que ele apareça. Lembre-se de reduzir novamente para 0 ao final da ação. Isso deixará as transições muito mais fluidas e legais!
{% endhint %}

### Animation Slots

O Blender 4.4 introduziu um novo recurso: animation slots. De acordo com a documentação do Blender, “o objetivo dos slots é permitir que um action armazene dados de animação distintos para vários data-blocks”. Em poucas palavras, os slots tornam possível armazenar a animação de várias coisas na mesma Action. Como isso afeta os emotes 2.0?

Novo recurso do Blender 4.4: animation slots.

Embora seja possível que o avatar e o prop compartilhem o mesmo action clip, por causa da convenção de nomeação e do número de clips de animação envolvidos nos Emotes 2.0, isso não funcionará. Então, o pipeline para isso seria:

1. Crie um animation clip para o avatar, ou renomeie o fornecido (***Starting\_Pose***). Ele já tem um animation slot, mas sinta-se à vontade para usá-lo (***Avatar\_Animation***) ou criar um novo.
2. Renomeie o animation clip ***AnimationName\_Avatar***
3. Crie um animation clip para o prop e renomeie-o ***AnimationName\_Prop***
4. Clique em ***New*** botão para criar um animation slot para ele (ele receberá um nome automático: ***Armature\_Prop***)
5. Anime como você faria nas versões anteriores do Blender.

Criando 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. Certifique-se de que exista apenas um animation clip para o avatar e outro para o prop, **eles devem ter exatamente o mesmo número de frames.**

Em ***Object Mode***, selecione a armature do avatar, vá para ***Pose Mode***, selecione o respectivo animation clip no menu Browse Action, clique em ***Action*** e depois em ***Push Down*** opção.

Depois, volte para ***Object Mode***, selecione a armature do prop, vá para ***Pose mode***, selecione o respectivo animation clip no menu Browse Action, clique em ***Action*** e depois em ***Push Down*** opção.

Empurrando actions para as NLA tracks.

{% hint style="warning" %}
⚠️ Tenha cuidado ao empurrar actions para baixo. Certifique-se de selecionar a armature desejada com a respectiva animação. Não apenas troque a animação e a empurre antes de selecionar a outra armature, ou você estará atribuindo duas actions a uma armature e nenhuma à outra.
{% endhint %}

As NLA tracks devem se parecer com isto: uma animação para cada armature.

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

**Antes deste passo, certifique-se de fazer um backup do seu projeto.**

Se você tiver objetos diferentes para os seus props, pode mesclá-los em uma única mesh. Você pode fazer isso simplesmente selecionando os objetos e pressionando o atalho ctrl + J.

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

Tenha em mente que isso não funcionará para particles, no entanto.

*Selecione os objetos e pressione `Ctrl+J` para mesclá-los.*
{% endhint %}

## **Exportando**

Os Emotes 2.0 são exportados da mesma forma que os emotes comuns. Certifique-se de que apenas a armature do avatar, a armature do prop e as meshes do prop estejam visíveis e esconda todo o resto.

Deixe visíveis apenas a armature do avatar, a armature do prop e a mesh do prop para exportar.

Para exportar, vá para File > Export > glTF2.0 (.glb, .gltf)

Nas configurações de exportação, expanda Include e, em Limit to, ative Visible Objects. Em seguida, expanda a aba Data, expanda Armature e habilite Export Deformation Bones Only.

|   |   |
| - | - |

Clique em Export e pronto!

## **Adicionar Audio aos Emotes**

### Formato e Limitações para Audio Clips

* O formato correto para exportar sounds para os seus emotes é `.mp3` e `.ogg`.
* O audio clip 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 sounds não pode ser maior que 3mb.

{% hint style="info" %}
**📔 Nota**: Se o emote tiver sound (mp3 ou ogg), ele deve ser compactado em zip junto com o .glb. Depois disso, basta arrastar e soltar o .zip no builder. Mais detalhes podem ser encontrados aqui: [Fazendo upload de emote com sound](/creator/content-creator-pt/wearables-e-emotes/gerir-colecoes/uploading-emotes.md#uploading-emotes-using-a-zip-file)
{% endhint %}

{% hint style="info" %}
**💡 Atenção!** Leve em consideração que os audio clips usados no emote devem ser IP (Intellectual Property) original, tendo os direitos de reprodução e seguindo os [Content Policy](https://decentraland.org/content/)critérios.
{% endhint %}

### Editando Sounds

Para adicionar sounds aos seus emotes, você pode fazer isso de diferentes maneiras:

1. **Edite seus sounds diretamente no Blender**

Uma forma de adicionar sounds aos seus emotes é usar o editor de video sequencer que o Blender fornece.

Para começar a adicionar sounds, vá para *Editor Type> Video Sequencer.*

Arraste e solte seus sounds na interface de channels.

Pressione o atalho `N` para ver mais opções de gerenciamento dos seus sounds, como exibir waveform, tornar seus sounds Mono ou alterar o volume.

{% hint style="info" %}
Se você quiser fazer fade in e fade out, pode simplesmente fazer isso adicionando keyframes de 0 para 1 e vice-versa na propriedade de volume.
{% endhint %}

Assim que terminar de editar seus sounds, você pode exportá-los indo para *Render> Render Audio*. Na opção de exportação, você precisa selecionar `.mp3` ou `.ogg` format na seção *Container* e depois *Mixdown*. **Somente o áudio dentro do intervalo de frames será exportado.**

2. **Renderize a animação e adicione sound com um software de edição de sound**

Embora editar sounds diretamente no Blender possa ser conveniente, não é muito flexível porque o software não é focado principalmente em edição de sound. As ferramentas disponíveis são muito básicas. Se você quiser dar um toque mais profissional aos seus sounds, recomendamos usar um software dedicado de edição de sound de sua preferência.

Há várias opções de software que você pode usar, como [Audacity](https://www.audacityteam.org/) (Free and OpenSource), Adobe Audition, Ableton Live ou ProTools. Usar um software dedicado de edição de sound fornecerá uma gama mais ampla de ferramentas, funcionalidades e efeitos sonoros, permitindo aprimorar seus sounds e dar a eles uma sensação mais profissional.

Para renderizar o seu emote, você pode simplesmente adicionar uma câmera à sua cena no Blender e posicioná-la de forma que você possa ver todos os elementos o mais claramente possível para depois ter uma boa referência para adicionar sounds.

Ao renderizar um emote, é importante incluir apenas o intervalo de frames do seu emote e nada mais. Escolha uma proporção de aspecto que atenda às suas necessidades e selecione a pasta de saída onde você quer que o vídeo ou a sequência de imagens seja salva.

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

*Antes de renderizar, certifique-se de fazer um render com baixo sampling para economizar tempo no seu render!*
{% endhint %}

Assim que esta etapa for concluída, use o seu vídeo como referência para criar os sounds correspondentes usando o software de edição de sound de sua preferência. **Certifique-se de que a sequência de vídeo corresponda à taxa de frames da animação de 30 frames por segundo (fps)**


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

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

The question should be specific, self-contained, and written in natural language.
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.
