Mecanim complexo
4 participantes
Página 1 de 1
Mecanim complexo
Bom to com algumas horinhas vagas para esse final de semana e estava pensando em rever meu projeto LineBattle e melhorar mais a parte da mecanim, vendo alguns jogos para tirar ideias observei bem o GTAV, cujo o player apos correr e soltar o botão da corrida ele dá aquela animação de reduzida e quando ele começa a correr ele faz a animação de arranque e também na hora de andar sendo que utiliza uma animação inicial diferente, alguém sabe como é feito isso ou conhecem algum tutorial para criar mecanim mais complexas como essa ?
Re: Mecanim complexo
Consegui fazer um efeito desse usando blendTrees no animator da unity;
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Mecanim complexo
Phph09 escreveu:Consegui fazer um efeito desse usando blendTrees no animator da unity;
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Sim eu tentei usando BlendTrees gosto muito de usar essa ferramenta más o porem é que não entendi como posso colocar uma animação antes da de correr que reproduza completamente para depois prosseguir para a corrida intensa sendo que também ao reduzir a velocidade não reproduza a de arranque anterior, sendo que a blendTrees se comporta pela pressão ao pressionar os botões e pela direção (Na minha visão), pode descrever como fez? kk
Re: Mecanim complexo
olha, eu tenho uma ideia pra uma gambiarra ;-; talves se voce por uns colisores no pe do boneco e quando estiver no chão você checar a velocidade e transferir ela pro boneco talvez funcione, porem seria uma grande gambiarra,em vez de charactere controler seria bom utilidar o rigidbory.addforce,sla foi uma ideia que eu tive,porem pode dar uns erros dependendo do cenario, se tiver IK-foot talves n deie erro talves deie, n sei testa ai sla;--;
num sei ;-; sera que eu ajudei?
num sei ;-; sera que eu ajudei?
Re: Mecanim complexo
Veja os videos que você vai entender melhorMRX escreveu:Phph09 escreveu:Consegui fazer um efeito desse usando blendTrees no animator da unity;
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Sim eu tentei usando BlendTrees gosto muito de usar essa ferramenta más o porem é que não entendi como posso colocar uma animação antes da de correr que reproduza completamente para depois prosseguir para a corrida intensa sendo que também ao reduzir a velocidade não reproduza a de arranque anterior, sendo que a blendTrees se comporta pela pressão ao pressionar os botões e pela direção (Na minha visão), pode descrever como fez? kk
Depois você faz um blendTree do player correndo com o arranque inicial, e outra dele correndo sem o arranque inicial;
Depois disso eh soh fazer o funcionamento por Scripts:
você verifica se ele está corrento e deixa uma bool "CorreuAntes" verdadeira, e faz um timer, para depois de um tempo a bool "CorreuAntes" ser falsa, ae quando ele pressionar para correr, você verifica se "CorreuAntes" for igual a true:
Ultiliza a blendTree dele correndo com o Arranque
Caso seja false:
Ultiliza a blendTree dele correndo sem o arranque
Faz sentido?
(ps: As blend trees nao funcionam pelos botoes e pela direção, elas funcionam a partir de um(ou 2) parametros float, que juntos fazem uma combinação e transição gradual entre animações, bem util nesses casos)
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Mecanim complexo
Phph09 escreveu:Veja os videos que você vai entender melhorMRX escreveu:Phph09 escreveu:Consegui fazer um efeito desse usando blendTrees no animator da unity;
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Sim eu tentei usando BlendTrees gosto muito de usar essa ferramenta más o porem é que não entendi como posso colocar uma animação antes da de correr que reproduza completamente para depois prosseguir para a corrida intensa sendo que também ao reduzir a velocidade não reproduza a de arranque anterior, sendo que a blendTrees se comporta pela pressão ao pressionar os botões e pela direção (Na minha visão), pode descrever como fez? kk
Depois você faz um blendTree do player correndo com o arranque inicial, e outra dele correndo sem o arranque inicial;
Depois disso eh soh fazer o funcionamento por Scripts:
você verifica se ele está corrento e deixa uma bool "CorreuAntes" verdadeira, e faz um timer, para depois de um tempo a bool "CorreuAntes" ser falsa, ae quando ele pressionar para correr, você verifica se "CorreuAntes" for igual a true:
Ultiliza a blendTree dele correndo com o Arranque
Caso seja false:
Ultiliza a blendTree dele correndo sem o arranque
Faz sentido?
(ps: As blend trees nao funcionam pelos botoes e pela direção, elas funcionam a partir de um(ou 2) parametros float, que juntos fazem uma combinação e transição gradual entre animações, bem util nesses casos)
Deixa eu ver se entendi haha , fazer 2 BlendTree más um apenas com a animação de correr inicial e o outro com a continuação da animação com o loop? más quando o jogador para de correr ele tbm recebe a animação de parada brusca, e como seria a transição entre as Blend ? checando os valores da float ?
e como disse na minha visão kk pq resumo assim a blend trees pq sempre uso dessa forma, usando um parâmetro para velocidade do jogador e outro para direção entre essa velocidade, mas ainda não entendi muito bem se não for como disse kkk
Re: Mecanim complexo
luiz12345 escreveu:olha, eu tenho uma ideia pra uma gambiarra ;-; talves se voce por uns colisores no pe do boneco e quando estiver no chão você checar a velocidade e transferir ela pro boneco talvez funcione, porem seria uma grande gambiarra,em vez de charactere controler seria bom utilidar o rigidbory.addforce,sla foi uma ideia que eu tive,porem pode dar uns erros dependendo do cenario, se tiver IK-foot talves n deie erro talves deie, n sei testa ai sla;--;
num sei ;-; sera que eu ajudei?
A gambiarra ta bem feita más prevejo muitos bugs e um certo peso a mais nas verificações constantes kkk, no caso queria fazer pelo Animetor até pq seria mais fácil e leve sincronizar com o Master Server
Re: Mecanim complexo
Basicamente isso,MRX escreveu:Phph09 escreveu:Veja os videos que você vai entender melhorMRX escreveu:Phph09 escreveu:Consegui fazer um efeito desse usando blendTrees no animator da unity;
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Sim eu tentei usando BlendTrees gosto muito de usar essa ferramenta más o porem é que não entendi como posso colocar uma animação antes da de correr que reproduza completamente para depois prosseguir para a corrida intensa sendo que também ao reduzir a velocidade não reproduza a de arranque anterior, sendo que a blendTrees se comporta pela pressão ao pressionar os botões e pela direção (Na minha visão), pode descrever como fez? kk
Depois você faz um blendTree do player correndo com o arranque inicial, e outra dele correndo sem o arranque inicial;
Depois disso eh soh fazer o funcionamento por Scripts:
você verifica se ele está corrento e deixa uma bool "CorreuAntes" verdadeira, e faz um timer, para depois de um tempo a bool "CorreuAntes" ser falsa, ae quando ele pressionar para correr, você verifica se "CorreuAntes" for igual a true:
Ultiliza a blendTree dele correndo com o Arranque
Caso seja false:
Ultiliza a blendTree dele correndo sem o arranque
Faz sentido?
(ps: As blend trees nao funcionam pelos botoes e pela direção, elas funcionam a partir de um(ou 2) parametros float, que juntos fazem uma combinação e transição gradual entre animações, bem util nesses casos)
Deixa eu ver se entendi haha , fazer 2 BlendTree más um apenas com a animação de correr inicial e o outro com a continuação da animação com o loop? más quando o jogador para de correr ele tbm recebe a animação de parada brusca, e como seria a transição entre as Blend ? checando os valores da float ?
e como disse na minha visão kk pq resumo assim a blend trees pq sempre uso dessa forma, usando um parâmetro para velocidade do jogador e outro para direção entre essa velocidade, mas ainda não entendi muito bem se não for como disse kkk
seria 2 blendTrees uma com a de correr e a de aranco e outra somente com a de correr
e por script você falaria qual que seria utilizada naquele momento
(a parada brusca, eu não sei uma forma que ficaria clara, para te explicar como fazer, mas é seguindo esse esquema)
a transição entre as BledTrees podem ser feitas por um parametro bool apartir de makeTransitions você seta esse parametro com o:
- Código:
GetComponent<Animator>().SetBool(string NomeDoParametroBool,bool valorDaBool);
Esses floats que eu falei, sao como voce diz "a velocidade e a direção do jogador"
Agora que você explicou melhor como que VOCÊ usa as blendTrees(antes eu nao estava entendendo o seu uso) posso afirmar que é absolutamente assim que elas funcionam
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Mecanim complexo
Para mim, o esquema seria assim:
Você teria a animação de arranque, o loop e depois a animação de parada, todas fora de blend tree, apenas as animações no Animtaor e transições entre elas. Geralmente, você utiliza um float como o input(Pelo Input.GetAxis("Horizontal"), por exemplo) e transfere para o animator de forma gradativa. Com isso, você terá quando o player clicar e soltar o botão de movimento, um float de 0 a 1. No Animator, quando começar a animação ele irá para a animação de arrancada, terá a transição para o loop feita automática depois de terminar a animação de arranca e quando soltar o botão o valor float irá para 0 que significa que o jogador deu um input de parar, você coloca a transição de parada depois do loop e quando diminuir para menos de 0.1f por exemplo, você seta para começar a transição de parada.
As blend trees seria interessantes, se fossem Idle - Run(parado - correr), para arrancada e paradas mais "dinâmicos", creio que assim seria uma aplicação mais simples e mais direta.
Você teria a animação de arranque, o loop e depois a animação de parada, todas fora de blend tree, apenas as animações no Animtaor e transições entre elas. Geralmente, você utiliza um float como o input(Pelo Input.GetAxis("Horizontal"), por exemplo) e transfere para o animator de forma gradativa. Com isso, você terá quando o player clicar e soltar o botão de movimento, um float de 0 a 1. No Animator, quando começar a animação ele irá para a animação de arrancada, terá a transição para o loop feita automática depois de terminar a animação de arranca e quando soltar o botão o valor float irá para 0 que significa que o jogador deu um input de parar, você coloca a transição de parada depois do loop e quando diminuir para menos de 0.1f por exemplo, você seta para começar a transição de parada.
As blend trees seria interessantes, se fossem Idle - Run(parado - correr), para arrancada e paradas mais "dinâmicos", creio que assim seria uma aplicação mais simples e mais direta.
Re: Mecanim complexo
Phph09 escreveu:Basicamente isso,MRX escreveu:Phph09 escreveu:Veja os videos que você vai entender melhorMRX escreveu:Phph09 escreveu:Consegui fazer um efeito desse usando blendTrees no animator da unity;
Veja o video 10-11-12 dessa série:
https://m.youtube.com/playlist?list=PLJfktYG5YLJGK-ROk1Gj1_i8AtnIyeKTs
Sim eu tentei usando BlendTrees gosto muito de usar essa ferramenta más o porem é que não entendi como posso colocar uma animação antes da de correr que reproduza completamente para depois prosseguir para a corrida intensa sendo que também ao reduzir a velocidade não reproduza a de arranque anterior, sendo que a blendTrees se comporta pela pressão ao pressionar os botões e pela direção (Na minha visão), pode descrever como fez? kk
Depois você faz um blendTree do player correndo com o arranque inicial, e outra dele correndo sem o arranque inicial;
Depois disso eh soh fazer o funcionamento por Scripts:
você verifica se ele está corrento e deixa uma bool "CorreuAntes" verdadeira, e faz um timer, para depois de um tempo a bool "CorreuAntes" ser falsa, ae quando ele pressionar para correr, você verifica se "CorreuAntes" for igual a true:
Ultiliza a blendTree dele correndo com o Arranque
Caso seja false:
Ultiliza a blendTree dele correndo sem o arranque
Faz sentido?
(ps: As blend trees nao funcionam pelos botoes e pela direção, elas funcionam a partir de um(ou 2) parametros float, que juntos fazem uma combinação e transição gradual entre animações, bem util nesses casos)
Deixa eu ver se entendi haha , fazer 2 BlendTree más um apenas com a animação de correr inicial e o outro com a continuação da animação com o loop? más quando o jogador para de correr ele tbm recebe a animação de parada brusca, e como seria a transição entre as Blend ? checando os valores da float ?
e como disse na minha visão kk pq resumo assim a blend trees pq sempre uso dessa forma, usando um parâmetro para velocidade do jogador e outro para direção entre essa velocidade, mas ainda não entendi muito bem se não for como disse kkk
seria 2 blendTrees uma com a de correr e a de aranco e outra somente com a de correr
e por script você falaria qual que seria utilizada naquele momento
(a parada brusca, eu não sei uma forma que ficaria clara, para te explicar como fazer, mas é seguindo esse esquema)
a transição entre as BledTrees podem ser feitas por um parametro bool apartir de makeTransitions você seta esse parametro com o:
- Código:
GetComponent<Animator>().SetBool(string NomeDoParametroBool,bool valorDaBool);
Esses floats que eu falei, sao como voce diz "a velocidade e a direção do jogador"
Agora que você explicou melhor como que VOCÊ usa as blendTrees(antes eu nao estava entendendo o seu uso) posso afirmar que é absolutamente assim que elas funcionam
Poh achei muito interessante essa ideia de troca entre blendTrees então vou insistir um pouco mais para entender melhor se não se importa haha, assim ... digamos que fiz como você disse criei as BlendTrees uma apenas para animação de arrancada e outra para a corrida já em loop, más como vou chamar a outra BlendTrees ao finalizar a animação de arrancada da Blend Anterior ? pq no caso de animações fora da Blend eu checaria com o Exit seguindo a make apos concluir a animação
"Agora que você explicou melhor como que VOCÊ usa as blendTrees" cara li isso de maneira sarcástica e rachei de rir kk não sei se foi a intenção
Re: Mecanim complexo
recagonlei escreveu:Para mim, o esquema seria assim:
Você teria a animação de arranque, o loop e depois a animação de parada, todas fora de blend tree, apenas as animações no Animtaor e transições entre elas. Geralmente, você utiliza um float como o input(Pelo Input.GetAxis("Horizontal"), por exemplo) e transfere para o animator de forma gradativa. Com isso, você terá quando o player clicar e soltar o botão de movimento, um float de 0 a 1. No Animator, quando começar a animação ele irá para a animação de arrancada, terá a transição para o loop feita automática depois de terminar a animação de arranca e quando soltar o botão o valor float irá para 0 que significa que o jogador deu um input de parar, você coloca a transição de parada depois do loop e quando diminuir para menos de 0.1f por exemplo, você seta para começar a transição de parada.
As blend trees seria interessantes, se fossem Idle - Run(parado - correr), para arrancada e paradas mais "dinâmicos", creio que assim seria uma aplicação mais simples e mais direta.
Então racagonlei, eu tive de cara a ideia de fazer fora das blend como sitou tirando a parte do script, más veio a duvida se não tem uma maneira de fazer isto de forma mais dinâmica por se dizer pois o resultado final da movimentação da body desconsiderando as mask dos braços etc ficou bem grande com makes transitions para todos os lados
Re: Mecanim complexo
A dinâmica tu criaria a partir do flow das transições e quantidade de animações/blendtrees... Tu está utilizando o Sub-State Machines? Caso não, procure sobre e veja que poderá ser aplicado da maneira que eu disse e de forma super dinâmica e otimizada...
Sobre os blendtress, velho, eu acho que a aplicação delas são mais utilizadas para mesclar uma transição de animações de maneira "suave" entre elas(Ré ~ Parado ~ Em frente). Por não serem animações loopadas e serem para transições antes e depois de um loop, a blendtree acaba que sendo uma má escolha talvez, dependendo da aplicação, já que como tu tem que transitar entre as trees por um valor numérico. Tu criando as animações como disse acima em uma sub state machine, seria uma aplicação mais elaborada, creio eu.
https://docs.unity3d.com/Manual/NestedStateMachines.html
Sobre os blendtress, velho, eu acho que a aplicação delas são mais utilizadas para mesclar uma transição de animações de maneira "suave" entre elas(Ré ~ Parado ~ Em frente). Por não serem animações loopadas e serem para transições antes e depois de um loop, a blendtree acaba que sendo uma má escolha talvez, dependendo da aplicação, já que como tu tem que transitar entre as trees por um valor numérico. Tu criando as animações como disse acima em uma sub state machine, seria uma aplicação mais elaborada, creio eu.
https://docs.unity3d.com/Manual/NestedStateMachines.html
Tópicos semelhantes
» [TUTORIAL] Como Adicionar Animação Ao AI Utilizando Mecanim
» [TUTORIAL] Sistema de carro complexo.
» Alguem sabe como posso editar animações do mecanim?
» [TUTORIAL] Primeiro programa "complexo" em C# para iniciantes
» Como fazer um campo de visao, vi varios tuturs mas realmente parece ser complexo
» [TUTORIAL] Sistema de carro complexo.
» Alguem sabe como posso editar animações do mecanim?
» [TUTORIAL] Primeiro programa "complexo" em C# para iniciantes
» Como fazer um campo de visao, vi varios tuturs mas realmente parece ser complexo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos