Unity - Transições no AnimatorController rodando errado
2 participantes
Página 1 de 1
Unity - Transições no AnimatorController rodando errado
Olá. Seguinte, pessoal
Eu vinha rodando as Animações usando o Play(), mas decidi trocar pelas transições, por causa da suavidade entre elas. Daí estou fazendo os testes no próprio Animator usando o SetTrigger() e uma coisa está acontecendo sem sentido, a Animação "ParadoNoTabuleiro" tem uma transição para "ParadoNaPlataforma", e essa transição não tem HasExitTime marcado, mas ela está rodando como se tivesse! Daí fui pro Script pra ver se era alguma coisa nos testes direto no Animator, mas faz a mesma coisa, e pior, chegou a rodar outra animação que não tem nada a ver kkkk misericórdia! Sorri de desespero. Preferi o SetTrigger() por que achei mais simples que as demais. Daí troquei o SetTrigger() dessa transição pela Bool, dá no mesmo. Outra coisa que acontece, se eu clicar pela primeira vez na animação, ela faz isso, mas se eu clicar pela segunda vez na mesma animação, ela não faz mais! Detalhe, esse comportamento é de "ParadoNoTabuleiro" pra "ParadoNaPlataforma", sendo que "ParadoNaPlataforma" é a primeira animação rodada, a default da cor laranja. Não sei se isso tem alguma coisa a ver.
Em resumo, o Jogo inicia o Personagem com a Animação "ParadoNaPlataforma", que vai pra animação "CaindoNaCasaInicial" sem HasExitTime, que vai pra animação "ParadoNoTabuleiro" com HasExitTime, MAS de "ParadoNoTabuleiro" pra "ParadoNaPlataforma" não tem HasExitTime, o Erro está aí, esta transição está rodando como se tivesse o HasExitTime.
Alguém já passou por essa e sabe o que é? Seria um bug mesmo? Cara, esses bugs da Unity é o fim, vc se mata fazendo o negócio certo, mas ela inventa essas presepadas. Alguém pfv, obg!
Eu vinha rodando as Animações usando o Play(), mas decidi trocar pelas transições, por causa da suavidade entre elas. Daí estou fazendo os testes no próprio Animator usando o SetTrigger() e uma coisa está acontecendo sem sentido, a Animação "ParadoNoTabuleiro" tem uma transição para "ParadoNaPlataforma", e essa transição não tem HasExitTime marcado, mas ela está rodando como se tivesse! Daí fui pro Script pra ver se era alguma coisa nos testes direto no Animator, mas faz a mesma coisa, e pior, chegou a rodar outra animação que não tem nada a ver kkkk misericórdia! Sorri de desespero. Preferi o SetTrigger() por que achei mais simples que as demais. Daí troquei o SetTrigger() dessa transição pela Bool, dá no mesmo. Outra coisa que acontece, se eu clicar pela primeira vez na animação, ela faz isso, mas se eu clicar pela segunda vez na mesma animação, ela não faz mais! Detalhe, esse comportamento é de "ParadoNoTabuleiro" pra "ParadoNaPlataforma", sendo que "ParadoNaPlataforma" é a primeira animação rodada, a default da cor laranja. Não sei se isso tem alguma coisa a ver.
Em resumo, o Jogo inicia o Personagem com a Animação "ParadoNaPlataforma", que vai pra animação "CaindoNaCasaInicial" sem HasExitTime, que vai pra animação "ParadoNoTabuleiro" com HasExitTime, MAS de "ParadoNoTabuleiro" pra "ParadoNaPlataforma" não tem HasExitTime, o Erro está aí, esta transição está rodando como se tivesse o HasExitTime.
Alguém já passou por essa e sabe o que é? Seria um bug mesmo? Cara, esses bugs da Unity é o fim, vc se mata fazendo o negócio certo, mas ela inventa essas presepadas. Alguém pfv, obg!
Última edição por WLCS22 em Sex Abr 21, 2023 7:40 pm, editado 3 vez(es)
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Pesquisando e mexendo aqui, coloquei uma animação empty como a default e depois dela a "ParadoNaPlataforma", a antiga default. Resolveu, mas só com essa, infelizmente está acontecendo com outras também. isso é tipo um "efeito colateral" do SetTrigger(), bug ou alguma coisa que eu esteja fazendo de errado?
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Ajuda aí pessoal...
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Já tentou mudar a suavização da transição das animações, se for o caso já deve resolver o problema.
LúcioHenrique098- Avançado
- PONTOS : 2148
REPUTAÇÃO : 31
Idade : 20
Áreas de atuação : Intermediário em Programação, Iniciante em Modelagem
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Bom dia! Obg pela resposta.
Já, o problema é que ele roda a outra animação mesmo sem ter setado ela pra que ele seja rodada, nem ter o HasExitTime ativado pra ela
Já, o problema é que ele roda a outra animação mesmo sem ter setado ela pra que ele seja rodada, nem ter o HasExitTime ativado pra ela
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Já tentou trocar a versão da Unity para ver se o problema se resolve?
LúcioHenrique098- Avançado
- PONTOS : 2148
REPUTAÇÃO : 31
Idade : 20
Áreas de atuação : Intermediário em Programação, Iniciante em Modelagem
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Se você puder, manda uns prints do seu Animator Controller
LúcioHenrique098- Avançado
- PONTOS : 2148
REPUTAÇÃO : 31
Idade : 20
Áreas de atuação : Intermediário em Programação, Iniciante em Modelagem
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
LúcioHenrique098 escreveu:Já tentou trocar a versão da Unity para ver se o problema se resolve?
Estou usando a Versão 2022.1.23f1. Se não for a mais recente, é uma das mais recentes.
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
LúcioHenrique098 escreveu:Se você puder, manda uns prints do seu Animator Controller
Amigo, eu acho que foi o outro Animator, pq tô testando em outro, o atual que estou usando, e ele funcionou! Só que no outro, o antigo, ele ora funcionava, ora não. Daí fico com receio de usar ele. Se der bronca de novo com esse Animator de agora, falo pra vc novamente Obg pela ajuda!
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Voltei, amigo. Olha, mudei o Parâmetro do Animator Controller para Bool e está dando 2 broncas:
Tenho a Animação "CaindoNaCasaInicial", que é Iniciada com o Play(). Ela tem uma Transição com HasExitTime para "ParadoNoTabuleiro".
"ParadoNoTabuleiro" tem uma transição para "LevantandoAsMaosPraSerClicado" e vice-versa, ambas sem HasExitTime.
A 1ª bronca é que de "ParadoNoTabuleiro" para "LevantandoAsMaosPraSerClicado" a transição se comporta como se tivesse o HasExitTime, só que não tem.
A 2ª bronca é que se eu mudar a Animação rapidamente entre essas duas, ela não muda. Por ex.: Há um Botão que muda de Animação do Personagem de "LevantandoAsMaosPraSerClicado" para "ParadoNoTabuleiro" e vice-versa. Se eu clicar rapidamente, ele não muda de uma pra outra.
Isso tem a ver com alguma coisa no "Settings", como por ex, "Fixed Duration"? Essa opção está marcada em todas as transições.
Estou no aguardo da sua ajuda!
-----------------------------------------------------------------------------------------
Mudei o título do tópico para o caso de outras pessoas poderem ajudar também
Tenho a Animação "CaindoNaCasaInicial", que é Iniciada com o Play(). Ela tem uma Transição com HasExitTime para "ParadoNoTabuleiro".
"ParadoNoTabuleiro" tem uma transição para "LevantandoAsMaosPraSerClicado" e vice-versa, ambas sem HasExitTime.
A 1ª bronca é que de "ParadoNoTabuleiro" para "LevantandoAsMaosPraSerClicado" a transição se comporta como se tivesse o HasExitTime, só que não tem.
A 2ª bronca é que se eu mudar a Animação rapidamente entre essas duas, ela não muda. Por ex.: Há um Botão que muda de Animação do Personagem de "LevantandoAsMaosPraSerClicado" para "ParadoNoTabuleiro" e vice-versa. Se eu clicar rapidamente, ele não muda de uma pra outra.
Isso tem a ver com alguma coisa no "Settings", como por ex, "Fixed Duration"? Essa opção está marcada em todas as transições.
Estou no aguardo da sua ajuda!
-----------------------------------------------------------------------------------------
Mudei o título do tópico para o caso de outras pessoas poderem ajudar também
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Você pode mandar fotos do Animator, com as configurações da transição que está bugada aberta?
LúcioHenrique098- Avançado
- PONTOS : 2148
REPUTAÇÃO : 31
Idade : 20
Áreas de atuação : Intermediário em Programação, Iniciante em Modelagem
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
sim.
Com HasExitTime
https://i.imgur.com/F9y31Vs.png
Sem HasExitTime
https://i.imgur.com/MKcdmvJ.png
Com HasExitTime
https://i.imgur.com/F9y31Vs.png
Sem HasExitTime
https://i.imgur.com/MKcdmvJ.png
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Re: Unity - Transições no AnimatorController rodando errado
Cara, corrigi.
Enquanto estava checando as outras transições, ocorreu uma coisa bizarra, de "ParadoNoTabuleiro" (Anterior) para "CorrendoPraFrente" (Atual) ele rodou as duas ao mesmo tempo!
Daí quando vi isso, fui lá no Script e no Método que dá Stop() na Animação (Atual), coloquei um SetBool() passando "-1" no parâmetro, isso anulou o SetBool() da Animação (Anterior) e rodou a Animação (Atual) sem interrupção da (Anterior). Ficou assim:
Testei com as outras e funcionou em todas. Obg por ter se disposto a ajudar. Fica com Deus.
Enquanto estava checando as outras transições, ocorreu uma coisa bizarra, de "ParadoNoTabuleiro" (Anterior) para "CorrendoPraFrente" (Atual) ele rodou as duas ao mesmo tempo!
Daí quando vi isso, fui lá no Script e no Método que dá Stop() na Animação (Atual), coloquei um SetBool() passando "-1" no parâmetro, isso anulou o SetBool() da Animação (Anterior) e rodou a Animação (Atual) sem interrupção da (Anterior). Ficou assim:
- Código:
public void animParadoNoTabuleiro() {
// Corta qualquer Animação Anterior
_animator.SetInteger("Animacao", -1);
// Animação Corrente
_animator.SetInteger("Animacao", 1);
}
public void animCorrendoPraFrente() {
// Corta qualquer Animação Anterior
_animator.SetInteger("Animacao", -1);
// Animação Corrente
_animator.Play("CorrendoPraFrente");
}
Testei com as outras e funcionou em todas. Obg por ter se disposto a ajudar. Fica com Deus.
WLCS22- MembroAvançado
- PONTOS : 1881
REPUTAÇÃO : 60
Respeito as regras :
Tópicos semelhantes
» Bug - Unity rodando com menos FPS no BAIXO e MAIS no ULTRA
» Transições de Animações de Sprites
» Música contínua mais transições.
» Algumas perguntas sobre cenas e transições
» Deixar um processo do jogo rodando em segundo plano (Android)
» Transições de Animações de Sprites
» Música contínua mais transições.
» Algumas perguntas sobre cenas e transições
» Deixar um processo do jogo rodando em segundo plano (Android)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos