Download

Animação dentro de um trigger box

Olá,eu preciso de ajuda,preciso que meu personagem execute uma animação somente quando ele estiver dentro de um trigger box e quando eu pressionar a tecla E. Fora do trigger box essa tecla não pode funcionar. Minha animação é meu personagem abrindo uma porta. Sei fazer com que a tecla E toque essa animação mas ela toca em qualquer ponto do mapa que eu aperte a tecla E e preciso que essa animação toque somente quando o personagem estiver em frente a essa porta. Ai teria que ser dentro de um trigger box, penso eu, ou tem uma outra forma de fazer isso?? .Sou iniciante e não tenho a minima idéia como configurar isso. Já pesquisei um monte e não encontrei nada que me esclareça como fazer isso. alguma ajuda???

A solução mais simples seria criar uma variável tipo ‘PossoAbrirPorta’ do tipo Boolean, quando você aperta a tecla de abrir a porta antes de tocar a animação você verifica se ‘PossoAbrirPorta’ == true e so toca a animação nesse caso. E no object do trigger você implementa ActorBeginOverlap e ActorEndOverlap e quando o personagem entra no trigger você seta ‘PossoAbrirPorta’ para true e quando ele sai do trigger seta para false. Você tb pode fazer o contrario e implementar ActorBeginOverlap/EndOverlap no objeto do personagem e na implementação de Begin/EndOverlap checar se o objeto que ele esta interagindo é o trigger e mudar a variável de acordo.

Uma outra solução um pouco mais complexa(mas que dependendo do tipo de jogo pode ser melhor) seria quando você aperta a tecla de abrir porta fazer um trace(line/sphere/box/capsule trace oq for melhor dependendo do tipo de jogo) e verificar se o jogador esta perto(e até levar em conta a direção do personagem) e só assim tocar a animação de abrir a porta.

Pesquisou pouco, esse tutorial mostra como fazer exatamente o que você quer

Muitissimo obrigado pela ajuda, eu pesquisei bastante mas, com tantos tutoriais disponiveis a gente se perde um pouco e eu sinceramente não tinha visto esse tutorial.
Sou iniciante e em algumas situações é dificil conseguir ajuda, a maioria das respostas são muito avançadas para um principiante como eu.
As opções propostas como; variaveis e trace line eu ainda não sei trabalhar com isso mas, com o tempo eu espero entender isso mais la na frente.
Esse tutorial vai me ajudar muito.
Meus sinceros agradecimentos pela sua ajuda e pela sua paciencia.

As suas orientações me ajudaram e funcionou corretamente, tenho mais uma dúvida que gostaria que me ajudassem mas, para não abrir um novo tópico vou perguntar aqui mesmo. Tenho uma animação do meu personagem abaixando pra pegar um objeto no chão, graças a sua ajuda ja sei como gatilhar isso e queria saber o melhor jeito e mais facil de fazer para que esse objeto sumisse do mapa quando meu pessonagem abaixa para pegar. Não queria fazer aquele classico -passar pelo objeto e ele sumir- mas, fazer com que em um determinado frame dessa animação o objeto sumisse.

Use a função **Destroy **no objeto.

Eu queria saber como gatilhar um frame da animação para essa função. Talvez seja usando o anim notify mas não sei como configurar isso. Sei que em um determinado frame posso criar um anim notify, dar um nome pra ele, escolher branch poit mas,não sei como usar esse anim notify para gatilhar a função Destroy.

Sim usando Anim Notify é uma opção, você cria o notify no frame da animação que você quer, e no blueprint da animação você cria um evento para esse Notify, nesse evento você por sua vez pode chamar uma função ou evento na blueprint do seu personagem que destroy o objeto que você quer esconder.

Eu não tenho um exemplo 100% idêntico ao que você quer fazer, mas eu tenho um exemplo de como usar AnimNotify, eu tenho um personagem que eu quero saber quando ele começa um ataque, então na animação de ataque eu coloquei um Notify(Attack Start) no frame que eu considero o inicio do ataque, e ai na blueprint de animação eu criei o seguinte evento:

No seu caso você usaria algo praticamente idêntico na blueprint da animação.
Ele pega o Owning Actor da blueprint de animação, e chama o evento na Blueprint do personagem, quer por sua vez é a seguinte:

knight_bp.png

E quando ele recebe esse evento ele liga a colisão na espada do personagem.

No seu caso você troca essa parte que ele liga a colisão para destruir o objeto que você quer esconder.

Mais uma vez agradeço, vou tentar fazer assim como vc falou, talvez demore um pouco pra eu entender como funciona isso mas, é meu costume, não simplesmente copiar mas, fazer e entender o que estou fazendo, é assim que aprendo, entre muitas tentativas e erros acabo acertando. Obrigado a vcs.