Dropdown Menu

5 de abril de 2020

Como inserir gráficos em sua SMW hack!


Então você chegou no momento épico de querer usar gráficos novos em sua hack, não é? Se cansou daquele baunilha sem graça e quer algo mais agressivo, radical e que vai conquistar altas gatas, hm? Fique sabendo que se você tiver alguma dúvida, meu querido, a partir de agora não terá mais. Prepare-se para um (longo) e definitivo tutorial sobre gráficos, yeah!

"O procedimento padrão de quem trabalha com gráficos."

Antes de você se jogar de cabeça no tutorial de hoje, primeiro você deve efetuar um procedimento único e importante caso queira tacar novos gráficos em sua hack. Está vendo a imagem acima? Bem familiar, certo? Pois bem, clique no cogumelo vermelho até o amarelo, apenas uma vez. Isso irá extrair\-re-inserir os gráficos da sua hack, criando duas pastas. Pronto? Vamos lá!

GFX e ExGFX - Apenas o básico:

Como vocês perceberam, uma vez que o procedimento básico no começo do tutorial foi feito duas sub-pastas muito loucas irão surgir na pasta do seu projeto: GFX e ExGFX. A diferença entre elas é bem simples:
GFX[xx]: São os gráficos usados por padrão no jogo (ex: blocos, koopas, Yoshi, etc).
ExGFX[xx]: São os gráficos novos que iremos adicionar em nossa hack. O termo ex significa "exclusivo".

OBS: Nos exemplos acima, yy corresponde ao número do arquivo a ser inserido na ROM. Eles vão desde Exgfx80.bin até ExgfxFFF.bin (mas relaxe que você não vai precisar de tudo isso, lol).

"Tá vendo a última opção da imagem? Marque ela, também."

Se você é do tipo super organizado e deseja trabalhar com algo mais compacto recomendo deixar a última opção acima marcada em seu Lunar Magic. Isso irá transformar todos arquivos da pasta GFX em apenas um, chamado AllGFX.bin. Pessoalmente essa é uma ótima forma de trabalhar com os gráficos, uma vez que você não precisa decorar qual gráfico é qual: basta editar, salvar e inserir.

Sistema de camadas do SMW:

"Demonstração simples de como camadas funcionam no Lunar Magic"

Antes de procurar um gráfico maneiro na Smwcentral (ou até mesmo desenhar o seu), você precisa ter noção da forma que o Lunar Magic (e a maioria dos jogos) organizam seus gráficos, no caso, por Layers (camadas). Elas são:
Foreground: Também conhecido como chão\piso, são os gráficos que irão aparecer na primeira camada (Layer 1) ou (Layer 2, casos específicos). Elas podem ser blocos, decorações, lava, etc.
Background: Famosa "imagem que fica no fundo". Não interage com sprites e geralmente se localiza no Layer 2.
Layer 3: Ao contrário dos gráficos anteriores, ela possui um limite de 4 cores, já que usa parte da Statusbar (HUD). Ela pode ficar atrás do cenário como na frente do Foreground.
Sprites: Literalmente serve pra mostrar os sprites na tela e nada mais. Sério, só isso.

Conhecendo o menu dos gráficos:

"O vermelho insere Foreground\Background\Sprites e o verde, Layer 3. Simples, não?"

Clicando no vermelho abre uma janela com opções em cinza. Marque a opção que permite o uso de gráficos personalizados, tornando assim acessível a manipulação dos slots, como podem ver abaixo:

 

Zona de perigo extremo: Não mexa aqui senão cê vai morre e ainda leva a hack junto.
Zona do cenário: É aqui onde o Background se localiza. Em alguns casos o cenário pode ser tão grande que talvez seja necessário usar parte do slot BG2 BG3.
Zona do chão e decorações: É bem aqui onde o Foreground é inserido. Geralmente apenas o FG3 é usado, mas caso tenha muita coisa pode usar os outros dois de baixo, também.
Zona dos sprites: Aqui ficam os gráficos dos sprites. 90% das ocasiões você irá apenas editar o SP3\SP4, já que certos sprites do jogo, como Chucks e Boo's utilizam esse espaço.
Zona da Ex-animation: Slot para animação personalizada, mas isso é papo pra outro tutorial, ok?

