O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Cliente

Como adicionar suporte a novos pets/muuns visuais no cliente de MU

Guia completo para adicionar novos pets e muuns visuais ao cliente de MU Online, do modelo .bmd e texturas até o registro do item e a sincronia com o servidor.

BR Bruno · Atualizado em 6 fev 2025 · ⏱ 24 min de leitura
Resposta rápida

Pets e muuns visuais são um dos ganchos de personalização mais fortes de um servidor de MU Online: um bichinho novo que acompanha o personagem, com efeito próprio, vira desejo de item de cash shop ou recompensa de evento. Mas "adicionar um pet" não é uma tarefa só de cliente — é um trabalho de duas

Pets e muuns visuais são um dos ganchos de personalização mais fortes de um servidor de MU Online: um bichinho novo que acompanha o personagem, com efeito próprio, vira desejo de item de cash shop ou recompensa de evento. Mas "adicionar um pet" não é uma tarefa só de cliente — é um trabalho de duas pontas que precisa casar o visual (modelo, textura, animação no cliente) com a existência e a validação do item (no servidor). Este guia avançado percorre o fluxo inteiro: entender o pipeline de modelos .bmd, preparar textura e animação, registrar o modelo no cliente, garantir que o item exista no servidor e testar a sincronia. É trabalho técnico, então vá com calma e faça backup a cada etapa.

Pré-requisitos

  • Servidor e cliente funcionando de forma pareada. Se ainda não tem essa base, monte primeiro seguindo o guia de como criar servidor de MU Online.
  • Ferramenta de importação/exportação de .bmd compatível com a sua season (plugins de 3ds Max, Blender ou ferramentas standalone de conversão BMD).
  • Conversor de texturas MU (.ozj/.ozt/.ozb).
  • Editor de imagem (GIMP/Photoshop) para as texturas.
  • Editor da tabela de itens do seu emulador (ItemList/Item.bmd ou equivalente) e acesso ao banco/config do servidor.
  • Backup da pasta Data/ do cliente e das configs de item do servidor.
Atenção: Modelos 3D mal exportados são a causa nº 1 de crash de cliente ao redor de pets. Nunca teste um .bmd novo direto no cliente de produção — valide em uma cópia isolada primeiro.

As duas metades: cliente e servidor

Antes de tocar em qualquer arquivo, tenha essa divisão clara na cabeça:

MetadeO que fazOnde vive
ClienteDesenha o pet: modelo 3D, textura, animação, efeitoPasta Data/ do cliente (arquivos .bmd, .ozt)
ServidorReconhece o item, valida posse, aplica bônus/efeitoTabela de itens + config do emulador

Se você fizer só a metade do cliente, o pet pode até aparecer para você, mas o servidor não sabe que aquele item existe — ele não persiste no banco, não pode ser dropado/comprado corretamente e outros jogadores podem não ver nada. Se você fizer só a metade do servidor, o item existe mas aparece "invisível" ou como um modelo genérico. Pet completo = as duas metades casadas.

Como o cliente renderiza um pet/muun

O MU Online carrega modelos 3D no formato .bmd, que empacota malha, esqueleto, animações e referências de textura. Cada modelo tem um índice numérico que o motor usa para saber qual arquivo carregar quando um item ou criatura precisa ser desenhado.

O fluxo simplificado (conceito real, detalhes variam por season/cliente):

  1. O item equipado/ativo informa um tipo/índice ao motor;
  2. O motor mapeia esse índice para um arquivo .bmd (ex.: em Data/Item/ ou Data/Monster/);
  3. O .bmd referencia texturas por nome, que o motor busca na mesma pasta;
  4. O motor toca a animação apropriada (idle, andar) do esqueleto embutido no .bmd.
Nota: Os caminhos e índices são exemplos e variam por season/cliente. Muuns modernos podem viver em uma pasta específica de muun com sua própria tabela de índices. Sempre inspecione como os pets existentes do SEU cliente estão organizados antes de adicionar o novo.

Estratégia recomendada: partir de um modelo existente

Modelar um pet do zero, exportar com esqueleto e animações corretos e não crashar o cliente é difícil. A abordagem de menor risco é derivar de um muun/pet que já funciona:

  • Você garante que esqueleto e animações são válidos (herdados do original);
  • Você troca apenas o que dá identidade nova: a textura e, opcionalmente, a malha;
  • O risco de crash cai drasticamente.

