Expressions/pt-br: Difference between revisions

From VRChat Wiki
FuzzyBot (talk | contribs)
Updating to match new version of source page
Inexorável (talk | contribs)
Created page with "* [https://vrc.school/docs/Avatars/Expressions-Menu-Params VRC School: Expressions Menu and Parameters] * [https://vrc.school/docs/Avatars/Gestures VRC School: Hand Gestures/Facial Expressions] * [https://vrc.school/docs/Avatars/VRC-Parameters VRC School: Built-In VRC Parameters] * [https://vrc.school/docs/Other/Network-Sync VRC School: Network Sync] * [https://vrc.school/docs/Other/Parameter-Mismatching VRC School: Expression Parameter Mismatching]"
 
(29 intermediate revisions by 2 users not shown)
Line 21: Line 21:


Quando nenhuma expressão é configurada, um menu de expressões padrão com animações base é adicionado ao avatar, contendo as seguintes animações:
Quando nenhuma expressão é configurada, um menu de expressões padrão com animações base é adicionado ao avatar, contendo as seguintes animações:
* Acenar
* Wave (Acenar)
* Palmas
* Clap (Palmas)
* Apontar
* Point (Apontar)
* Torcer
* Cheer (Torcer)
* Dança
* Dance (Dança)
* Mortal para trás
* Backflip (Mortal para trás)
* Morrer
* Die (Morrer)
* Tristeza
* Sadness (Tristeza)


<span id="Custom_expressions"></span>
<span id="Custom_expressions"></span>
===Expressões personalizadas===
===Expressões personalizadas===


<div class="mw-translate-fuzzy">
Para adicionar expressões personalizadas, crie um recurso de '''Menu de Expressões''' e um recurso de '''Parâmetros de Expressão''' no Unity, depois atribua-os na seção ''Expressões'' do Descritor de Avatar do VRChat. O menu define quais controles aparecem no menu do jogo, enquanto o recurso de parâmetros define os nomes, tipos, valores padrão e comportamento de sincronização dos valores que esses controles alteram.
Para adicionar expressões personalizadas, crie um arquivo de "Menu de Expressões" e um arquivo de "Parâmetros de Expressão" e, em seguida, anexe-os ao Descritor de Avatar do VRChat. O menu define as entradas de parâmetros exibidas nos menus de expressão do seu avatar. Os parâmetros são as "variáveis" que o menu controla. Você também especifica detalhes, como se os parâmetros devem ser sincronizados para outros usuários. É possível definir 256 bits para serem sincronizados, com um limite de 8192 variáveis.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Cada parâmetro personalizado pode ser marcado como ''Salvo'' e ''Sincronizado''. Parâmetros personalizados sincronizados contam para o limite de sincronização de 256 bits do avatar, enquanto avatares podem definir até 8192 parâmetros personalizados no total. Os parâmetros desse recurso também podem ser alterados por [[Special:MyLanguage/Contacts|Receptor de Contato]], [[Special:MyLanguage/parameter drivers|acionadores de parâmetros]], [[Special:MyLanguage/physbones|PhysBones]] e [[Special:MyLanguage/Open Sound Control|OSC]].
Each custom parameter can be marked as ''Saved'' and ''Synced''. Synced custom parameters count toward the avatar's 256-bit sync budget, while avatars can define up to 8192 total custom parameters. Parameters on this asset can also be changed by [[Special:MyLanguage/Contacts|Contact Receivers]], [[Special:MyLanguage/parameter drivers|parameter drivers]], [[Special:MyLanguage/physbones|PhysBones]], and [[Special:MyLanguage/Open Sound Control|OSC]].
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
O SDK também inclui um botão de ''Parâmetros Padrão''. Ele restaura os três parâmetros de alias usados pelos controladores AV3 padrão do VRChat: <code>VRCEmote</code>, <code>VRCFaceBlendH</code> e <code>VRCFaceBlendV</code>.
The SDK also includes a ''Default Parameters'' button. This restores the three alias parameters used by VRChat's default AV3 controllers: <code>VRCEmote</code>, <code>VRCFaceBlendH</code>, and <code>VRCFaceBlendV</code>.
</div>