Bom, agora que já sabemos o básico da coisa, está na hora de inserir nossos gráficos, yeah!
Recomendo efetuarem um backup da ROM antes disso, caso queiram ter mais confiança.

Conhecendo o editor de tiles 8x8:

"Aquele menu maroto de arrastar tiles"

Se você não conhece esse meme é bem simples: ele é um menu acessível pela Map16 e pela toolbar do Lunar Magic. Ele é usado tanto para editar os gráficos inseridos (basta você pressionar F9 para salvar) como para criar uma map16.

Conhecendo a MAP16:


"MAP16 é um tabuleiro e os blocos são as peças..."

A Map16 se refere a um mapa avá composto de tiles em 16x16. Esse conjunto de tiles formam um mapeamento do qual a ROM lê e identifica como algo existente e pronto para uso. Ela é organizada em páginas e cada página possui um bloco pronto para ser mapeado, usando funções e gráficos. Essas funções são:
Act: O que o bloco faz. Se for 25 ele será invisível, 130 é sólido, 12F machuca o player, etc.
Palette: Que linha de cores ele irá usar, sendo que estão disponíveis apenas 7.
PrioritySe estiver ON, o gráfico vai aparecer na frente dos sprites. Bacana, né?
Page: É a página da qual o bloco se encontra (no exemplo acima é 01, apesar de mostrar 80).

"Ok, mas... e isso aqui?"

Isso é o salva-vidas de todo SMWhacker. Através desses blocos você consegue importar e exportar a MAP16, seja de algum gráfico específico da página ou por que não, o MAP16 inteiro. Eles funcionam da seguinte maneira:
Yellow Question Block: Exportam/importam um gráfico naquela exata seleção da página.
Purple Question Block: Fazem a mesma coisa anterior, porém com a MAP16 da hack inteira.

Trocando o gráfico de um sprite:


"Vamos brincar um pouco agora, hehe..."

A coisa mais simples que você pode fazer é, de fato, trocar o gráfico de um sprite. Seja ele original ou custom, o método é simples e irá sempre respeitar a posição do gráfico. Funciona assim:
- Arraste o AllGFX.bin do seu projeto no YY-CHR (ou Graphic Editor, tanto faz)
- Escolha qualquer coisa que deseja trocar no gráfico. Ex: Yoshi.
- Terminou o serviço? Então salve o arquivo.
- Abra a sua ROM no Lunar Magic e clique no cogumelo verde para re-inserir os gráficos.
- Pronto! Troque de fase para ver a mudança. Se possível, teste in-game também.

Ok, agora vamos inserir gráficos per-level? O método não é diferente do anterior. Veja:
- Crie um Exgfx.bin, no caso, uma cópia daquele set de sprites que deseja editar.
- Faça as alterações necessárias no arquivo, respeitando a posição do sprite.
- Clique no amarelo para re-inserir os gráficos em sua hack.
- Escolha um level editável da sua preferência no Lunar Magic.
- Selecione a ID do gráfico no slot desejado. Ex: Exgfx101.bin no Slot1.
- Pronto! Agora é só testar no emulador para ver se ficou tudo certo.

Inserindo o seu primeiro Foreground:

"Você vai usar bastante esses dois."

Inserir o famoso chão nosso de cada dia não tem mistério até porque ele vem sempre no mesmo slot: FG3. Existem casos não tão raros assim em que o BG2 é usado também, apesar dele ser indicado como slot pra cenário. Geralmente o pessoal taca decorações nesse slot ou ExAnimation (se bem que não vou falar disso agora), ás vezes BG3 é usado como parte do foreground, mas ainda é raro.
Inserir o seu foreground é bem simples (é similar a BG), saca só:
- Jogue os gráficos na pasta de ExGfx e recarregue os gráficos de sua hack
- Vá no level desejado e insira os gráficos no slot conforme o autor pede.
- Importe a Map16 correspondente assim como a Shared Palette.
- Salve tudo, além dos gráficos e o level em si.
- Beba água.

Obs: Sempre que inserir um Foreground novo (e isso vale pra Background também) procure ver de antemão se não existe o risco do gráfico sobrepor outro espaço reservado de outro level. Se isso acontecer será necessário usar a função Remap Map16. O mesmo vale pra cores: você vai precisar editar o Map16 do gráfico pra usar outra paleta e fazer as modificações necessárias.

Inserindo o seu primeiro Background:

"Sim eu usei a mesma imagem anterior, satisfeito? lol"

Pra começo de conversa todo cenário vai sempre começar do mesmo lugar: BG1. Em certos casos ele pode comer o slot BG3 inteiro (pra sobrar espaço para as decorações do BG2) ou se a obra for uma Monalisa vai comer todos os 3 slots disponíveis. Sempre que possível fique atento:
- Quais slots ele ocupa.
- Quantas linhas de cores ele usa e QUAIS são (ainda tem o foreground, lembra?).
- Se você não se esqueceu de beber água.

Inserindo o seu primeiro Layer 3:

"Layer 3? Sério?"

Rapaz, agora que a porca torce o rabo. Inserir layer 3 é um pouco mais hardcore, ainda mais se você não tem idéia do que tá fazendo no começo. Tudo que você precisa saber é qual arquivo tá sendo inserido e se ele respeita o limite de 2kb por slot senão já sabe: boom chaka laka boom. Portanto de uma forma resumida:
Zona verde: Aqui é onde você vai trocar os gráficos que serão carregados durante o level, geralmente afeta a HUD, caixas de texto (o texto é layer 3 sabia?) e tanto faz lol.
Zona do Tilemap: Se você quer inserir tipo assim as nuvens de Yoshi Island simplesmente você taca o gráfico na ROM depois insere a tilemap (pra fazer uma você precisa acessar o editor de mapas e carregar o Layer3 do level em si).

Já em relação ao uso da tilemap aka File Size você possui 3 opções:
512x512: Vai ser inserido como 8KB e vai comer como 2 slots inteiros de Exgfx.
512x256: Vai ser inserido como 4KB e vai comer apenas a metade do anterior.
256x256: Vai ser inserido como 2KB e vai comer metade de um slot de Exgfx.

Obs: Toda vez que você for criar ou editar a tilemap de um Layer 3, jamais faça via YY-CHR senão Lunar Magic vai dar aquele PITTY FRENÉTICO e explodir os gráficos. Oh sim procure sempre salvar o tilemap em um novo Exgfx.bin.

Bônus - Trocando o gráfico do Mario/Luigi:


"Isso é só um exemplo dos diversos players que sua hack pode ter!"

Uma das alterações mais requisitadas e até então obrigatórias por muitos hackers que desejam introduzir um personagem original (como a sexy Wakana, em Wakana Land) é, de fato, trocar o gráfico dos personagens. Tudo que você vai precisar é:
- A ROM da sua hack

Agora basta tacar tudo isso em uma pasta e efetuar o patch. Feito! Por enquanto, Mario não possui nenhuma diferença mas Luigi irá perder a aparência de "Mario Verde", assim usando o mesmo visual All-Stars. Os gráficos dos respectivos personagens são identificados pelos nomes dos players e qualquer coisa pode ser jogável, desde que você identifique eles corretamente. Você pode baixar mais gráficos pro player bem aqui.

Obs: Alguns gráficos são tão grandes que eles precisam de um patch específico que transforma o player de 16x24 em 32x32. Bom só use isso se realmente for necessário pra sua hack, falou?
-----------------------------------------
Bom, e isso é tudo, pessoal!
Qualquer pergunta, por mais bobinha que seja, merece ser deixada na sessão de comentários ok?
Até a próxima!

5 comentários:

  1. Meus parabéns Morganah, tutorial claro e instrutivo. Alguem como você só tem a acrescentar na vida das pessoas. Que bom poder aprender com este tutorial. Ficou massa. Tudo de bom!!!

    ResponderExcluir
  2. não entendi, por que não posso usar yy chr pra editar o layer 3? Eu usei ele para consertar um bin que eu fiz no snesgfx (queria fazer uma tela de titulo customizavel) e não deu em nada. ta tudo tranquilo '-'

    ResponderExcluir
  3. se o thanos dança break, como ele come alpiste de 4?

    ResponderExcluir