Só vá para um modelo totalmente novo se tiver experiência com o pipeline .bmd da sua season.

Passo 1 — Preparar o modelo

Opção A: recolorir/retexturizar um pet existente (recomendado)

  1. Localize o .bmd e as texturas do pet base (ex.: um muun existente em Data/...);
  2. Faça backup de tudo;
  3. Converta a textura .ozt/.ozj para .png/.jpg;
  4. No editor, recolora ou repinte a textura mantendo o tamanho e o layout do mapa UV;
  5. Reconverta para o formato original;
  6. Se você quer um item SEPARADO (não substituir o original), copie o .bmd e a textura com nomes/índices novos e ajuste as referências internas de textura no .bmd para o novo nome.

Opção B: importar um modelo novo

  1. Importe uma base .bmd da sua season na ferramenta 3D (para herdar o esqueleto);
  2. Substitua/ajuste a malha mantendo o rig (bones) compatível;
  3. Ajuste o mapa UV para sua textura;
  4. Exporte de volta para .bmd com o mesmo padrão de animações;
  5. Teste o modelo isolado antes de registrar.
Dica: Mantenha a contagem de bones e a nomenclatura de animações iguais às do modelo base. É a incompatibilidade de esqueleto/animação que mais causa crash ou pet "congelado" em T-pose.

Passo 2 — Preparar e posicionar a textura

  1. Crie a textura no tamanho esperado pelo mapa UV (potências de 2 são o mais seguro: 128x128, 256x256 — varia por season/cliente);
  2. Use .ozt se precisar de transparência (recortes, penas, tecido); .ozj para texturas sólidas;
  3. Nomeie a textura exatamente como o .bmd a referencia;
  4. Coloque a textura na mesma pasta que o motor espera para aquele modelo;
  5. Confira no editor que não há canal alpha "sujo" que deixaria partes invisíveis.

Passo 3 — Registrar o modelo no cliente

O cliente precisa associar o índice do item ao seu .bmd. Como isso é feito varia:

  • Cliente com tabela externa: edite o arquivo de mapeamento (ex.: uma tabela de itens/muuns em texto ou binário) adicionando a linha do novo índice apontando para seu .bmd e textura;
  • Cliente com mapeamento no executável: você precisa do source do cliente ou de uma ferramenta da distribuição para inserir o novo índice.

Passos gerais no caso de tabela externa (exemplo, varia por season/cliente):

  1. Abra a tabela de itens/modelos do cliente;
  2. Localize o intervalo de índices de pets/muuns;
  3. Adicione uma entrada nova com um índice livre (não reutilize um índice ocupado, ou você substitui outro item);
  4. Aponte a entrada para o nome do seu .bmd e da textura;
  5. Salve e recarregue o cliente.
Atenção: Escolher um índice já usado sobrescreve o pet original para todos os jogadores. Mantenha uma planilha dos índices customizados que você já ocupou para nunca colidir.

Passo 4 — Criar o item no servidor

Agora a metade do servidor. O item do pet precisa existir na tabela de itens do emulador, com o mesmo índice/section que o cliente espera.

  1. Abra o editor de itens do seu emulador (ItemList, Item.txt, ou tabela no banco — varia por emulador);
  2. Adicione o item do pet no mesmo section/index que você usou no cliente;
  3. Defina propriedades: nome, se é um muun/pet, duração (se for temporário), bônus associados;
  4. Se o pet dá efeito de status (ex.: bônus de ataque/defesa), configure isso na parte de efeitos de item/muun do servidor;
  5. Salve e recarregue as configs do servidor.
Nota: O índice do item no servidor e o índice do modelo no cliente precisam ser coerentes com o mapeamento da sua season. Em algumas distribuições é uma correspondência direta; em outras há uma tabela intermediária. Alinhe os dois lados usando um pet existente como referência de como os números se relacionam.

Passo 5 — Testar a sincronia

  1. Gere o item para uma conta de teste (via comando de GM ou drop controlado);
  2. Equipe/ative o pet e verifique:
  • O modelo aparece corretamente (não invisível, não caixa, não T-pose);
  • A textura está certa (sem partes brancas/pretas indevidas);
  • A animação de idle e de andar tocam;
  • O efeito/bônus do servidor é aplicado;
  1. Entre com uma segunda conta e confirme que o segundo jogador também vê o pet do primeiro;
  2. Faça logout/login e verifique que o item persiste no banco.

