Repolode
Friedrich-M

Friedrich-M/UniMate

Um modelo unificado de texto para movimento que gera animações para esqueletos rigados arbitrários, de humanoides a quadrúpedes, aves, peixes e estruturas semelhantes a insetos.

Estrelas
2,006
Forks
217
Issues abertas
6
Último commit
há 12 dias

O que é?

O UniMate gera movimentos 3D articulados a partir de um prompt de texto e de um asset rigado. Ele funciona com esqueletos de diferentes topologias, sem retreinamento para cada esqueleto nem otimização no momento do teste. O modelo é baseado em flow matching e treinado com o UniML3D, um dataset com 13.769 clipes de movimento associados a textos, distribuídos por 7.430 esqueletos que abrangem estruturas bípedes, quadrúpedes, aviárias, marinhas, semelhantes a insetos, serpentinas e de objetos rígidos.

O repositório inclui o pipeline de processamento dos dados do dataset, código de treinamento baseado em configurações JSON e Accelerate, além de scripts de inferência que animam esqueletos do dataset ou seus próprios assets rigados em GLB, glTF ou FBX. A ferramenta rig_preprocess usa um LLM para rotular as juntas e permite revisá-las antes de criar um asset. Há checkpoints disponíveis no Hugging Face.

O mesmo modelo também permite interpolar movimentos entre keyframes, editar movimentos com orientação por texto — mantendo as juntas selecionadas e gerando novamente as demais — e expandir movimentos encadeando vários prompts em um único clipe mais longo.

Recursos principais

  • 01Gera movimentos para esqueletos arbitrários a partir de um prompt de texto, sem retreinamento para cada esqueleto
  • 02Oferece suporte a estruturas rigadas humanoides, quadrúpedes, aviárias, marinhas, semelhantes a insetos e de objetos rígidos
  • 03Disponibiliza código de treinamento e inferência, checkpoints lançados e o dataset UniML3D
  • 04Importa seus próprios assets rigados em GLB, glTF ou FBX usando uma ferramenta de pré-processamento que rotula as juntas
  • 05Oferece suporte à interpolação entre keyframes, à edição e à expansão de movimentos, sem treinamento adicional

Casos de uso

  • Animar personagens ou criaturas 3D personalizados a partir de prompts de texto para jogos ou pré-visualização de filmes
  • Gerar movimentos para assets não humanoides, como quadrúpedes, aves ou peixes
  • Pesquisar a geração de movimentos condicionada por texto em topologias variadas de esqueleto
  • Preencher movimentos entre keyframes ou editar partes de uma animação existente

Início rápido

  1. 1

    Crie o ambiente conda com Python 3.10

    conda create -n unimate python=3.10 -y
  2. 2

    Ative o ambiente

    conda activate unimate
  3. 3

    Fixe o setuptools em uma versão anterior à 81

    pip install "setuptools<81"
  4. 4

    Instale os requisitos do projeto

    pip install -r requirements.txt --no-build-isolation

Antes de usar

  • A reprodução completa exige o Truebones ZOO motion pack, um recurso comercial que precisa ser comprado e não pode ser redistribuído.
  • O treinamento foi configurado para uso de GPU com Accelerate, incluindo execuções com várias GPUs, portanto não é um fluxo de trabalho adequado para CPU.
  • Foram disponibilizados checkpoints de prévia, que serão substituídos por novos checkpoints; por isso, os resultados podem mudar.

Tópicos

Perguntas frequentes

O que é UniMate?
Um modelo unificado de texto para movimento que gera animações para esqueletos rigados arbitrários, de humanoides a quadrúpedes, aves, peixes e estruturas semelhantes a insetos. O UniMate gera movimentos 3D articulados a partir de um prompt de texto e de um asset rigado. Ele funciona com esqueletos de diferentes topologias, sem retreinamento para cada esqueleto nem otimização no momento do teste. O modelo é baseado em flow matching e treinado com o UniML3D, um dataset com 13.769 clipes de movimento associados a textos, distribuídos por 7.430 esqueletos que abrangem estruturas bípedes, quadrúpedes, aviárias, marinhas, semelhantes a insetos, serpentinas e de objetos rígidos.
UniMate é gratuito? Qual é a licença?
UniMate é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
UniMate ainda é mantido?
Manutenção ativa. O último commit de UniMate foi em 8 de out. de 2026.
Para que posso usar UniMate?
Animar personagens ou criaturas 3D personalizados a partir de prompts de texto para jogos ou pré-visualização de filmes Gerar movimentos para assets não humanoides, como quadrúpedes, aves ou peixes Pesquisar a geração de movimentos condicionada por texto em topologias variadas de esqueleto Preencher movimentos entre keyframes ou editar partes de uma animação existente
Como instalar UniMate?
Crie o ambiente conda com Python 3.10: conda create -n unimate python=3.10 -y Ative o ambiente: conda activate unimate Fixe o setuptools em uma versão anterior à 81: pip install "setuptools<81" Instale os requisitos do projeto: pip install -r requirements.txt --no-build-isolation
Onde consigo UniMate?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Friedrich-M/UniMate

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados