Animando caudas para as quais o rig automático nunca criou um osso
Por Oleg Sidorkin, CTO e cofundador da Cinevva
Atualizado em 11 de setembro de 2026: o que o camundongo nos ensinou acrescenta flexões elásticas, contato com o chão e um segundo tipo de elevação corporal causada pela cauda.
Um usuário criou o rig de uma raposa antropomórfica no nosso criador de rigs e reproduziu o clipe Walk. O corpo estava bom. A cauda se dobrou contra a perna esquerda como uma toalha molhada e, onde os pesos das pernas esquerda e direita se encontravam, ela rasgou. Essa raposa é o exemplo recorrente abaixo, e a correção já está disponível no criador de rigs e na biblioteca de runtime que reproduz seus clipes.
Tanto a raposa quanto o camundongo apresentados neste artigo foram gerados com o nosso gerador de modelos 3D e depois receberam rig e animação na Cinevva.

Da esquerda para a direita, no meio da passada e no mesmo quadro: o rig como saiu do criador, o mesmo rig com a cauda atribuída à pelve como uma única peça e a cauda em sua própria cadeia de ossos, balançada pelo runtime. Você pode girar a câmera ao redor das três mais abaixo.
Por que um criador de rigs humanoides faz isso
Nosso mecanismo Fast é baseado no Make-It-Animatable, que prevê um esqueleto fixo no estilo Mixamo: 22 ossos corporais, ou 65 com os dedos. Cada vértice da malha precisa ser atribuído a um desses ossos. Uma cauda não está na lista, então o modelo faz o melhor que sabe fazer e entrega os vértices da cauda à parte do corpo mais próxima em seu espaço de características aprendido. Para essa raposa, foi a canela esquerda, com o restante dividido entre as duas coxas.
Isso não é um bug nos pesos. É o template. Nenhum prompt ou configuração faz o modelo emitir um osso de cauda, pois não existe um osso de cauda para ele emitir. O mesmo acontece com asas, capas, cabelos longos e qualquer outra coisa que fique pendurada no torso.
Medimos o custo disso nos 1.582 vértices da cauda da raposa antes de mexer em qualquer coisa. A distância de cada vértice até os ossos que realmente o movem, ponderada pelos pesos, teve média de 47 cm em um modelo de 191 cm. A cauda estava sendo controlada a meio metro de distância.
Encontrando a cauda
O GLB com rig é tudo o que temos nesse ponto, e é tudo de que precisamos. O processamento funciona com a saída de qualquer criador de rigs, não apenas o nosso.
Um campo de distância sobre o esqueleto. Para cada vértice
e a distância de um vértice ao esqueleto é o mínimo entre todos os segmentos. Articulações terminais recebem uma pequena extensão além da articulação, para que um focinho ou uma mão não sejam considerados distantes de seu próprio osso. Um vértice está distante quando essa distância ultrapassa 7% da altura do modelo. Para a raposa, isso corresponde a 13 cm.
Partes conectadas de pele distante. Os vértices distantes são agrupados em componentes conectados ao longo das próprias faces da malha. Um detalhe nos custou uma hora: os exportadores separam vértices nas costuras de UV e de normais rígidas, então essa malha tem 23.129 vértices, mas apenas 29.081 triângulos, e só o grafo de faces divide uma cauda em dezenas de ilhas. Primeiro, soldamos os vértices por posição, executamos a conectividade no grafo soldado e gravamos os pesos de volta em cada vértice original.
Onde ela se conecta? O colar de uma peça é o anel de vértices não distantes adjacentes a ela. Seu centro nos informa de onde a peça pende, por meio da articulação mais próxima, com uma preferência: uma articulação do torso ou da coxa a até 1,5 vez a menor distância prevalece, pois, ao redor da pelve, as cabeças das coxas ficam exatamente tão próximas quanto os quadris, e a raiz de uma cauda entre elas pertence ao corpo. Deliberadamente, não confiamos nos pesos do colar para isso. Em uma cauda modelada como uma casca separada, como ocorre na maioria dos modelos de jogos, o colar é o próprio anel da raiz da cauda e carrega os mesmos pesos incorretos que estamos tentando corrigir.
É um apêndice ou faz parte do corpo? Usamos dois testes. A pele distante de um torso grosso envolve um osso, então seu centro de massa volta a cair sobre o osso. Uma cauda se projeta para um lado, então seu centro de massa fica distante de todos os ossos. Exigimos que a distância do centroide ao esqueleto seja de pelo menos 40% do alcance da peça. Em seguida, fazemos um teste de forma: sendo
A cauda da raposa resultou em duas cascas sobrepostas, pelo sobre pele, nunca soldadas. Por isso, peças na mesma conexão cujas caixas delimitadoras se sobrepõem em mais da metade são mescladas. Uma cauda, uma cadeia.
Etapa um: torná-la rígida
A primeira correção honesta leva uma tarde. Cada vértice da peça recebe peso 1.0 em Hips. A cauda para de rasgar e se move como uma única peça junto com a pelve. Ela parece uma tábua, e é a raposa do meio na imagem. Lançamos isso como um marco porque seu alongamento é exatamente zero por construção, o que a torna uma referência útil para a medição abaixo.
Etapa dois: criar uma cadeia ao longo dela
Uma coordenada ao longo da cauda. Executamos Dijkstra a partir do colar em direção à peça, sobre as arestas da malha ponderadas pelo comprimento da aresta. Cada vértice da cauda recebe uma distância geodésica
Articulações. O número de segmentos é Tail_1 a Tail_K, mais um Tail_End sem peso, todos parentados sob Hips e compartilhando a rotação de bind de Hips, para que cada um seja uma translação pura no quadro de referência de seu pai. Suas matrizes inversas de bind são obtidas diretamente, e os clipes existentes nunca fazem referência a eles, portanto nada nas etapas seguintes é quebrado.
Pesos. Com
Em uma articulação, os dois ossos se encontram em uma divisão 50/50; no meio de um segmento, um único osso controla completamente a pele. Para o segmento da raiz, "prev" é Hips, então a cauda se mistura ao corpo em vez de formar uma dobra no colar.
Após o processamento, a distância ponderada até os ossos na cauda caiu de 47 cm para 17 cm, aproximadamente o raio da própria cauda. É o mais perto que a pele chega do osso que a controla.

Etapa três: algo precisa mover os ossos
Nenhum clipe da nossa biblioteca tem trilhas de cauda, então, sem trabalho adicional, a cadeia mantém sua pose de bind e a raposa anda por aí com uma tábua. Jogos resolvem isso com movimento secundário procedural, e nós também, na biblioteca de runtime que todo modelo com rig já carrega.
A ponta de cada articulação é uma partícula
com
Como as partículas existem no espaço global, girar ou acelerar os quadris faz a cauda ficar para trás e balançar por conta própria. Nada é roteirizado.
Vale a pena admitir três erros aqui, pois todos pareciam aceitáveis até que alguma medição os revelasse.
A primeira versão puxava cada partícula uma fração fixa do caminho até seu alvo a cada quadro, 12% a 60 fps. Expressa como uma mola, isso resulta em
A segunda versão realimentava a correção da corda como velocidade, dividindo a correção por
O terceiro erro foi o ângulo de elevação abaixo. Ele era aplicado no quadro de referência de cada articulação, de modo que uma cauda com quatro ossos era elevada quatro vezes, enrolava-se em uma bola contra as costas da raposa e rasgava a própria pele em cada dobra. A medição abaixo revelou isso: o alongamento das arestas da cauda chegou a um p99 de 2,3, contra uma referência corporal de 1,3, pior do que quando ela estava presa à canela. Agora, carry representa a elevação da cauda inteira, compartilhada entre suas articulações.
Interpenetração. A cauda foi modelada pendendo em linha reta entre as pernas, e o ciclo de caminhada fazia os pés atravessarem-na. Portanto, a pose de repouso visada pela mola não é a própria pose da malha: um carry de 50° eleva os alvos de repouso para trás e para cima ao redor do eixo lateral dos quadris, como uma raposa segura a cauda ao se mover. Esses 50° representam a elevação da cauda inteira, compartilhada entre suas articulações, de modo que o arco seja suave tanto quando a cadeia resulta em quatro ossos quanto em oito. Além disso, nenhuma partícula pode atravessar o plano voltado para a frente que passa pela raiz da cauda, então ela jamais pode balançar entre as pernas.
Medindo o resultado
Estas são as medições originais da raposa, feitas em 6 de setembro, antes das alterações do camundongo descritas abaixo. Elas documentam o primeiro solver da cadeia, não um novo benchmark dos padrões revisados.
Imagens estáticas não provam nada sobre rasgos, então medimos o alongamento das arestas durante o clipe. Para cada aresta da malha cujos dois vértices pertencem à cauda, calculamos a proporção entre seu comprimento após o skinning e seu comprimento de bind em 24 momentos igualmente espaçados ao longo do clipe Walk. Uma proporção de 1 representa pele sem deformação. Uma aresta alongada além de 1,5 ou comprimida abaixo de 0,67 conta como rasgada. As arestas do corpo são medidas da mesma maneira, como referência da aparência de uma distorção normal de skinning.
| Clipe Walk, 96.864 amostras de arestas da cauda | p95 | p99 | máx. | rasgadas |
|---|---|---|---|---|
| Rig original | 1.60 | 2.42 | 4.03 | 11.4% |
| Rígida em Hips | 1.00 | 1.00 | 1.00 | 0% |
| Cadeia da cauda | 1.09 | 1.18 | 1.30 | 0% |
| Corpo, como referência | 1.13 | 1.29 | 1.78 | — |
O rig original alongava uma em cada nove arestas da cauda além do ponto de rasgo, e sua pior aresta alcançava quatro vezes o comprimento de bind. A pior aresta da cadeia fica 30% mais longa, dentro da própria referência corporal de 1,78, e nada rasga. A cauda rígida permanece exatamente em 1,00 porque se move como uma única peça; foi esse número que nos mostrou que o sistema de teste estava correto antes de confiarmos nele para a cadeia.
Uma cauda que realmente balança precisa deformar um pouco a própria pele, então o objetivo da cadeia não é alcançar 1,00, mas permanecer abaixo do que o corpo já apresenta. Uma versão anterior desta tabela mostrava a cadeia com p99 de 1,03, o que parecia melhor, mas era pior: a cauda quase não se movia, pois o bug de velocidade acima a havia amortecido em excesso, deixando-a parecida com a versão rígida.
A comparação interativa
Três cópias da raposa, mesmo clipe, mesmo quadro. Arraste para girar a câmera e use a roda para aplicar zoom. Troque de clipe, desative a física da cauda para ver a cadeia em sua pose de repouso elevada e ative os ossos para ver onde a cadeia fica.
A mesma cadeia vista de lado, isolada, com o esqueleto desenhado. Sprint é o clipe que melhor mostra o efeito de mola.O que o camundongo nos ensinou
A raposa demonstrou que uma cadeia podia impedir as rupturas. Um camundongo com uma cauda longa e fina tornou os erros de movimento restantes muito mais fáceis de enxergar. Uma dobra acentuada que desaparece dentro da pelagem de uma raposa parece uma articulação quebrada no camundongo. A cauda dele também alcança o chão, e sua forma modelada se curva para um dos lados. São três problemas diferentes; aumentar a rigidez da mola não resolve todos eles.
Experimente o camundongo com toda a biblioteca de animações abaixo. Arraste o personagem para orbitar, role horizontalmente a faixa de miniaturas ou use a pesquisa e o filtro de categorias para encontrar um movimento. Clique em um bloco para reproduzi-lo na visualização grande. Walk, Crouch Backward, Crawl Idle e Back Flip são bons pontos de partida para inspecionar a cauda. A faixa usa as mesmas prévias de animação em tempo real da seção principal de animações e disponibiliza o catálogo completo, carregando os movimentos conforme você navega.
Abra a biblioteca completa de animações → para experimentar esses movimentos em seu próprio personagem com rig e exportar os clipes que escolher.
Uma cadeia de molas ainda precisa de resistência à flexão
As partículas estavam restritas a preservar o comprimento de cada osso, mas cada articulação ainda podia oscilar de forma quase independente. As restrições de comprimento evitam o alongamento; elas não impedem que uma dobradiça se dobre. O camundongo revelou exatamente essa distinção.

