O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Charset grande com animação de batalha

Iniciado por Crixus, 03/12/2013 às 23:22

03/12/2013 às 23:22 Última edição: 20/03/2019 às 15:20 por Crixus
Charset grande com animação de batalha
Charset bigger with Battle Animation

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.

Nível: Médio.
Plataforma: Rm2K e Rm2k3.



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á:


[BigChara-Alex.png]


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


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-demo.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):


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar01.png

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


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar02.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".


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar03.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".


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar04.png

No fim disto deve ficar assim:


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar05.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".


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar06.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".


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar07.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:


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar08.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.


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar09.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":


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar10.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:


https://rpgmaker.000webhostapp.com/rpgmaker/map-system/Charset-Bigger/ba-bigchar11.png

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.

Citar
<>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:

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

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.

5 anos depois consegui recuperar as imagens da tutorial.
Desculpa ressuscitar o tópico.

Achei show, mas tenho uma dúvida. Se eu usar outra animação pra outra coisa, tipo o char atacando, não vai dar problema?
Eu não lembro no patch mas o novo RM2K/3 permite a utilização de mais de uma animação no mapa não?

Infelizmente sim, o sistema é feito pra uso em alguma cena especifica em um jogo sem precisar fazer um sistema muito complexo.