O que você pode fazer com o XML de fases

O XML de fases de Happy Wheels permite importar criações compartilhadas para o Editor de Fases sem precisar reconstruir cada objeto à mão. Ele representa os objetos e as configurações da fase em texto estruturado, sendo útil para compartilhar criações, estudar como os objetos funcionam e importar artes geradas.

Também chamado de LevelXML ou Level Data, esse texto contém registros de formas, itens especiais, juntas, gatilhos e outros componentes de uma fase. Cada objeto pode ter várias propriedades, então até uma cena simples pode gerar bastante código. Você não precisa entender todas as propriedades para importar uma fase completa e funcional.

É importante distinguir uma fase jogável dos seus dados editáveis. O título de uma fase, uma captura de tela ou um link público para jogar não contém, por si só, o XML que você pode colar no editor. Comece com os dados de uma criação sua ou com um XML compartilhado por outro criador. Este guia se concentra no editor da versão para navegador.

Happy Wheels screenshot 5
Image: Steam

Importe e edite os dados da fase

O procedimento básico é copiar o texto completo do LevelXML e colá-lo na caixa de importação de dados do Editor de Fases. As tags externas são importantes: os dados precisam começar com a tag <levelXML> e terminar com a tag correspondente </levelXML>.

Siga esta sequência para facilitar a identificação de erros:

  1. Guarde uma cópia sem alterações. Preserve o XML original antes de mudar valores, principalmente ao trabalhar com uma criação grande.

  2. Abra o Editor de Fases. Acesse Happy Wheels no Totaljerkface.com. O site precisa de JavaScript para funcionar.

  3. Copie os dados completos. Inclua as tags de abertura e fechamento. Não copie os títulos da página nem os textos explicativos ao redor.

  4. Cole na caixa de importação de dados da fase. Confira se você copiou o XML em si, e não um link para onde ele está.

  5. Inspecione a cena importada. Confira a posição dos objetos, o personagem inicial e o plano de fundo antes de fazer outras alterações.

  6. Teste a fase. Uma importação bem-sucedida não garante que todas as colisões, juntas ou objetos móveis funcionem como esperado.

  7. Mude uma coisa de cada vez. Faça uma pequena edição, importe ou teste novamente e compare o resultado com o original.

Para o primeiro teste, use uma fase pequena que você já conheça bem. É mais fácil avaliar a mudança de posição de um objeto do que alterar várias propriedades desconhecidas em uma cena complicada.

Um XML antigo pode não ter configurações introduzidas depois que ele foi gerado. A referência de LevelXML da Happy Wheels Wiki recomenda carregar e salvar os dados novamente quando faltar uma configuração esperada. Guarde a cópia original durante esse processo para poder comparar as versões.

Video: Happy Wheels gameplay and trailer

Entenda a estrutura do XML

O LevelXML organiza os diferentes tipos de conteúdo da fase em seções reconhecíveis. Conhecer essas seções ajuda a encontrar a parte certa do documento sem tratar todas as propriedades numeradas como se fossem equivalentes.

Componente XMLO que representa
<levelXML>...</levelXML>O contêiner externo dos dados da fase.
<shapes>Registros de formas, incluindo formas geométricas, polígonos e arte.
<specials>Itens especiais posicionados na fase.
<joints>Dados das juntas, incluindo conexões feitas com a ferramenta Pin Joint.
<triggers>Dados dos gatilhos associados à ferramenta Trigger.
<![CDATA[...]]>Uma seção usada para armazenar o conteúdo de texto exibido.

Os textos merecem atenção especial. As palavras legíveis ficam dentro de uma seção CDATA, por isso têm uma aparência diferente dos atributos numerados usados por muitos objetos. Ao editar um texto, preserve o XML ao redor e os marcadores de CDATA.

Os campos a seguir são um bom ponto de partida. O contexto importa: uma propriedade numerada no registro de uma forma não deve ser interpretada automaticamente da mesma maneira em todos os itens especiais.

Campo ou atributoSignificado
x e y da faseAs coordenadas iniciais do personagem principal.
c da faseO personagem principal selecionado.
f da faseIndica se o uso do personagem selecionado é obrigatório; t significa verdadeiro e f significa falso.
h da faseIndica se o veículo do personagem fica oculto.
bg da faseSeleção do cenário de fundo: 0 é vazio, 1 são colinas verdes e 2 é cidade.
bgc da faseCor de fundo expressa como um valor RGB decimal.
p0 e p1 do objetoAs coordenadas horizontal e vertical do objeto.
p2 e p3 da formaA largura e a altura da forma.
t da formaTipo de forma: retângulo 0, círculo 1, triângulo 2, polígono 3 ou arte 4.

Alguns valores são ajustados durante a importação. As coordenadas dos objetos são truncadas para duas casas decimais. As dimensões de retângulos e círculos são convertidas em números inteiros e limitadas ao intervalo documentado de 5 a 5.000.

Os tipos de forma também afetam o comportamento. Transformar um objeto de arte em um polígono pode causar colisões incorretas nas partes côncavas. Por isso, o contorno visual e o comportamento físico devem ser inspecionados separadamente após a edição.

Happy Wheels screenshot 6
Image: Steam

Corrija problemas de importação e exibição

Quando uma importação falhar ou gerar uma cena inesperada, comece a investigar pela menor alteração. Primeiro, teste o XML sem alterações e depois compare-o com a versão editada.

ProblemaO que verificar
Os dados não são importadosConfirme se as tags completas de abertura e fechamento de levelXML estão presentes e se o texto não foi cortado.
Um exemplo copiado não carregaConfira se ele é apenas um objeto ou trecho de uma seção, em vez dos dados completos de uma fase.
Uma configuração esperada está ausenteO XML antigo pode ter sido gerado antes da criação dessa configuração; carregue e salve a fase novamente.
Uma forma desaparece durante a importaçãoConfira o valor do tipo da forma. Tipos fora do intervalo aceito não são importados.
O editor fica lento após adicionar uma arteA conversão de imagens pode criar muitos objetos; tente uma imagem menor ou mais simples.

As tags externas são necessárias, mas adicioná-las a um trecho qualquer não garante que ele contenha tudo o que uma fase precisa para funcionar. Um exemplo de retângulo pode explicar um objeto e deixar de fora as informações da fase ao redor dele.

Se um objeto aparecer, mas se comportar de outra maneira, confira o que você alterou. Mudar o tipo de uma forma pode afetar as colisões, enquanto mudar sua posição altera onde o objeto fica. Teste cada ajuste separadamente.

Da mesma forma, um atributo ausente nem sempre indica dados danificados. O atributo de interação das formas, i, por exemplo, aparece em formas não interativas ou objetos de arte como i="f"; formas interativas e polígonos podem omiti-lo. Compare objetos equivalentes antes de adicionar um campo que parece estar faltando.

Encontre criações compartilhadas e converta imagens

Criadores têm usado o Pastebin para distribuir dados de fases, enquanto páginas da comunidade e perfis de criadores podem ajudar a descobrir projetos relacionados. Procure uma publicação ou um arquivo para download que contenha o XML da criação, sem presumir que toda fase listada inclui dados editáveis.

Por exemplo, o perfil de the random maker lista “Level XML (Artwork)”, de 27 de setembro de 2014. O perfil de Protoxon lista “Props for Levels Xml”, de 18 de maio de 2021. Essas entradas identificam criações relevantes, mas as listagens dos perfis não são documentos XML.

O arquivo de fases de Happy Wheels também lista entradas como “LevelXML #4 [Ferris Wheel]” e “LevelXML #6 [Candyland]”. Use esses nomes como pistas para encontrar conteúdo e confira o que cada entrada realmente oferece.

A conversão de imagens é outro uso do LevelXML. Em vez de posicionar manualmente cada peça colorida, um conversor gera objetos da fase a partir de uma imagem.

ProjetoMétodo documentado
Happy Wheels Picture, de PixelsuftUm projeto no GitHub descrito como um site para converter imagens em dados XML de fases de Happy Wheels.
Conversor de imagens de PeturDarriUm projeto de 2014 que inicialmente usava retângulos de 5 por 5, com uma versão posterior descrita como usando polígonos de 2 por 2.

Esses métodos transformam imagens em objetos que o editor consegue representar. Mais detalhes visuais podem significar mais objetos, e PeturDarri relatou especificamente que o tamanho da imagem poderia causar lentidão significativa tanto no editor quanto no jogo.

Para facilitar sua primeira conversão:

  • Escolha uma imagem pequena com uma silhueta bem definida.
  • Comece com cores simples e poucos detalhes pequenos.
  • Importe a arte antes de construir uma cena complicada ao redor dela.
  • Teste o desempenho tanto ao jogar quanto durante a edição.
  • Guarde os dados originais da fase antes de adicionar os objetos gerados.

Perguntas frequentes

O que significa “happy wheels level xml”?

É o texto estruturado usado para descrever uma fase de Happy Wheels. LevelXML e Level Data são nomes alternativos para ele. O Editor de Fases consegue ler esse texto para reconstruir objetos e configurações.

Posso obter o XML de qualquer link público de uma fase?

Um link público para jogar não é, por si só, um conjunto de dados editáveis da fase. Procure um XML compartilhado pelo criador ou peça a ele a criação específica de que você precisa. Discussões da comunidade sobre recursos antigos de importação não comprovam a existência de um método atual para extrair todas as fases publicadas.

Posso colar uma única forma na caixa de importação?

O registro de uma forma é apenas parte do documento de uma fase. Não presuma que um exemplo de objeto isolado será importado sozinho. Use os dados completos de uma fase funcional como ponto de partida e faça alterações pontuais com cuidado.

Um conversor de imagens preserva todos os detalhes?

O nível de detalhe depende de como o conversor representa a imagem e de quantos objetos ele gera. As versões documentadas de PeturDarri usavam pequenos retângulos e polígonos. Mais detalhes podem exigir mais processamento do editor, então comece com uma imagem pequena e teste o resultado.

Essas descrições dos campos se aplicam sem alterações ao iOS?

Não presuma que a compatibilidade seja idêntica. A Happy Wheels Wiki documenta o XML de fases do iOS separadamente, incluindo seus próprios dados iniciais e registros de itens, como um painel de câmera lenta. Consulte a documentação da versão em que você está editando antes de transferir ou alterar dados específicos de uma plataforma.