Antes das correções: manter os comprimentos dos segmentos intactos não bastava para preservar a suavidade da curva.
Agora acoplamos as flexões adicionais das articulações vizinhas, medidas em relação à curva de repouso. As flexões são comparadas em um sistema de referência comum, para que eixos ósseos diferentes não transformem uma flexão para a esquerda em uma torção sem relação na articulação seguinte. Cada etapa lê um instantâneo dos vizinhos, em vez de valores parcialmente atualizados. A interpolação do acoplamento é
A flexão elástica de uma articulação é limitada a 30° além de sua direção de repouso. Também aumentamos o amortecimento para 0,65 e removemos a velocidade que continua forçando contra o limite de flexão, para que ela não possa se acumular e ser liberada como um tranco. A base continua sustentada pelos quadris, e a ponta permanece mais flexível. O contato pode se sobrepor ao limite de flexão quando a cauda precisa repousar no chão.
Acoplamento de rotações, não de posições de partículas. Numere os
Essa conjugação altera o sistema de coordenadas da flexão; ela não adiciona outra rotação ao personagem. Usando instantâneos
Na base, o alvo dos vizinhos fica no meio do caminho entre a flexão da próxima articulação e o quaternion identidade
Para um quaternion unitário
Transformamos essa flexão de volta para o referencial do pai e a aplicamos a
A pose carregada não é necessariamente a pose de bind
O arquivo salvo do camundongo já tinha cerca de 28° de rotação em sua última articulação da cauda. Estávamos interpretando essa rotação carregada como neutra e depois adicionando o movimento de mola por cima. Uma pose anteriormente animada ou exportada havia se tornado parte permanente do alvo da mola.
Agora o solver recupera as transformações locais neutras das matrizes inversas de bind do esqueleto, quando disponíveis. Se um rig não tiver um auxiliar Tail_End, seu último segmento continuará a tangente de entrada expressa no referencial local do próprio último osso. Copiar um vetor do referencial do pai é incorreto assim que o osso terminal tem uma orientação diferente.
A curvatura para um dos lados tinha outra causa: ela estava presente na geometria de bind real. Portanto, recuperar corretamente a pose de bind preservava o desvio. Agora, por padrão, a simulação usa um arco de repouso centralizado, construído no espaço dos quadris e convertido para o referencial de cada pai corrigido. restCurve pode interpolar de volta a curvatura modelada: 0 é o arco centralizado, 1 preserva a curva criada pelo artista. Isso muda o alvo das molas; não reescreve a malha nem seus pesos de skinning.
Recuperação das transformações de referência. Seja
A decomposição de
Construção do arco centralizado. Seja restCurve, e
Aqui,
A cauda pode tocar o chão; ela não pode levantar o camundongo
O contato com o chão rotaciona um segmento até a interseção entre sua esfera de comprimento e o piso. Simplesmente limitar a altura de uma partícula encurtaria o osso; limitar a altura e depois restaurar seu comprimento pode colocá-lo novamente sob o chão. Deixamos 0,025 unidades do mundo abaixo da linha central para representar a espessura, descartamos a velocidade de contato descendente e amortecemos o deslizamento. Por padrão, o piso plano fica em Y global = 0 e pode ser movido ou desativado. Essa é uma restrição de plano, não uma colisão com terreno ou com a malha completa.
A interseção entre esfera e piso. Escreva
Se a extremidade prevista estiver abaixo do piso, defina
Sua altura é exatamente
Depois das outras projeções de velocidade, toda velocidade descendente restante de uma partícula em contato é removida, e sua velocidade é amortecida:
Esse é um contato inelástico com amortecimento simples, não um modelo de atrito de Coulomb. Ele impede que a gravidade acumule velocidade descendente enquanto a cauda repousa no chão.
Isso resolveu a penetração da cauda, mas havia outros dois pontos em que uma cauda podia fazer os pés flutuarem.
Primeiro, o visualizador posicionava no chão o ponto mais baixo de toda a malha carregada. Se a cauda salva ficasse abaixo das solas, ele levantava o personagem inteiro para acomodá-la. Agora, ao determinar o piso do corpo, o posicionamento do visualizador ignora a pele dominada pela cauda, enquanto o enquadramento da câmera continua incluindo o personagem inteiro.
Segundo, a etapa de aterramento do corpo do retargeter também considerava a cauda. Durante Back Flip, ela elevava a pelve para manter essa pele afastada do chão, embora o solver independente da cauda fosse movê-la depois.
Qual parte da pele pode elevar a pelve? Seja
Aqui,
Para a comparação abaixo, a elevação adicional informada é a diferença entre as trajetórias finais da pelve, não apenas a correção bruta:
Elevação medida da pelve perto do final de Back Flip
Amostramos o mesmo camundongo nos mesmos tempos da animação, alterando apenas se a cauda era incluída no aterramento do corpo. As duas colunas usam as mesmas coordenadas globais do modelo; a diferença isola a altura adicional introduzida ao considerar a cauda.
| Tempo no clipe de 1,93 s | Altura da pelve: cauda considerada | Altura da pelve: cauda excluída | Elevação adicional ao considerar a cauda |
|---|---|---|---|
| 1,16 s | 50,5 cm | 35,0 cm | 15,4 cm |
| 1,55 s | 81,3 cm | 70,3 cm | 11,0 cm |
| 1,84 s | 92,2 cm | 77,2 cm | 15,0 cm |
| 1,93 s | 90,6 cm | 77,2 cm | 13,4 cm |
O personagem deve se elevar ao ficar de pé depois de aterrissar. O erro é a elevação adicional da última coluna, não esse movimento de recuperação intencional. Os valores foram arredondados de forma independente a partir das posições globais amostradas.
Nesse camundongo, excluir a cauda removeu cerca de 15 cm de elevação adicional da pelve no trecho final de Back Flip. Perto do fim, a sondagem do corpo permaneceu a aproximadamente um milímetro de seu piso de referência, em vez de flutuar vários centímetros acima dele. Agora, a pele da cauda não define nem o piso do corpo nem a correção que eleva sua pelve. O solver da cauda apenas rotaciona os ossos da cauda; ele nunca translada o modelo, os quadris ou os pés.
Uma animação pode herdar uma pose antes mesmo de ser reproduzida
O agachamento elevado revelou um problema separado. Geramos os clipes da biblioteca progressivamente, para que o visualizador possa começar a reprodução antes que todos os clipes estejam prontos. O retargeting usava o mesmo esqueleto da reprodução. Entre os cálculos, a prévia podia mover a pelve, e o próximo clipe lia essa pose animada como referência de calibração. Redefinir a pose ao trocar de clipe não podia corrigir uma referência incorreta já incorporada às trilhas geradas.
Agora, o retargeting funciona em cópias privadas do esqueleto, criadas a partir de uma calibração estável capturada antes do início da reprodução. Solicitações posteriores de clipes reutilizam essa referência, e solicitações simultâneas têm ossos separados. Um teste de regressão move e rotaciona deliberadamente os quadris em uso entre os clipes entregues; as trilhas geradas devem permanecer idênticas às de uma execução limpa, e o cálculo não deve alterar a pose em uso. Nem todo movimento visível era um bug. O Climb Idle tem uma pequena oscilação da pelve no loop de origem, com a raiz parada. E uma nova solução do Crawl Idle manteve as mãos do camundongo abaixo da cabeça durante todo o loop; a captura de tela com as mãos levantadas correspondia a um clipe contaminado anterior, em vez de ser uma evidência de que a animação de origem pretendia aquela pose. Comparar a origem, uma nova solução e o resultado em reprodução evitou que achatássemos movimentos intencionais para esconder um erro de calibração.
O que verificamos agora
As verificações abrangem movimentos rápidos dos quadris em cadeias de diferentes comprimentos, flexões mais suaves entre ossos vizinhos, respostas iguais nos lados esquerdo e direito, recuperação da pose de vinculação, um osso terminal rotacionado sem auxiliar e fechamento do loop após o aquecimento. Os testes de piso abrangem agachamento, planos de piso elevados, estabilização e liberação quando os quadris sobem. Regressões separadas verificam que o contato da cauda nunca mova o corpo e que a influência da cauda sobre a malha não possa solicitar a elevação da pelve.
Essas verificações estabelecem invariantes específicos. Elas não substituem a observação do camundongo durante seus movimentos, nem estabelecem novos valores de alongamento para a raposa. Os exemplos ao vivo usam o solver revisado; a tabela anterior da raposa continua sendo um registro da medição original.
O que isso muda para você
Se você criar o rig de um personagem com cauda em cinevva.com/tools/rigger, a cauda será entregue em sua própria cadeia de ossos, o status da tarefa terá uma entrada appendages descrevendo o que foi encontrado e a prévia a movimentará. Modelos processados pela API da plataforma recebem o mesmo arquivo. A integração original no rt/1.1.12 fez com que createAnimator encontrasse os ossos Tail_* e os controlasse sem código adicional; a frequência, o amortecimento, a gravidade e o ângulo de sustentação da mola são opções configuráveis caso você queira uma cauda mais pesada ou mais lenta. Arquivos antigos sem uma cadeia de cauda podem passar novamente pelo processo refazendo o rig. As mudanças de 11 de setembro descritas acima já estão disponíveis nas prévias web da Cinevva. Jogos fixados em uma versão anterior do runtime e clipes exportados anteriormente não são atualizados automaticamente. Os clipes já pré-calculados precisam ser gerados novamente para receber as correções.
No Blender. O add-on executa o mesmo processo na tabela do rig antes de criar a armature, portanto uma cauda processada em sua própria máquina recebe a mesma cadeia com os mesmos nomes. Há uma caixa de seleção Cauda ao lado de Dedos, e o cartão de resultado informa o que foi encontrado.
Fora do nosso runtime. Uma mola em um jogo não ajuda quem abre o arquivo no Blender, Unity ou Unreal, onde a cauda ficaria parada. Por isso, a exportação agora a pré-calcula: cada clipe selecionado é simulado, e as rotações da cauda são amostradas em keyframes reais. O exportador executa o clipe silenciosamente até que a cauda retorne ao ponto em que o processo começou e só então inicia a gravação, pois um ciclo pré-calculado a partir de um estado frio não fecha e a cauda salta quando o loop reinicia. A ponta é intencionalmente o elo mais flexível, portanto seu estado transitório é o que demora mais para se estabilizar, e uma única passagem de aquecimento nem sempre é suficiente.
O processo é deliberadamente conservador. Ele cria uma cadeia apenas para uma parte longa pendurada na pelve. Orelhas, cabelos e mangas não são alterados, assim como qualquer elemento largo no torso: uma versão anterior atribuiu rigidamente uma capa ou saia ao osso do torso, mas vê-la em movimento em uploads reais nos fez mudar de ideia. Um dos casos era uma peça de roupa com 6.540 vértices na cintura, cuja influência o rigger havia distribuído de maneira adequada entre os quadris e as duas coxas; um único osso impediria completamente que ela acompanhasse as pernas. Atribuir uma peça de roupa a um único osso é uma grande alteração no personagem de alguém, feita com base em uma suposição sobre o que aquela peça representa. Por isso, agora é algo que você solicita, e não algo que simplesmente acontece com seu modelo. Não há colisão com as pernas além do plano frontal, nem balanço em idle quando o personagem está parado; assim, a cauda de uma raposa em pé permanece quieta em sua pose sustentada. Esses são os próximos dois itens da lista, juntamente com o mesmo tratamento para asas, que exigem uma pose de repouso e uma mola diferentes.