UPLOAD, SHARE, PRESERVE MUGEN FOR ETERNITY!
a missing category? request it here.

O Formato CNS

  1. Jansen121
    Jansen121
    O Formato CNS
    ==========

    M.U.G.E.N - Direitos autorais (C) 1999~2013 Elecbyte.
    Traduzido pro PT-BR por Jansen121.

    NOTA: Esta documentação foi traduzida para o PT-BR por mim, Jansen121 com algumas coisas tomadas da documentação do WinMUGEN, Todas as coisas vão da versão 14,04,2002 (Linux/Windows) para a última versão 1.1. Minha tradução não é tão perfeita como os docs originais da Elecbyte, e se você ver um erro gramatical de português, avise me que vou consertar estes erros.

    ==========
    0.Conteúdos
    ==========

    1. Introdução ao arquívo .CNS
    -Algumas terminologias
    2. Variáveis do jogador
    3. States
    -Sobre as máquina finita do states
    -Introdução aos States
    -Vida e Poder
    -Controle
    -Tempo do jogo e do State
    -Posição, Velocidade e Aceleração
    -Juggling
    -Partes básicas dos States
    -Detalhes no StateDef
    -type
    -movetype
    -physics
    -anim
    -velset
    -ctrl
    -poweradd
    -juggle
    -facep2
    -hitdefpersist
    -movehitpersist
  2. Jansen121
    Jansen121
    -hitcountpersist
    -sprpriority
    -Detalhes nos State Controllers (SCTRL/Controladores de States)
    -Formato do Controlador
    -Triggers/Gatilhos
    -Lógica dos Triggers
    -Persistência dos Triggers
    -Redireção de Triggers
    -Controladores comumente usados
    4. States comuns (common1.cns)
    5. Números especiais dos States
    6. Expressões
    -Tipos de data
    -Operadores Aritméticos
    -Precedência e associatividade dos operadores
    -Syntax da expressão
    -Triggers do tipo condição/expressão
    -Redireção de triggers
    -Inferior/SFalse
    -Formas especiais
    -Como desviar avisos
    -Expressões nos argumentos dos triggers
    -Expressões nos states e parâmetros dos state controllers
    -Organizando para deficiência
  3. Jansen121
    Jansen121
    1. Introdução ao arquivo .CNS
    --------------------------------------

    O Arquivo .CNS serve 2 finalidades:

    1. Isto define as variáveis do jogador, tipo a velocidade onde ele anda, desenha um fator de escala, e por aí vai.
    2. Isto contém os states do jogador, que descreve todos os golpes que o jogador pode fazer. States são blocos de construção que você pode usar para criar golpes simples à complicados.

    Como outros arquivos de personagem (exceto .SFF & .SND), este tipo de arquivo pode ser editado com o bloco de notas (e qualquer editor de texto de preferência sua).

    No arquivo CNS, o ponto e vírgula (;) é um caráter usado apenas para comentar algumas linhas de texto. Qualquer texto estando na mesma linha depois do ponto e vírgula será ignorado pela engine. o CNS é manualmente caso-sensitivo, exemplo: "meunome" é a mesma coisa que "Meunome" e "MEUNOME". A Única exceção é o trigger "command", que está coberto na documentação do arquivo .CMD, não se preocupe sobre isso agora.
  4. Jansen121
    Jansen121
    Algumas Terminologias
    -----------------------------

    Quando nós dizemos "grupo", a gente fala sobre um bloco de linhas começando com algo que se parece com [nomedogrupo], e acabando antes do próximo grupo, exemplo: O Grupo "insira algo aqui" consiste de 3 palavras diferentes na seguinte linha:

    [insira algo aqui]
    linha1
    linha2

    [Grupo 2]
    mais linhas vão aqui.

    Dentro de um grupo, os parâmetros podem aparecer em qualquer ordem, então:

    [algumgrupo]
    value1 = 1234
    value2 = "Uma cadeia de carácteres"

    é equivalente a:

    [algumgrupo]
    value2 = "Uma cadeia de carácters"
    value1 = 1234
  5. Jansen121
    Jansen121
    2. Variáveis do jogador
    -----------------------------

    Não há documentação completa ainda sobre isso, veja o arquivo .CNS do KFM na pasta chars/ do seu MUGEN para comentários em cada variável.

    Algumas variáveis importantes:
    -Em [Size], você pode usar o xscale e o yscale para mudar a largura e a altura do seu char, isso salva o problema de dar escala em cada uma das sprites.
    -Em [Velocity], você pode alterar as velocidades do jogador.
    -Em [Movement], você pode colocar a aceleração para baixo em "yaccel"
  6. Jansen121
    Jansen121
    3. States
    -----------

    Animações e sons são uma das manifestações imediatamente mais perceptíveis de um char MUGEN, mais o "coração" verdadeiro de um char é os arquivos .CNS, o arquivo .CNS, também conhecido como o arquivo de "states" do char, estes arquivos contém o código que dá o funcionamento atual do char permitindo ele para performar movimentos quando comandado, para acertar o oponente, ou para obedecer a lei de gravidade.

    A Estrutura de um arquivo .CNS é simples. O Código é organizado em grupos lógicos chamados de [StateDef]s, blocos de [StateDef] são numerados, e um típico char deve conter vários deles. Dentro de cada [StateDef] é um número de blocos [State], conhecidos também como State Controllers/Controladores de Estado/SCTRL. Cada SCTRL é um par de ação de triggers: isso especifica alguma ação para o char tomar, e as condições fora de que ação pode ser perfomada.
  7. Jansen121
    Jansen121
    A cada instante ("tick") do tempo do jogo, o char executa o código em algum bloco [StateDef]. Por exemplo, se o char está posicionando-se, ele está tipicamente executando o bloco [Statedef 0]. Para brevidade, nós dizemos que o char está no "state 0". A cada tick que o char está no state 0, isso vai avaliar os state controllers no bloco [Statedef 0] de cima pra baixo, checando as condições e tomando qualquer ação que é especificada. Se o char precisa mudar pra algum outro bloco [StateDef], vamos dizer para syaye 417 porque ele está performando um golpe, isso pode executar o state controller ChangeState para fazer a troca. o char vai começar a executar o código no [StateDef 417], exatamente no mesmo fashion.
  8. Jansen121
    Jansen121
    Cada char MUGEN tem adicionalmente 3 states especiais, numerados -1, -2 e -3. Estes são os únicos states permitidos com números negativos. State -1 geralmente contém state controllers que determinam transição de state baseado em digito do usuário (comandos). State -2 contém outros state controllers que precisam ser checados a cada tick. State -3 contém state controllers que são checados cada tick a menos que o jogador está temporariamente usando o state data de outro jogador (Exemplo: quando o jogador está sendo jogado para fora).
  9. Jansen121
    Jansen121
    Para colocar todos juntos: para cada tick de tempo do jogo, MUGEN faz um passo singular sobre cade um dos states especiais, de cima pra baixo, em ordem de aumentar o número do state (-3, -2, até -1). Para cada state controlador encontrado, os triggers de condição são avaliados e, se eles estão satisfeitos, o controlador é executado, daí processando procede para o próximo state controller no state. A transição de state (ChangeState) em cada um dos states especiais vai atualizar o número atual do state, e vai abortar processando o resto do state. Depois que todos os state controllers nos states especiais estão checados, o state atual do jogador é processado, de novo de cima pra baixo. Se uma transição de state é feita fora do state atual, o resto dos state controllers (Se todos) no state atual são pulados, e processar continua do começo do novo state. Quando o fim do state atual é reagido e nenhuma transição de state é feita, processando para pra este tick.
  10. Jansen121
    Jansen121
    Tem uma exceção para este cenário, Se o char é um "helper", exemplo: gerado pelo SCTRL Helper, o char não vai tar os states especiais -3 & -2, e até mesmo não irá ter o state -1, pelo menos quando isso tem a configuração de teclados ativada (Isso é controlado pelo SCTRL Helper quando o char é criado.).
  11. Jansen121
    Jansen121
    3A - Sobre a máquina finita de states
    ----------------------------------------------

    Esta seção apresenta uma caracterização trabalhadora (heurística) das MFS (Máquina Finita de States), achadas no MUGEN. Isso não é especialmente técnico, mas é pensado para o leitor analiticamente atento. Fique frio pra pular essa seção se você já é familiar com as MFS, ou se você não está interessado nos detalhes.
  12. Jansen121
    Jansen121
    A MFS é uma automação com um set finito de sub-rotinas, cada uma delas performa algumas funções e daí coloca algum critério para escolher a próxima sub-rotina para pular. Cada subrotina é chamada de "state", e a MFS e dita para ser em um state dado quando isso está atualmente processando os diretivos naquele state. A MFS só pode estar em um state em qualquer tempo dado.
  13. Jansen121
    Jansen121
    A Linha seguinte é um exemplo trivial de uma MFS, dado em pseudocódigo:

    State 0:

    1. Leia em um número.
    2. Se o número é 0, vá para o state 0. Ou, vai para o state 1.

    State 1:
    1. Imprima "Woohoo!"
    2. Vá para o state 3

    State 2:
    1. Vá para o state 0

    State 3:
    1. Sair
  14. Jansen121
    Jansen121
    Suponha que esta MFS começa no state 0 e lê o valor 0. Daí isso vai retornar para o começo do state 0, e leia outro número. Isso vai continuar até que a MFS leia um número que não é 0, em cada ponto isso vai trocar para o state 1. No state 1, a MFS imprime "Woohoo!" e daí troca para o state 3. State 3 faz a MFS sair. State 2 jamais chegou nesse exemplo.
  15. Jansen121
    Jansen121
    Aqui está um state de uma MFS que pode ser usada para um personagem de jogo de luta.

    State 555:

    1.Tente socar o outro cara.
    2. Se feito sucessivamente e o usuário está carregando soco, vai para o state 555 (chain move).
    3. Se feito sucessivamente e o usuário não está carregando soco, exiba a animação de recuperação.
    4. Se não feito sucessivamente, exiba a animação de falha.
    5. Quando as animações de recuperação/falha acabam, vá para o state 0 (em pé).
Results 1 to 15 of 15