<span id="Controls"></span>
<span id="Controls"></span>
====Controles====
====Controles====


<div class="mw-translate-fuzzy">
Você pode criar até 8 controles por página. Ao criar um controle, escolha o tipo:
Você pode criar até 8 controles por página. Ao criar um controle, escolha o seu tipo:
 
* Botão
* '''Button''' define um valor enquanto estiver pressionado, depois o redefine após o VRChat enviar a alteração.
* Interruptor
* '''Toggle''' define um valor quando ativada e o redefine quando desativada.
* Submenu
* '''Sub Menu''' abre outro menu de Expressões e, opcionalmente, pode definir um parâmetro enquanto esse submenu estiver aberto.
* Controle de Dois Eixos (Marionete)
* '''Two Axis Puppet''' controla dois parâmetros float a partir da entrada horizontal e vertical, geralmente no intervalo de <code>-1.0</code> a <code>1.0</code>.
* Controle de Quatro Eixos (Marionete)
* '''Four Axis Puppet''' controla quatro parâmetros float, um para cada direção, geralmente no intervalo de <code>0.0</code> a <code>1.0</code>.
* Controle Radial (Marionete)
* '''Radial Puppet''' controla um parâmetro float de <code>0.0</code> a <code>1.0</code>.
</div>


<span id="Puppet_Menu_Example"></span>
<span id="Puppet_Menu_Example"></span>
Line 66: Line 59:
Você pode abrir um menu com qualquer uma das mãos (ou com ambas). Por padrão, dê um toque para selecionar uma opção. Nas configurações do Menu de Ação, você pode optar por usar o Gatilho. Para sair de uma marionete no menu de Expressões, pressione o gatilho.
Você pode abrir um menu com qualquer uma das mãos (ou com ambas). Por padrão, dê um toque para selecionar uma opção. Nas configurações do Menu de Ação, você pode optar por usar o Gatilho. Para sair de uma marionete no menu de Expressões, pressione o gatilho.


<div lang="en" dir="ltr" class="mw-content-ltr">
Quando um controle estiver aberto, o VRChat sincroniza seus valores em tempo real usando o modo de sincronização ''IK'', que é mais rápido. Após ser fechado, o valor congelado permanece até ser alterado novamente.
When a puppet control is open, VRChat synchronizes its live values with the faster ''IK'' sync mode. After it is closed, the frozen value remains until it is changed again.
</div>


<span id="Expression_Parameter"></span>
<span id="Expression_Parameter"></span>
Line 75: Line 66:
Os parâmetros de expressão são usados ​​para controlar as funcionalidades do avatar através do menu de expressões, [[Special:MyLanguage/Contacts|receptor de contato]], [[Special:MyLanguage/Open Sound Control|OSC]], [[Special:MyLanguage/parameter drivers|acionadores de parâmetro]] ou [[Special:MyLanguage/physbones|physbones]]. Esses parâmetros são então mapeados para os parâmetros do Controlador de Animação nos controladores de Efeitos (FX), Gestos ou Ações do seu avatar.
Os parâmetros de expressão são usados ​​para controlar as funcionalidades do avatar através do menu de expressões, [[Special:MyLanguage/Contacts|receptor de contato]], [[Special:MyLanguage/Open Sound Control|OSC]], [[Special:MyLanguage/parameter drivers|acionadores de parâmetro]] ou [[Special:MyLanguage/physbones|physbones]]. Esses parâmetros são então mapeados para os parâmetros do Controlador de Animação nos controladores de Efeitos (FX), Gestos ou Ações do seu avatar.


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Settings"></span>
=== Settings ===
== Configurações ==
</div>
 
Cada entrada no recurso de Parâmetros de Expressão armazena:
* '''Nome''', que deve corresponder exatamente ao nome do parâmetro no Animator.
* '''Tipo''', que pode ser <code>Bool</code>, <code>Int</code> ou <code>Float</code>.
* '''Padrão''', usado quando o avatar é redefinido.
* '''Salvo''', que controla se o valor persiste entre sessões.
* '''Sincronizado''', que controla se o valor é enviado para outros usuários.
 
Por padrão, a sincronização de parâmetros personalizados usa o modo de sincronização ''Playable'' do VRChat. Controles (puppet controls) usam temporariamente a sincronização ''IK'', que é mais rápida, enquanto estiverem abertos.
 
<span id="Built-in_parameters"></span>
=== Parâmetros Integrados ===
 
O VRChat também fornece parâmetros integrados do Animator. Eles não precisam ser adicionados ao recurso de Parâmetros de Expressão e não contam para o limite de parâmetros personalizados.
 
Parâmetros integrados são somente leitura. Eles são adicionados diretamente ao Animator Controller de uma camada playable pelo nome, e o VRChat os atualiza automaticamente em tempo de execução. Eles não são definidos em sub-animators, apenas em animators de camadas playable.
 
Parâmetros integrados adicionais incluem:


<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>Viseme</code> (Int) — Definido pela sincronização labial de <code>0</code> (silêncio) até <code>14</code> (a vogal "u") quando a Sincronização Labial do Descritor de Avatar estiver definida como Forma de Mistura de Visema ou Apenas Parâmetro de Visema.
Each entry in the Expression Parameters asset stores:
* <code>Voice</code> (Float) — Volume percebido do microfone de <code>0.0</code> a <code>1.0</code>, afetado pela distância e pelas configurações de Protetores de Ouvido.
* '''Name''', which must match the Animator parameter name exactly.
* <code>VelocityX</code>, <code>VelocityY</code>, <code>VelocityZ</code>, <code>VelocityMagnitude</code> (Float) — Velocidade de movimento em m/s ao longo de cada eixo e magnitude total. Localmente, o movimento da área de jogo não conta; remotamente, conta.
* '''Type''', which can be <code>Bool</code>, <code>Int</code>, or <code>Float</code>.
* <code>Upright</code> (Float) — <code>0</code> quando de bruços, <code>1</code> quando em pé.
* '''Default''', which is used when the avatar is reset.
* <code>Grounded</code> (Bool) — Define se o usuário está tocando o chão.
* '''Saved''', which controls whether the value persists between sessions.
* <code>MuteSelf</code> (Bool) — Define se o microfone do usuário está silenciado.
* '''Synced''', which controls whether the value is sent to other users.
* <code>Earmuffs</code> (Bool) — Define se o usuário está com os Protetores de Ouvido ativados.
</div>
* <code>IsOnFriendsList</code> (Bool) — Define se o observador é amigo do usuário que está usando o avatar (mostra False localmente).
* <code>ScaleFactor</code>, <code>ScaleFactorInverse</code>, <code>EyeHeightAsMeters</code>, <code>EyeHeightAsPercent</code> (Float) — Parâmetros relacionados ao escalonamento do avatar. <code>EyeHeightAsMeters</code> é recomendado para sistemas compatíveis com escala, pois é linear e não depende da altura de upload.


<div lang="en" dir="ltr" class="mw-content-ltr">
Cada parâmetro integrado possui um tipo de sincronização que determina quando ele é enviado para usuários remotos: ''IK'' para valores derivados do rastreamento (gestos, velocidade, contato com o chão), ''Speech'' para valores relacionados à voz (viseme, voz), ''Playable'' para valores de estado do usuário (silenciar, Protetores de Ouvido, tipo de rastreamento, escala) ou ''None'' para valores apenas locais (IsLocal, PreviewMode).
By default, custom parameter sync uses VRChat's ''Playable'' sync mode. Puppet controls temporarily use faster ''IK'' sync while they are actively open.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Network_synchronization"></span>
=== Built-in parameters ===
=== Sincronização de rede ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Apenas parâmetros de expressão sincronizados e certos parâmetros integrados são enviados pela rede. A lista completa de dados enviados para cada avatar inclui:
VRChat also provides built-in Animator parameters such as <code>GestureLeft</code>, <code>GestureRight</code>, <code>GestureLeftWeight</code>, <code>GestureRightWeight</code>, <code>IsLocal</code>, <code>AFK</code>, <code>Seated</code>, <code>InStation</code>, and <code>TrackingType</code>. These do not need to be added to the Expression Parameters asset, and they do not count toward the custom parameter budget.
* '''IK targets (Alvos de IK)''' — Cabeça, mandíbula e mãos para desktop e rastreamento de 3 pontos; adicionalmente quadril e pés para rastreamento de corpo inteiro. Usuários de controles Index também sincronizam as posições dos dedos.
</div>
* '''Synced expression parameters (Parâmetros de expressão sincronizados)''' — Apenas parâmetros marcados como Sincronizados são transmitidos. Os valores são quantizados: valores Int sincronizam no intervalo de 0–255, valores Float sincronizam como múltiplos de 1/127 entre −1 e 1, e Bools sincronizam como verdadeiro ou falso.
* '''Built-in VRC parameters (Parâmetros VRC integrados)''' — Incluindo gestos, velocidade, voz e outros parâmetros em tempo de execução.
* '''PhysBones''' — Dados de posição da pose são enviados para usuários que entram posteriormente.


<div lang="en" dir="ltr" class="mw-content-ltr">
Para um suporte confiável a usuários que entram posteriormente, um padrão recomendado é separar a lógica do Animator usando o parâmetro <code>IsLocal</code>: camadas do lado local lidam com contatos, acionadores de parâmetros e toda a lógica, depois definem os parâmetros sincronizados, enquanto camadas do lado remoto apenas leem esses parâmetros sincronizados para reproduzir a visualização correta.
Built-in parameters are read-only. They are added directly to a playable layer's Animator Controller by name, and VRChat updates them automatically at runtime.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Gestures_and_facial_expressions"></span>
=== Gestures and facial expressions ===
=== Gestos e Expressões Faciais ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Os parâmetros integrados <code>GestureLeft</code> e <code>GestureRight</code> identificam o gesto de mão do usuário, enquanto <code>GestureLeftWeight</code> e <code>GestureRightWeight</code> expõem a pressão analógica do gatilho. Em avatares humanoides, a camada playable Gesture é comumente usada para poses das mãos, enquanto expressões faciais geralmente são controladas pela camada FX usando blendshapes, propriedades de material ou outras animações não humanoides.
The built-in <code>GestureLeft</code> and <code>GestureRight</code> parameters identify the user's hand gesture, while <code>GestureLeftWeight</code> and <code>GestureRightWeight</code> expose analog trigger pressure. On humanoid avatars, the Gesture playable layer is commonly used for hand poses, while facial expressions are often driven from the FX layer with blendshapes, material properties, or other non-humanoid animations.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Em controles com rastreamento onde o rastreamento dos dedos substitui a animação por padrão, criadores podem usar um comportamento de estado Tracking Control para alternar os dedos relevantes de ''Tracking'' para ''Animation'' quando necessário.
On tracked controllers where finger tracking overrides animation by default, creators can use a Tracking Control state behavior to switch the relevant fingers from ''Tracking'' to ''Animation'' when needed.
</div>


<span id="Expression_Parameter_Mismatching"></span>
<span id="Expression_Parameter_Mismatching"></span>
== Divergências de parâmetros de expressão==
== Divergências de parâmetros de expressão==


<div class="mw-translate-fuzzy">
A divergência de parâmetros de expressão refere-se à prática de usar tipos de parâmetros diferentes entre os parâmetros de expressão e os parâmetros do controlador de animação local. Embora seja recomendável manter a consistência dos tipos de parâmetros, existe suporte para essa divergência e o sistema converterá os valores entre os tipos de acordo com regras específicas. Isso pode ser útil em certas configurações <u>avançadas</u>. O mesmo comportamento de conversão também pode ser usado com parâmetros integrados do Animator do VRChat.
A divergência de parâmetros de expressão refere-se à prática de usar tipos de parâmetros diferentes entre os parâmetros de expressão e os parâmetros do controlador de animação local. Embora seja recomendável manter a consistência dos tipos de parâmetros, existe suporte para essa divergência e o sistema converterá os valores entre os tipos de acordo com regras específicas. Isso pode ser útil em certas configurações <u>avançadas</u>.
</div>


<div class="mw-translate-fuzzy">
O sistema Animator do Unity usa floats no backend para todos os tipos de parâmetros, enquanto o VRChat armazena parâmetros personalizados sincronizados em formatos compactos otimizados para rede. A interface do usuário no Unity e no VRCSDK permite que criadores escolham tipos de parâmetros para maior conveniência, mas, internamente, a conversão de valores é possível. Isso significa que os parâmetros não são convertidos no sentido de casting do C#, mas sim usados de forma incompatível entre sistemas. Esse comportamento também é suportado por ferramentas populares como Av3Emulator e Gesture Manager.
O sistema Animator do Unity usa floats no backend para todos os tipos de parâmetros, enquanto o VRChat usa SBytes internamente para armazenamento de parâmetros. A interface do usuário no Unity e no VRCSDK permite selecionar tipos de parâmetros para maior conveniência, mas, internamente, conversões são possíveis. Isso significa que os parâmetros não são convertidos (cast), mas sim divergentes. Esse comportamento também é suportado por ferramentas populares como Av3Emulator e Gesture Manager.
</div>


<span id="Expression_Parameter_Bool"></span>
<span id="Expression_Parameter_Bool"></span>
Line 182: Line 179:
==Recursos==
==Recursos==


