Tutorial de fontes para o M.U.G.E.N.

Desenvolvido pelos estúdios de entretenimento eletrônico da Cyberbit Corp.

Autor deste tutorial : Lord Sinistro.

Eu não me responsabilizo sobre possíveis danos mentais causados pela leitura deste tutorial bem como danos materiais a ele relacionados.

Fonte, segundo a descrição do dicionário :

Fonte(1): Manancial de água que brota do solo; nascente. Bica por onde corre água ou outro líquido. Chaga aberta com cautério; exutório.

Fonte(2): Conjuntos de sinais, letras e espaços de mesmo caráter e corpo.

Fonte(3): Cada um dos lados da cabeça na região temporal; têmpora.

Muito bem, fiquemos com a segunda descrição.

Fonte no mugen é formada por uma tira horizontal contendo os caracteres alinhados lado a lado. Ultiliza o formato pcx igual os sprites amplamente usados. A engine se encarrega de "recortar" apenas a letra requerida à preencher o espaço necessário para sua exibição.

Eis um exemplo prático e visual de uma imagem contendo fonte para o mugen :

Esta fonte foi por mim ultilizada na criação do motif Mortal Kombat. Analizemos friamente esta imagem e tiremos conclusões :

1 - A imagem contém todo o alfabeto inclusive letras não ultilizadas pelo português como K,Y,W, mas que muito em breve irá fazer parte de nosso alfabeto devido a uma reforma ortográfica ridícula e submissa.

2 - Contém numeros de 0 a 9 e caracteres especiais como ponto, virgula e apóstrofo, dentre outros.

3 - Usa 2 cores (tirando o verde da transparência) e o tamanho das letras na horizontal são diferentes, como o I usando poucos pixels e o W usando muitos, e todas estão em caixa alta (maiúscula).

4 - É de um mal gosto pra cacete e foi ripada do Mortal Kombat.

Isto é o mínimo que o mugen precisa, na verdade essa fonte está incompleta. Ao criar a fonte voce tem que ter em mente todo o conjunto de caracteres que os chars poderiam usar, no caso ' (apostrofo) é muito ultilizado no inglês, não pode faltar. Caso sua fonte não contenha o caractere nescessário, o mugen ignorará e vai ficar faltando letras.

Início : Primeiro, escolha a fonte que deseja obter. Não é um trabalho fácil se voce não puder retirá-las do gfx do jogo (usando um visualizador de gráficos nos códigos) é o caso do mortal kombat, todos sabemos que ripar do emulador mame é um saco.

