Forums » RPG MAKER 2K e 2003

Charset grande com animação de batalha

    • 683 posts
    2 de junho de 2015 17h09min50s ART

    Charset grande com animação de batalha


    Essa tutorial não é para ensinar como se faz animações do char grande e sim um modo adequado de usalas.

    Essa idéia não nem um pouco original, mas apesar de parecer simples, fazer personagens com animação de batalha(Battle Animation) não é algo tão simples.
    O que eu preparei neste sistema foi um método que permita mais de que 4 frames, claro que isso também não é inédito, o maior problema era enquanto o jogador mudasse de direção a animação trocasse instantaneamente o que não ocorria devido o tempo da animação.
    E este problema que ensinarei a corrigir, mas antes leia as perguntas frequentes caso você seje um iniciante de programação.

    Criado por: TanatosMaker.
    Tutorial: TanatosMaker.
    Nível: Médio.
    Plataforma: Rm2K e Rm2k3.

    Download:
    TanatosMaker-Char_Grande_BattleAnimation.rar

    Para rodar a Engine entre acesse este link:
    http://tanatosmaker.forum7.biz/tutoriais-de-rpg-maker-f7/como-rodar-os-ficheiros-sem-rtp-ou-rpgmaker-t9.htm


    Screens

     

    Screen 1
    Imagem Postada

    Screen 2
    Imagem Postada



    Perguntas frequentes:

    P: "Serve no RMXP ou VX"
    R: Bem não sei por que alguém faria está pergunta, afinal Charsets de RMXP e RMVX não tem limite exato de tamanho podem ser enormes ou minusculos,
    mas sobre o sistema, sim ele serve mas é totalmente desnecessário.

    P: "Por que o Charset grande por cima das arvores e outros objetos que deveria ele deveria ficar por baixo?"
    R: Pelo simples fato de não ser um Charset e sim BattleAnimations, ou seja uma animação de batalha que fica por cima de todos objetos, meno textos e Pictures.

    P: "Como posso fazer ele ficar por baixo?"
    R: Bem ai vai da tua imaginação se você entender a lógica das "camadas" do objetos do RpgMaker, tipo Pictures, mas só no Rm2k pois no Rm2k3 as Pictures ficam por baixo das Battle Animations.

    P: "Eu posso fazer um NPC ser grande?"
    R: A programação dos eventos teria de ser refeita.

    P: "Eu posso fazer um veículo (Vehicle) ser grande?"
    R: A mesma resposta do NPC, o que mais aconselho é cria um novo herói que seja o Char Grande e represente um veículo.


    Tutorial:

    Antes de começar tudo você deve entender como se faz uma animação de batalha, se você souber deve fazer as seguintes animações do personagem escolhido:

    • Cima parado.
    • Direita parado.
    • Baixo parado.
    • Esquerda parado.
    • Cima andado.
    • Direita andando.
    • Baixo andando.
    • Esquerda andando.


    todas devem ter por volta de 10 frames no minimo e 20 no máximo e se quisre deixar o sistema mais interessante pode colocar um efeito som de passos na própria animação.

    Caso você esteja sem uma animação pronta pegue está:

    Imagem Postada
    http://img17.imageshack.us/img17/5573/bigcharaalex.png

    Eu fiz as animações mais ou menos que nesta sequência:

    Imagem Postada
    http://img341.imageshack.us/img341/3695/bademo.gif

    Aconselho usar "Salvar Link como..." para baixar a imagem.

    Quando terminar as animações.


    O primeiro evento que faremos em "Common Events" é um que vai vereficar se o personagem está ou não em movimento.
    Você pode nomealo de "Andar" ou "Andando?" ele deve ser "Parallel Process"(Processo paralelo) e ativo por uma Switch que você deve criar, pode nomeala como "Char Grande" ou "Big Char Active".

    Primeiro crie um "Enter PassWord"(Set Password) ou no Rm2k3 em português "Teclas adicionais" selecione uma variavel e nomeia como "Tecla de movimento" e deixe deste modo, selecione apenas 1, 2, 3 e 4 e tire a opção "Wait Untill Key Hit"(Esperar pressionar a tecla):


    http://img41.imageshack.us/img41/4087/babigchar01.png

    Agora crie uma Fork pela variavel "Tecla de movimento" em "Same"(Igual), valor 0 e sem a opção "Add ELSE Case".


    http://img188.imageshack.us/img188/3647/babigchar02.png

    Logo após crie uma Fork pela variavel "Tecla de movimento" em "Same"(Maior ou igual), valor 1 e sem a opção "Add ELSE Case".


    http://img41.imageshack.us/img41/6935/babigchar03.png

    E dentro desta própria fork de valor 1 crie uma Fork pela variavel "Tecla de movimento" em "Bellow"(Menor ou igual), valor 4 e sem a opção "Add ELSE Case".


    http://img687.imageshack.us/img687/98/babigchar04.png

    No fim disto deve ficar assim:


    http://img692.imageshack.us/img692/1152/babigchar05.png

    Agora dentro da Fork de valor "0" você cria um "Change Swicth" que torne OFF e nomeia de "Andando", logo após crie uma "Change Variable" que chame uma mesma varivel que deve receber o nome de "New.Direction" ou "Nova Direção" e deve receber o valor "Set 0".


    http://img17.imageshack.us/img17/2527/babigchar06.png


    Dentro da Fork de valor "4" que ficar dentro da Fork de valor "1" cria outro "Change Switch" que torne ON a mesma Switch "Andando".


    http://img41.imageshack.us/img41/1188/babigchar07.png


    Após a Switch "Andando" em ON crie 4 novas Forks pela direção do "HERO"(Herói ou personage) Up(Cima), Right(Direita), Down(Baxio) e Left(Esquerda), em todas sem a opção "Add ELSE Case".
    Crie dentro de cada Fork uma "Change Variable" que chame uma mesma varivel que você criou "New.Direction" ou "Nova direção", sendo que:
    A fork "Up" deve receber o valor "Set 1", a "Right" deve receber "Set2", a "Down" deve receber "Set 3" e a "Left" dever receber "Set 4".

    Deve ficar assim:


    http://img341.imageshack.us/img341/2333/babigchar08.png


    Agora vamos criar um novo Evento em "Common Events" pode nomealo de modo que possa identificar como o evento onde vão ficar as animações do "CharSet Grande", tipo "Char Grande" ou o nome do personagem que ficará grande, ele deve ser "Parallel Process"(Processo paralelo) e ativo por uma Switch que você criou, "Char Grande" ou "Big Char Active".

    Dentro dele crie uma Fork ativa pela Switch "Andando" em OFF com a opção "Add ELSE Case" selecionada.


    http://img188.imageshack.us/img188/2007/babigchar09.png

    Agora dentro da Fork da Switch "Andando" crie 4 novas Forks pela direção do "HERO"(Herói ou personage) Up(Cima), Right(Direita), Down(Baxio) e Left(Esquerda), em todas sem a opção "Add ELSE Case".
    Dentro de cada uma dessas Forks chame uma "Show Battle Animation"(Mostrar Animação de Batalha) respectiva pela Fork sem a opção "Wait Untill Done":


    http://img687.imageshack.us/img687/8752/babigchar10.png


    UP coloque "Cima parado".
    Right coloque "Direita parado".
    Down coloque "Baixo parado".
    Left coloque "Esquerda parado".

    Agora dentro da Else Case da Fork da Switch "Andando" crie uma "Label" com valor 1 após isso
    crie 4 novas Forks pela direção do "HERO"(Herói ou personage) Up(Cima), Right(Direita), Down(Baxio) e Left(Esquerda), em todas sem a opção "Add ELSE Case".
    Dentro de cada uma dessas Forks chame uma "Show Battle Animation"(Mostrar Animação de Batalha) respectiva pela Fork sem a opção "Wait Untill Done":

    UP coloque "Cima andando".
    Right coloque "Direita andando".
    Down coloque "Baixo andando".
    Left coloque "Esquerda andando".

    Nas Forks de direções da "Else Case" você deve criar uma "Change Variable" para cada uma, dele o nome de "Direção" ou "Direction".
    A fork "Up" deve receber o valor "Set 1", a "Right" deve receber "Set2", a "Down" deve receber "Set 3" e a "Left" dever receber "Set 4".

    Após estás Forks de "direções" ainda dentro do "Else Case" crie uma nova Fork pela variavel "Direção"(Direction) e pela variavel "Nova Direção"(New.Direction) com o tipo "Others"(Diferente) sem a opção "Add ELSE Case".
    Na teoria está fork significa:

    "Quando a Variavel Direction for diferente de New.Direction", ficando deste modo:




    Dentro desta nova Fork coloque um "Goto Label" com o valor 1.

    Após a Fork coloque um "Wait..." com o valor 1 que significa 0.1 segundos ou uma fração de dez.

    <>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt <>GO TO Label:  1No <> :END Case <>Wait:  0.1s. <>


    Copie a Fork e o Wait e cole 5 vezes de modo que fique assim:

    [spoiler]<>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt<>GO TO Label:  1No<>:ENDCase<>Wait:  0.1s.<>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt<>GO TO Label:  1No<>:ENDCase<>Wait:  0.1s.<>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt<>GO TO Label:  1No<>:ENDCase<>Wait:  0.1s.<>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt<>GO TO Label:  1No<>:ENDCase<>Wait:  0.1s.<>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt<>GO TO Label:  1No<>:ENDCase<>Wait:  0.1s.<>FORK Optn:Varbl[xxxx:Direction]-V[New.Direction]Expt<>GO TO Label:  1No<>:ENDCase<>Wait:  0.1s.<>

    [/spoiler]

    Estas ultimas Forks serviram para que a cada 0.1 segundos o jogador tiver mudado de direção o "Goto Label" retorne ao começo do evento para atualizar a animação.


    Bem é isto.