<div class="mw-translate-fuzzy">
*{{VRC link|https://vrchat.com/home/world/wrld_6168d07b-f55c-40bc-8077-749dde39983c|Mundo Avatar 3.0 Hub}} no VRChat
*Mundo {{VRC link|https://vrchat.com/home/world/wrld_6168d07b-f55c-40bc-8077-749dde39983c|Avatar 3.0 Hub}} no VRChat
*[https://creators.vrchat.com/avatars/expression-menu-and-controls/ Menu de Expressões e Controles] no Creator Docs
*[https://creators.vrchat.com/avatars/expression-menu-and-controls/ Menu de Expressões e Controles] na Documentação do Criador
*[https://docs.vrchat.com/docs/action-menu#expression-menu Menu de Ações - Menu de Expressões] no Creator Docs
*[https://docs.vrchat.com/docs/action-menu#expression-menu Menu de Ação - Menu de Expressão] na Documentação do Criador
*[https://creators.vrchat.com/avatars/animator-parameters/ Parâmetros do Animator] no Creator Docs
*[https://creators.vrchat.com/avatars/animator-parameters/#expression-parameter-aliasing Parâmetros do Animador] na Documentação do Criador
*[https://creators.vrchat.com/avatars/playable-layers Camadas Playable] no Creator Docs
*[https://creators.vrchat.com/avatars/playable-layers Camadas Reproduzíveis] na Documentação do Criador
*[https://creators.vrchat.com/avatars/state-behaviors/ Comportamentos de Estado] no Creator Docs
</div>


<span id="See_also"></span>
<span id="See_also"></span>
Line 201: Line 197:
==Referências==
==Referências==


<references />
* [https://vrc.school/docs/Avatars/Expressions-Menu-Params VRC School: Expressions Menu and Parameters]
* [https://vrc.school/docs/Avatars/Gestures VRC School: Hand Gestures/Facial Expressions]
* [https://vrc.school/docs/Avatars/VRC-Parameters VRC School: Built-In VRC Parameters]
* [https://vrc.school/docs/Other/Network-Sync VRC School: Network Sync]
* [https://vrc.school/docs/Other/Parameter-Mismatching VRC School: Expression Parameter Mismatching]


[[Category:Avatar features{{#translation:}}]]
[[Category:Avatar features{{#translation:}}]]

Latest revision as of 22:14, 23 May 2026

V · EEsta é uma página oficial de informações do VRChat!
Ela é revisada e aprovada pela Equipe do VRCWiki. Saiba como contribuir para esta página lendo o Hub de Contribuição.
Um exemplo do menu Expressões no menu de Ação.

"Expressões" são um recurso de avatares do VRChat, que consiste em menus personalizados pelo usuário que permitem ativar ações ou alternar opções em seu avatar; projetadas para acesso fácil e flexível a recursos exclusivos do avatar.

Mais informações estão disponíveis em Documentação para Criadores de Avatares.

Menu de expressões

O menu de Expressões dentro do jogo pode ser acessado através do Menu de Ação, ou da aba Expressões no Menu Rápido e Menu Principal em qualquer versão do VRChat. As alterações nas expressões de um avatar são compartilhadas globalmente com outros usuários na mesma plataforma e podem ser configuradas para sincronização entre plataformas.

Expressões no SDK

As expressões são editadas usando vários parâmetros no SDK do VRChat.

Expressões base

Quando nenhuma expressão é configurada, um menu de expressões padrão com animações base é adicionado ao avatar, contendo as seguintes animações:

  • Wave (Acenar)
  • Clap (Palmas)
  • Point (Apontar)
  • Cheer (Torcer)
  • Dance (Dança)
  • Backflip (Mortal para trás)
  • Die (Morrer)
  • Sadness (Tristeza)

Expressões personalizadas

Para adicionar expressões personalizadas, crie um recurso de Menu de Expressões e um recurso de Parâmetros de Expressão no Unity, depois atribua-os na seção Expressões do Descritor de Avatar do VRChat. O menu define quais controles aparecem no menu do jogo, enquanto o recurso de parâmetros define os nomes, tipos, valores padrão e comportamento de sincronização dos valores que esses controles alteram.

Cada parâmetro personalizado pode ser marcado como Salvo e Sincronizado. Parâmetros personalizados sincronizados contam para o limite de sincronização de 256 bits do avatar, enquanto avatares podem definir até 8192 parâmetros personalizados no total. Os parâmetros desse recurso também podem ser alterados por Receptor de Contato, acionadores de parâmetros, PhysBones e OSC.

O SDK também inclui um botão de Parâmetros Padrão. Ele restaura os três parâmetros de alias usados pelos controladores AV3 padrão do VRChat: VRCEmote, VRCFaceBlendH e VRCFaceBlendV.

Controles

Você pode criar até 8 controles por página. Ao criar um controle, escolha o tipo:

  • Button define um valor enquanto estiver pressionado, depois o redefine após o VRChat enviar a alteração.
  • Toggle define um valor quando ativada e o redefine quando desativada.
  • Sub Menu abre outro menu de Expressões e, opcionalmente, pode definir um parâmetro enquanto esse submenu estiver aberto.
  • Two Axis Puppet controla dois parâmetros float a partir da entrada horizontal e vertical, geralmente no intervalo de -1.0 a 1.0.
  • Four Axis Puppet controla quatro parâmetros float, um para cada direção, geralmente no intervalo de 0.0 a 1.0.
  • Radial Puppet controla um parâmetro float de 0.0 a 1.0.

Exemplo de Menu de Marionetes
Exemplo do Menu de Ação e do Espelho Facial em uso. (GIF animado)

Ao mover o joystick, o touchpad ou o mouse em diferentes direções, você altera os parâmetros de animação para misturar diferentes expressões (por exemplo, "feliz" e "surpreso"). Qualquer parâmetro pode ser controlado neste menu.

Você pode abrir um menu com qualquer uma das mãos (ou com ambas). Por padrão, dê um toque para selecionar uma opção. Nas configurações do Menu de Ação, você pode optar por usar o Gatilho. Para sair de uma marionete no menu de Expressões, pressione o gatilho.

Quando um controle estiver aberto, o VRChat sincroniza seus valores em tempo real usando o modo de sincronização IK, que é mais rápido. Após ser fechado, o valor congelado permanece até ser alterado novamente.

Parâmetro de Expressão

Os parâmetros de expressão são usados ​​para controlar as funcionalidades do avatar através do menu de expressões, receptor de contato, OSC, acionadores de parâmetro ou physbones. Esses parâmetros são então mapeados para os parâmetros do Controlador de Animação nos controladores de Efeitos (FX), Gestos ou Ações do seu avatar.

Configurações

Cada entrada no recurso de Parâmetros de Expressão armazena:

  • Nome, que deve corresponder exatamente ao nome do parâmetro no Animator.
  • Tipo, que pode ser Bool, Int ou Float.
  • Padrão, usado quando o avatar é redefinido.
  • Salvo, que controla se o valor persiste entre sessões.
  • Sincronizado, que controla se o valor é enviado para outros usuários.

Por padrão, a sincronização de parâmetros personalizados usa o modo de sincronização Playable do VRChat. Controles (puppet controls) usam temporariamente a sincronização IK, que é mais rápida, enquanto estiverem abertos.

Parâmetros Integrados

O VRChat também fornece parâmetros integrados do Animator. Eles não precisam ser adicionados ao recurso de Parâmetros de Expressão e não contam para o limite de parâmetros personalizados.

Parâmetros integrados são somente leitura. Eles são adicionados diretamente ao Animator Controller de uma camada playable pelo nome, e o VRChat os atualiza automaticamente em tempo de execução. Eles não são definidos em sub-animators, apenas em animators de camadas playable.

Parâmetros integrados adicionais incluem:

  • Viseme (Int) — Definido pela sincronização labial de 0 (silêncio) até 14 (a vogal "u") quando a Sincronização Labial do Descritor de Avatar estiver definida como Forma de Mistura de Visema ou Apenas Parâmetro de Visema.
  • Voice (Float) — Volume percebido do microfone de 0.0 a 1.0, afetado pela distância e pelas configurações de Protetores de Ouvido.
  • VelocityX, VelocityY, VelocityZ, VelocityMagnitude (Float) — Velocidade de movimento em m/s ao longo de cada eixo e magnitude total. Localmente, o movimento da área de jogo não conta; remotamente, conta.
  • Upright (Float) — 0 quando de bruços, 1 quando em pé.
  • Grounded (Bool) — Define se o usuário está tocando o chão.
  • MuteSelf (Bool) — Define se o microfone do usuário está silenciado.
  • Earmuffs (Bool) — Define se o usuário está com os Protetores de Ouvido ativados.
  • IsOnFriendsList (Bool) — Define se o observador é amigo do usuário que está usando o avatar (mostra False localmente).
  • ScaleFactor, ScaleFactorInverse, EyeHeightAsMeters, EyeHeightAsPercent (Float) — Parâmetros relacionados ao escalonamento do avatar. EyeHeightAsMeters é recomendado para sistemas compatíveis com escala, pois é linear e não depende da altura de upload.

Cada parâmetro integrado possui um tipo de sincronização que determina quando ele é enviado para usuários remotos: IK para valores derivados do rastreamento (gestos, velocidade, contato com o chão), Speech para valores relacionados à voz (viseme, voz), Playable para valores de estado do usuário (silenciar, Protetores de Ouvido, tipo de rastreamento, escala) ou None para valores apenas locais (IsLocal, PreviewMode).

Sincronização de rede

Apenas parâmetros de expressão sincronizados e certos parâmetros integrados são enviados pela rede. A lista completa de dados enviados para cada avatar inclui:

  • IK targets (Alvos de IK) — Cabeça, mandíbula e mãos para desktop e rastreamento de 3 pontos; adicionalmente quadril e pés para rastreamento de corpo inteiro. Usuários de controles Index também sincronizam as posições dos dedos.
  • Synced expression parameters (Parâmetros de expressão sincronizados) — Apenas parâmetros marcados como Sincronizados são transmitidos. Os valores são quantizados: valores Int sincronizam no intervalo de 0–255, valores Float sincronizam como múltiplos de 1/127 entre −1 e 1, e Bools sincronizam como verdadeiro ou falso.
  • Built-in VRC parameters (Parâmetros VRC integrados) — Incluindo gestos, velocidade, voz e outros parâmetros em tempo de execução.
  • PhysBones — Dados de posição da pose são enviados para usuários que entram posteriormente.

Para um suporte confiável a usuários que entram posteriormente, um padrão recomendado é separar a lógica do Animator usando o parâmetro IsLocal: camadas do lado local lidam com contatos, acionadores de parâmetros e toda a lógica, depois definem os parâmetros sincronizados, enquanto camadas do lado remoto apenas leem esses parâmetros sincronizados para reproduzir a visualização correta.

Gestos e Expressões Faciais

Os parâmetros integrados GestureLeft e GestureRight identificam o gesto de mão do usuário, enquanto GestureLeftWeight e GestureRightWeight expõem a pressão analógica do gatilho. Em avatares humanoides, a camada playable Gesture é comumente usada para poses das mãos, enquanto expressões faciais geralmente são controladas pela camada FX usando blendshapes, propriedades de material ou outras animações não humanoides.

Em controles com rastreamento onde o rastreamento dos dedos substitui a animação por padrão, criadores podem usar um comportamento de estado Tracking Control para alternar os dedos relevantes de Tracking para Animation quando necessário.

Divergências de parâmetros de expressão

A divergência de parâmetros de expressão refere-se à prática de usar tipos de parâmetros diferentes entre os parâmetros de expressão e os parâmetros do controlador de animação local. Embora seja recomendável manter a consistência dos tipos de parâmetros, existe suporte para essa divergência e o sistema converterá os valores entre os tipos de acordo com regras específicas. Isso pode ser útil em certas configurações avançadas. O mesmo comportamento de conversão também pode ser usado com parâmetros integrados do Animator do VRChat.

O sistema Animator do Unity usa floats no backend para todos os tipos de parâmetros, enquanto o VRChat armazena parâmetros personalizados sincronizados em formatos compactos otimizados para rede. A interface do usuário no Unity e no VRCSDK permite que criadores escolham tipos de parâmetros para maior conveniência, mas, internamente, a conversão de valores é possível. Isso significa que os parâmetros não são convertidos no sentido de casting do C#, mas sim usados de forma incompatível entre sistemas. Esse comportamento também é suportado por ferramentas populares como Av3Emulator e Gesture Manager.

Parâmetro de Expressão Booleano

Parâmetro do Controlador de Animação
Tipo Expressão Booleana = Falso Expressão Booleana = Verdadeiro
Bool → Bool Bool = False Bool = True
Bool → Int Int = 0 Int = 1
Bool → Float Float = 0.0 Float = 1.0

Parâmetro de Expressão Inteiro

Parâmetro do Controlador de Animação
Tipo Comportamento
Int → Bool Qualquer valor inteiro diferente de 0 define uma variável booleana como Verdadeiro.
Int → Int Comportamento Esperado
Int → Float Conversão Direta: por exemplo, Inteiro = 2 → Float = 2.0

Parâmetro de Expressão Float

Parâmetro do Controlador de Animação
Tipo Comportamento
Float → Bool Qualquer valor Float diferente de 0 define uma variável booleana como Verdadeiro.
Float → Int Conversão Arredondada: ≥0,5 → 1 ; <0,5 → 0
Float → Float Comportamento Esperado

Recursos

Veja também

Referências