Segundo, alinhe as fontes lado a lado, de maneira que não fique espaços vazios por entre elas, não é nescessário uma ordem tipo ABCDEF.... no entanto nessa ordem facilita a visualização. os números também são nescessários bem como no mínimo as pontuações (.,:'-) seria legal se voce tivesse também outros do tipo !?$%#><(){}[] etc... Obvio que se voce não conseguir extrair um destes e for necessário, aí voce tem que editar manualmente, tomando cuidado para usar o mesmo estilo etc...

Ah muito importante, as cores da imagem na paleta de cor tem que ocupar os primeiros blocos.

Muito bem, com a imagem em mão voce precisa criar o arquivo .fnt para isso eu recomendo o programa FntEditor criado pelo Aziz Vicentini, o mesmo criador do zcharcad.

Existem 2 tipos de fontes, fixed e variable, como o nome diz, fixed servem para fontes com tamanho fixo ou seja, todos os characteres tem a mesma largura e altura. Variable é o oposto, como a fonte do exemplo, o i é menor que o m,w,z etc...

Abra o FontEdit, carregue a imagem (vai aparecer embaixo) e na caixa de texto voce digita os códigos.

A fixed é fácil, vejamos os códigos de uma fonte fixed :

[Def]

Size = 8,8 ;Largura e altura da fonte
Spacing = 0,1 ;Espaço entre elas (0 na horizontal 1 na vertical)
Colors = 16 ;Cores da fonte, no caso 16 cores
Offset = 0,0;Aqui é pra mudar o alinhamento, o que não precisa.
Type = Fixed ; E o tipo, fonte fixa

[Map]

A
B
C
D
E
F
...

Então agora o mugen sabe que o primeiro bloco 8x8 contém o A, o segundo bloco 8x8 (que começa depois do primeiro) é o B e assim vai, voce tem que escrever na ordem que está a imagem.

A variável é muito chata, vejamos :

[Def]

Size = 8,12 ; Tamanho padrão, mas vai mudar.
Spacing = 1,0 ; Espaçamento, já vimos
Colors = 2 ; 2 cores, como na fonte exemplo (branco e preto)
Offset = 0,0 ;Alinhamento, eu acho isso desnecessário.
Type = Variable ;Fudeu
; Character mapping:
; Char, Start_X, Width_of_char
[Map]
A 0 8 ;Aí está, agora voce tem que passar a informação de onde a letra começa na imagem e a largura dela, em TODAS as letras. Legal né! Não, nem um pouco... o A começa no pixel 0 e tem 8 de largura.
B 9 8
C 17 8
...
I 35 4 ;Repare que o I só tem 4 pixels de largura
J 39 8
etc...

E agora as minusculas :

a 0 8 ;não tem, mas preciso, então digo que é o A maiusculo
b 9 8
c 17 8
etc....

Letras minusculas diferem das maiusculas, é necessário na imagem ter as letras em minusculo claro, mas como nesta fotne não tem, eu repeti no código as maiúsculas e troquei por minusculas, assim o "a" vai ser usado o grafico "A".

Só copiar de A a Z e colar novamente, substituindo as letras para a forma minuscula. Não importa a posição que voce cola, pode ser no final, no inicio, o que importa é se na imagem a posição horizontal e a largura da letra estejam corretos nos códigos.

Pra testar escreva todo o alfabeto da fonte em algum lugar que use sua fonte (como no nome do char, display name, no arquivo .def) de preferencia com a ordem alterada e rode no mugen pra ver se não tem fonte sendo cortada ou com pixels a mais.

Cores :

Este foi o truque mais recente que descobri no mugen, a possibilidade de mudar de cor da fonte. Assim voce não precisa criar uma fonte de uma cor e depois pintar a imagem e criar outra fonte apenas pra mudar a cor.

É o seguinte : no System.def e no Fight.def voce especifica as fontes que vai usar. O mugen recomenda no máximo 9 fontes pra não travar, isso é mais do que o necessário. Veja :

[Files]
sff = fight.sff
snd = fight.snd
font1 = font/jg.fnt ;<- Fonte padrão do mugen, puxa na pasta FONT
font2 = mktimer.fnt ;<- fonte que usei no relógio
font3 = mkname.fnt ;<- fonte que usei nos nomes da life bar
font4 = mkbig.fnt ;<- Fonte que estou usando como exemplo

Para usar a fonte padrão do mugen coloque font/nomedafonte.fnt, caso queira usar uma fonte que está na pasta do motif, basta indicar o nome. Se mudar pra pasta FONT aí é nescessário indicar o caminho pra esta fonte.

Existem várias opções para usar a fonte, mas o princípio é o mesmo, veja :

menu.item.font = 1,0,0
menu.item.active.font = 1,1,0

O primeiro item é a fonte usada no menu da tela titulo. 1 significa que estou usando a fonte 1 que indiquei acima (font/jg.fnt). O zero do meio indica que estou usando a primeira cor e o ultimo zero é o alinhamento central, por exemplo ABC, 0 significa o meio do B, 1 significa o primeiro pixel do A e -1 o ultimo pixel do C, neste caso a palavra corre pra esquerda (a ultima letra representa a posição X,Y).

O segundo item é quando o cursor está ativo, a fonte tem que mudar de cor no caso. Eu ainda estou usando a mesma fonte, mas repare que no lugar do zero agora tem 1, eu mudei a cor da fonte sem precisar adicionar uma nova fonte com outra cor. Veja a imagem abaixo :

Esta é mais ou menos a paleta de cor da fonte exemplo (MKBig) o verde é a cor de transparencia como num char, as cores estão ordenadas em preto-branco, preto-amarelo, preto-azul etc...

A fonte exemplo só usa 2 cores, o padrão é branco com sombra em preto. Como indiquei imagem com 2 cores, se eu colocar no estilo da fonte 1,0,0 irá usar a cor 0 (preto e branco) se eu indicar 1,1,0 irá usar a cor 1 (amarela), pois se tem 2 cores, o mugen vai pular 2 blocos de cor e usar apartir do bloco 3, então a fonte vai ficar amarela, se usar 1,2,0 vai ficar azul etc...

Se voce indicar 2 cores no arquivo fnt e usar 3, a terceira e todas as demais serão entendidas como transparência. Interessante.

MAS ATENÇÃO! Isso só funciona no DOS mugen, quando fui testar no winmugen e consequentemente no mugen linux, a fonte sumiu.

Não sei exatamente qual foi o motivo, eu acho que nestes mugens mais recentes, o limite mínimo de cor é 16, então faça a mesma coisa, mas com 16 blocos de informação de cor, no caso se tem 2 cores, use o bloco 1 e 2, depois pule 14 blocos e o segundo tipo de cor começa no bloco 17. E claro, diga que a fonte tem 16 cores. Funcionou, e desta maneira naturalmente funciona no DOS mugen também.

O limite é todos os 255 blocos de cores para serem usados, cor pra cacete.

E foda explicar o óbvio mas espero que agora voces aprenderam como criar fontes para o mugen. Sua vida não vai melhorar, seus problemas não vão acabar, mas apartir de agora voces sabem como criar uma maldita fonte para o mugen e com o agravante de saber como trocar de cor.

E pra terminar, uma das definiçoes de fonte no dicionário mencionou a palavra exutório, vamos ver o que significa isso :

Exutório : Que promove supuração. Ulceração produzida e concervada artificialmente com o fim de determinar uma supuração permanente e derivativa.

Ah! agora sim entendemos tudo! Falou pessoal, até outro dia.