O teste com segunda conta é decisivo: é ele que prova que a metade do servidor está funcionando, e não só o seu cliente customizado.

Erros comuns e soluções

ErroCausa provávelSolução
Pet aparece invisívelTextura não encontrada ou nome erradoConferir nome/pasta da textura referenciada no .bmd
Pet aparece como caixa/branco.bmd carregado sem textura válidaVerificar conversão da textura e o mapa UV
Cliente crasha ao invocar o petModelo mal exportado / bones incompatíveisReexportar a partir de uma base válida da season
Pet em T-pose ou congeladoAnimações ausentes/incompatíveisHerdar o conjunto de animações do modelo base
Só você vê o petItem não existe/registrado no servidorAdicionar o item na tabela do servidor com índice coerente
Pet some após logoutItem não persistido no bancoConfirmar que o item é válido e reconhecido pelo servidor
Substituiu outro pet sem quererÍndice reutilizadoUsar um índice livre e manter planilha de índices custom
Textura com partes transparentes erradasCanal alpha incorreto no .oztRevisar o alpha e reexportar; usar .ozj se não precisar de alpha

Distribuir o pet para os jogadores

Como o visual vive no cliente, todos os jogadores precisam receber os novos arquivos, senão só quem tem o cliente atualizado vê o pet.

# Empacotar os arquivos novos do pet (PowerShell + 7-Zip)
& "C:\Program Files\7-Zip\7z.exe" a -t7z -mx=9 patch-pet.7z Data\

# Hash de integridade para publicar
Get-FileHash patch-pet.7z -Algorithm SHA256 | Select-Object Hash

Adicione os arquivos do modelo e da textura à lista do launcher/updater para que a atualização chegue a todos automaticamente. Só libere o item no cash shop ou em eventos depois que o patch de cliente já estiver distribuído — senão os jogadores compram um pet que ninguém consegue ver.

Checklist de lançamento

  • Backup da pasta Data/ do cliente e das configs de item do servidor
  • Modelo derivado de uma base válida da season (esqueleto/animações herdados)
  • Textura criada no tamanho do mapa UV e no formato certo (.ozt/.ozj)
  • Textura nomeada exatamente como o .bmd a referencia, na pasta correta
  • Índice novo escolhido de um intervalo livre (sem colidir com pets existentes)
  • Modelo registrado no cliente (tabela externa ou source)
  • Item criado no servidor no section/index coerente com o cliente
  • Efeito/bônus do pet configurado no servidor
  • Testado: modelo, textura, animação e efeito com uma conta
  • Validado com uma segunda conta (outro jogador vê o pet)
  • Item persistindo após logout/login
  • Patch de cliente distribuído via launcher ANTES de liberar o item
  • Planilha de índices customizados atualizada

Perguntas frequentes

Adicionar um pet visual é só mexer no cliente?

Não. O visual (modelo, textura, animação) vive no cliente, mas o item precisa existir e ser reconhecido pelo servidor também. Se só o cliente conhece o pet, ele aparece para quem tem o cliente customizado, mas o servidor não valida o item e outros jogadores podem não ver nada.

Qual formato os modelos de pet usam?

O MU Online usa arquivos .bmd para modelos e animações 3D, com texturas em .ozj/.ozt/.ozb. O muun/pet segue o mesmo padrão dos demais modelos do jogo. Os índices e nomes exatos variam por season/cliente.

Posso reaproveitar o modelo de um pet existente?

Sim, e é o caminho mais seguro. Recolorir a textura de um muun já existente ou trocar apenas o material dá um pet novo visualmente sem precisar modelar do zero, e reduz muito o risco de crash por modelo mal exportado.

Por que meu pet aparece invisível ou como uma caixa?

Geralmente o modelo .bmd foi carregado mas a textura não foi encontrada, ou o índice do modelo não bate com o registrado. Confira se a textura está na pasta certa, com o nome exato, e se o índice do .bmd corresponde ao que o cliente espera.

Preciso do source do cliente para adicionar um pet?

Depende da season. Em alguns clientes há tabelas/arquivos externos que mapeiam itens a modelos, e dá para adicionar sem recompilar. Em outros, o mapeamento está no executável e você precisa do source ou de ferramentas específicas da distribuição.

BR
Editor de eventos, mapas e itens

Bruno é especialista em eventos, mapas, bosses e economia de itens do MU Online. Documenta cada detalhe com base em jogo real.

Continue lendo

Artigos relacionados