🤔 Para Refletir :
"Fazer um jogo é um ótimo aprendizado para se notar que normalmente o que é bom não é por acaso e sim fruto de muito planejamento e trabalho."
- Rafael_Sol_MAKER

RPG Maker 2000 [RM2000] Mudar animação quando parado

Dr.XGB Masculino

O Cenourão
Administração
Administração
Jogador maluco, problemático, olho parado.
Juntou-se
21 de Julho de 2015
Postagens
568
Soluções
3
Bravecoins
2.757
Área
Programação
Motor de jogo
RPG Maker 2003
Mudar animação quando parado
by Dr.XGB
Plataforma: RPG Maker 2000
Autor: Dr.XGB
Dificuldade: Fácil (até demais)

Introdução

Este tutorial foi feito a pedido do membro shadow prince, num tópico que ele postou na área de suporte para RPG Maker 2000 e 2003 (veja o tópico clicando aqui).
Este sistema, resumidamente, faz com que o seu personagem mude de animação quando fica muito tempo parado, muito comum em jogos de plataforma. Daí o personagem volta ao normal quando você o move novamente. Daí, este tutorial vai converter esse sistema em eventos sem nenhuma dificuldade.
Aqui dividirei o tutorial em duas etapas: O evento para fazer o contador, detectando se nenhuma tecla será pressionada por um determinado tempo; e como trabalhar com os gráficos do charset para fazer a animação de espera do herói.

Espero que o tutorial ajude não só o shadow prince, mas também a todos que possuem a mesma dúvida que a dele e/ou querem aprender a fazer novos sistemas e que a lógica utilizada neste tutorial ajude você a criar novas coisas em base do que eu farei.


Etapa 1: Apenas eventos e charsets

A primeira etapa é bem simples, faremos com que certo evento comum conte por quanto tempo o jogador ficará sem pressionar nenhuma tecla direcional. Se o jogador pressionar qualquer tecla direcional, o contador voltará ao zero. Para isso, usaremos uma variável para agir como esse contador e outra pra detectar uma entrada de tecla realizada pelo jogador. Como esse evento ocorrerá constantemente, ele será um evento comum em processo paralelo.

Evento Comum: Stand Time
Condição Inicial: Processo Paralelo
Switch de Ativação: 0001: Stand ON
Código:
<> Variable Ch. [0001: Stand Time] Set, 0
<> CYCLE
 <> Enter Password: [0002: KEY] (1,2,3,4 - teclas direcionais, Wait key desmarcado)
 <> IF [0002: KEY] - 1 above
  <> IF [0002: KEY] - 4 below
   <> Comment: Zerar contador se uma tecla for pressionada
   <> Stop Parallel Process
   <>
  : END IF
  <>
 : END IF
 <> Variable Ch. [0001: Stand Time] + 1
 <> Wait: 0.1s
 <> Comment: O valor da condição fica a seu critério
 <> Comment: Cada 10 representa 1 segundo
 <> Ex: [0001: Stand Time] = 50 = 5 segundos
 <> IF [0001: Stand Time] - 50 above
  <> BREAK CYCLE
  <>
 : END IF
 <>
: END Cycle
<> Comment: Mudar Animação do herói após o ciclo
<> Change Hero GFX: (à sua escolha)
<> Change Switch: [0002: Stand Animation] - ON
<> CYCLE
 <> Enter Password: [0002: KEY] (a mesma configuração de antes)
 <> IF [0002: KEY] - 1 above
  <> IF [0002: KEY] - 4 below
   <> BREAK Cycle
   <>
  : END IF
  <>
 : END IF
 <>
: END Cycle
<> Comment: Voltar ao normal quando um tecla for pressionada
<> Change Hero GFX: (padrão do seu herói)
<> Change Switch: [0002: Stand Animation] - OFF
<>
O Gráfico do charset do herói, no momento, peço que troque por um outro charset normal para entendermos como funcionará nosso sistema de animação.

A switch de ativação deste evento comum deve ser ativada quando você quiser que a animação ocorra, normalmente quando o jogador começa a controlar o herói. Em caso de cutscenes, ou qualquer cena que você deseja que essa animação não ocorra, é só desativar esta switch e, ativar depois que o herói voltar a ser jogável.

Assim que a switch da animação se torna ativada, chamaremos um outro evento comum onde ocorrerá tal animação.

Evento Comum: Stand Animation
Condição Inicial: Processo Paralelo
Switch de Ativação: [0002: Stand Animation]
Código:
<> Move Event: Hero,  Turn 90º Right
<> Move All
<> Comment: Controle aqui a velocidade da animação
<> Wait: 0.1s
Ao testar o seu jogo, verá que o herói sairá girando feito um louco, É justamente essa a intenção, montamos a estrutura da animação do seu personagem. Agora que entendemos como fazer o seu herói mudar o seu gráfico quando fica certo tempo parado, vamos transformar esse Pião do Baú da Felicidade se transformar realmente numa animação. Só que para que essa animação funcione de uma maneira bem redonda, teremos que entender como o RPG Maker trabalha com os frames da direção dos eventos para transformarmos essas direções em frames.

Etapa 2: Animação em Charsets

b27ueMB.gif

Agora vamos trabalhar com a manipulação das animações do charset para ser a pose do seu herói.
Baseando-se na técnica utilizada na 1ª etapa, vamos converter essas direções em frames com um ato bem simples.
No RPG Maker, cada direção do evento/herói possui um valor numérico que pode ser facilmente determinado por:
  • 0 - Cima
  • 1 - Direita
  • 2 - Baixo
  • 3 - Esquerda
uPVweDZ.png

Aplicando no charset:
UBMPWId.png

3kWbuYi.png
ATENÇÃO: Não confunda os valores das direções do charset com os valores das entradas das teclas. As teclas direcionais têm o seu valor de acordo com a entrada do teclado do seu sistema operacional, que pode ser encontrado abrindo o Mapa de Caracteres do seu sistema.
Porém o RPG Maker converteu esses valores de 1 a 4, só que numa ordem diferente das direções do gráfico charset.


Daí quando colocar as poses desejadas seguindo esse padrão, pode-se notar que ao invés de um herói girando, teremos uma animação de espera do herói enquanto você não o move pressionando uma tecla direcional.



Baixe a demonstração deste tutorial

Deixarei uma demo mostrando como foram feitos todos estes procedimentos deste tutorial.
MediaFire - Dropbox
 
Voltar
Topo Inferior