[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
+17
pedroorf
g
Jhonathan034
dstaroski
mitthows
luckas211
Hanry
kirito37
Hyuke
francieljesus
LordGamesYT
Zecandy
Callyde Jr
mateusvasco100
NKKF
MRX
rafaelllsd
21 participantes
Página 1 de 1
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
Segunda parte:
Script:
- Código:
using UnityEngine;
/// <summary>
/// Gerencia o controle de locomoção do player.
/// </summary>
[RequireComponent(typeof(Animator))] //Obriga o componente Animator
public class ControlePlayer : MonoBehaviour
{
[SerializeField]
[Tooltip("Rate per seconds holding down input")]
private float rotationRate = 360; //Valor para velocidade da rotação do player
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
private void Awake()
{
anim = GetComponent<Animator>(); //Atribuindo o componente a variável antes da inicialização
}
private void Update()
{
float turnAxis = Input.GetAxis(turnInputAxis);
ApplyInput(turnAxis);
anim.SetFloat("Horizontal", Input.GetAxis("Horizontal")); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat("Vertical", Input.GetAxis("Vertical")); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey(KeyCode.LeftShift))
anim.SetBool("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
else
anim.SetBool("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
private void ApplyInput(float turnInput)
{
Turn(turnInput);
}
private void Turn(float input)
{
transform.Rotate(0, input * rotationRate * Time.deltaTime, 0);
}
}
Última edição por dstaroski em Dom Out 06, 2019 10:29 am, editado 4 vez(es) (Motivo da edição : Melhoria no código.)
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Tava faltando um bom tutorial no youtube em portugues sobre isso. Muito bom, espero a 2° parte...
rafaelllsd- ProgramadorMaster
- PONTOS : 5243
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Muito legal mn, explica muito bem !!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Muito bom, gostei, ensina de boas
Convidado- Convidado
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Boa noite! Segunda parte publicada, vejam no inicio do post, já está editado com o segundo e último vídeo.
Obrigado e abraço! Vlw M4theuz!
Obrigado e abraço! Vlw M4theuz!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Que isso meu jovem, assim vou ficar feliz da vida!dstaroski escreveu:Boa noite! Segunda parte publicada, vejam no inicio do post, já está editado com o segundo e último vídeo.
Obrigado e abraço! Vlw M4theuz!
Script e tudo kkkk.
Convidado- Convidado
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Incrível a sua dedicação, parabéns, isto vai ajudar muita gente. :D
NKKF- ProgramadorMaster
- PONTOS : 4819
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
mateusvasco100- Iniciante
- PONTOS : 2388
REPUTAÇÃO : 1
Idade : 25
Áreas de atuação : Programação, Iniciante em unity e design de jogos.
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Você pode ensinar como faz pra câmera se mover junto com o personagem, tipo.
Em vez de usar a câmera principal, teria uma câmera em cima dele que iria seguir ele.
Em vez de usar a câmera principal, teria uma câmera em cima dele que iria seguir ele.
Convidado- Convidado
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Ah sim, a câmera acompanha o personagem, pois ela torna-se parente do objeto alvo, mas eu acabei usando a main camera mesmo, mas dá pra usar outra também, é só setar no script do sistema de câmeras. Mas é uma sugestão sim que dá pra fazer, eu uso o sistema do Marcos para câmeras, é o mais completo que eu conheço até o momento, e já vem com proteção contra muros e paredes e tals.M4theuz escreveu:Você pode ensinar como faz pra câmera se mover junto com o personagem, tipo.
Em vez de usar a câmera principal, teria uma câmera em cima dele que iria seguir ele.
Obrigado a todos pelos comentários!
Abraço!
Última edição por dstaroski em Qua maio 16, 2018 9:07 pm, editado 1 vez(es) (Motivo da edição : Editado.)
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Muito bom cara, parabéns e abs.
Zecandy- Mestre
- PONTOS : 3507
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
vlw brow!Zecandy escreveu:Muito bom cara, parabéns e abs.
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
como baixa os scripts?
LordGamesYT- Iniciante
- PONTOS : 2265
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Bom dia! é só copiar e colar, mas é importante você assistir os vídeos PT1 e PT2 para entender como usar.LordGamesYT escreveu:como baixa os scripts?
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Oi espero que eteja bem, bom sempre quando copio o script e saio pra coloca no personagem pede para criar um novo do zero e nao sei como fazer umdstaroski escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Animator))] //Obriga o componente do Animator
public class ControlePlayer : MonoBehaviour {
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
[Tooltip("Rate per seconds holding down input")]
public float rotationRate = 360; //Valor para velocidade da rotação do player
void Start()
{
anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
}
void Update ()
{
float turnAxis = Input.GetAxis (turnInputAxis);
ApplyInput (turnAxis);
float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey (KeyCode.LeftShift)) {
anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
}
else
{
anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
}
void ApplyInput(float turnInput)
{
Turn (turnInput);
}
void Turn(float input)
{
transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
}
}
Abraço!
LordGamesYT- Iniciante
- PONTOS : 2265
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
sempre ta dizendo assim "please fix compile errors before creating new script components" se puder me ajudar agradeço pq ja faz um tempo que to tentando criar um jogo mais o unico tutorial bom que encontrei foi o seu.
abraço!
abraço!
LordGamesYT- Iniciante
- PONTOS : 2265
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
consegui colocar ele pra se mexer, mais so que nao anda eu aperto "W" e nao vai para frente, aperto "S" e nao vai para tras, ta ruim pra resolver isso kkk
LordGamesYT- Iniciante
- PONTOS : 2265
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Conseguiu fazer o script então? se ele não responde quando pressiona os botões, tem algo errado. Recomendo que veja os vídeos novamente (pt1 e pt2) com calma e atenção, pausando o vídeo se necessário para acompanhar. Pois deve haver algum detalhe que você esqueceu. Recomendo que estude sobre códigos para Unity 3D em C#, aqui tem uma playlist com um excelente conteúdo para aprender:LordGamesYT escreveu:consegui colocar ele pra se mexer, mais so que nao anda eu aperto "W" e nao vai para frente, aperto "S" e nao vai para tras, ta ruim pra resolver isso kkk
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
sim consegui no que ele so consegue movimentar a parte do idle, as outras para se movimentar nao vai mais vou ver tudo de novo com mais atenção obrigado pela dica caso tiver mais uma dulvida pergunto aqui denovo obrigado pela ajuda fica com deus, abraçodstaroski escreveu:Conseguiu fazer o script então? se ele não responde quando pressiona os botões, tem algo errado. Recomendo que veja os vídeos novamente (pt1 e pt2) com calma e atenção, pausando o vídeo se necessário para acompanhar. Pois deve haver algum detalhe que você esqueceu. Recomendo que estude sobre códigos para Unity 3D em C#, aqui tem uma playlist com um excelente conteúdo para aprender:LordGamesYT escreveu:consegui colocar ele pra se mexer, mais so que nao anda eu aperto "W" e nao vai para frente, aperto "S" e nao vai para tras, ta ruim pra resolver isso kkk
Abraço!
LordGamesYT- Iniciante
- PONTOS : 2265
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
mano configurei tudo certinho so que ta dizendo que a referencia de objeto nao esta defenida pode me ajudar?
LordGamesYT- Iniciante
- PONTOS : 2265
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
ok, você colocou o script no seu personagem? fez alguma modificação no código? se sim, poste ele aqui por gentileza. O seu personagem possui o componente Animator? e dentro do Animator o controlador de animação (Animator Controller) com os parâmetros Horizontal, Vertical e Run e a árvore de animação definida?LordGamesYT escreveu:sim fiz tudo direito so que nao consegui fazer ele andar pq ta dizendo que a referencia de objeto nao ta definidafrancisco barroso escreveu:lord games vc baixou o Raw mocap data? ver se vc tirou a copia de cada animaçao
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
[list=linenums]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*][RequireComponent(typeof(Animator))] //Obriga o componente do Animator
[*]public class ControlePlayer : MonoBehaviour {
[*] private string turnInputAxis = "Horizontal";
[*] private Animator anim; //Declarando o animator como uma variável
[*] [Tooltip("Rate per seconds holding down input")]
[*] public float rotationRate = 360; //Valor para velocidade da rotação do player
[*] void Start()
[*] {
[*] anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
[*] }
[*] void Update ()
[*] {
[*] float turnAxis = Input.GetAxis (turnInputAxis);
[*] ApplyInput (turnAxis);
[*] float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
[*] float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
[*] anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
[*] anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
[*] //Correndo ou não
[*] if (Input.GetKey (KeyCode.LeftShift)) {
[*] anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
[*] }
[*] else
[*] {
[*] anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
[*] }
[*] }
[*] void ApplyInput(float turnInput)
[*] {
[*] Turn (turnInput);
[*] }
[*] void Turn(float input)
[*] {
[*] transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
[*] }
[*]}
[/list]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*][RequireComponent(typeof(Animator))] //Obriga o componente do Animator
[*]public class ControlePlayer : MonoBehaviour {
[*] private string turnInputAxis = "Horizontal";
[*] private Animator anim; //Declarando o animator como uma variável
[*] [Tooltip("Rate per seconds holding down input")]
[*] public float rotationRate = 360; //Valor para velocidade da rotação do player
[*] void Start()
[*] {
[*] anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
[*] }
[*] void Update ()
[*] {
[*] float turnAxis = Input.GetAxis (turnInputAxis);
[*] ApplyInput (turnAxis);
[*] float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
[*] float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
[*] anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
[*] anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
[*] //Correndo ou não
[*] if (Input.GetKey (KeyCode.LeftShift)) {
[*] anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
[*] }
[*] else
[*] {
[*] anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
[*] }
[*] }
[*] void ApplyInput(float turnInput)
[*] {
[*] Turn (turnInput);
[*] }
[*] void Turn(float input)
[*] {
[*] transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
[*] }
[*]}
[/list]
francieljesus- Iniciante
- PONTOS : 2201
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
- Código:
Poderia me tirar uma dúvida? O meu personagem apenas rotaciona e ele é compatível com o corpo humanoide e também apliquei o root motion. Tem ideia do que pode ser?
Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Animator))] //Obriga o componente do Animator
public class ControlePlayer : MonoBehaviour {
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
[Tooltip("Rate per seconds holding down input")]
public float rotationRate = 360; //Valor para velocidade da rotação do player
void Start()
{
anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
}
void Update ()
{
float turnAxis = Input.GetAxis (turnInputAxis);
ApplyInput (turnAxis);
float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey (KeyCode.LeftShift)) {
anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
}
else
{
anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
}
void ApplyInput(float turnInput)
{
Turn (turnInput);
}
void Turn(float input)
{
transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
}
}
Abraço!
Hyuke- Iniciante
- PONTOS : 2182
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Oi espero que eteja bem, bom sempre quando copio o script e saio pra coloca no personagem pede para criar um novo do zero e nao sei como fazer umdstaroski o unity diz que o parâmetro vertical não existe. Você sabe o que pode ser? escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Animator))] //Obriga o componente do Animator
public class ControlePlayer : MonoBehaviour {
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
[Tooltip("Rate per seconds holding down input")]
public float rotationRate = 360; //Valor para velocidade da rotação do player
void Start()
{
anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
}
void Update ()
{
float turnAxis = Input.GetAxis (turnInputAxis);
ApplyInput (turnAxis);
float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey (KeyCode.LeftShift)) {
anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
}
else
{
anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
}
void ApplyInput(float turnInput)
{
Turn (turnInput);
}
void Turn(float input)
{
transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
}
}
Abraço!
Hyuke- Iniciante
- PONTOS : 2182
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Boa tarde! clicando com o botão direito do mouse dentro da aba Project e vá em Create > C# Script, ele deverá abrir o programa para códigos que sua Unity definiu por padrão, nas ultimas versões dela é o Visual Studio. E então poderá editar o script.Hyuke escreveu:Oi espero que eteja bem, bom sempre quando copio o script e saio pra coloca no personagem pede para criar um novo do zero e nao sei como fazer umdstaroski o unity diz que o parâmetro vertical não existe. Você sabe o que pode ser? escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Animator))] //Obriga o componente do Animator
public class ControlePlayer : MonoBehaviour {
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
[Tooltip("Rate per seconds holding down input")]
public float rotationRate = 360; //Valor para velocidade da rotação do player
void Start()
{
anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
}
void Update ()
{
float turnAxis = Input.GetAxis (turnInputAxis);
ApplyInput (turnAxis);
float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey (KeyCode.LeftShift)) {
anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
}
else
{
anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
}
void ApplyInput(float turnInput)
{
Turn (turnInput);
}
void Turn(float input)
{
transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
}
}
Abraço!
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Olá dstaroski, você sabe me dizer como eu faço para que as minhas próprias animações funcionem com root motion?
kirito37- Iniciante
- PONTOS : 2775
REPUTAÇÃO : 2
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Bom dia cara! pior que não sei não, nunca fiz nenhuma animação. Teria de pesquisar mesmo.kirito37 escreveu:Olá dstaroski, você sabe me dizer como eu faço para que as minhas próprias animações funcionem com root motion?
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Ah sim, estou dando uma pesquisada, mas obrigado pela atençãodstaroski escreveu:Bom dia cara! pior que não sei não, nunca fiz nenhuma animação. Teria de pesquisar mesmo.kirito37 escreveu:Olá dstaroski, você sabe me dizer como eu faço para que as minhas próprias animações funcionem com root motion?
Abraço!
kirito37- Iniciante
- PONTOS : 2775
REPUTAÇÃO : 2
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
dstaroski escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Abraço!
Ótimo vídeo! Bom dia, boa tarte, boa noite. Queria saber se tem como cortar a animação de corrida, assim que soltar o shift, basicamente, a animação de Stop_Run se inicia após o encerramento da animação de corrida causando certo "Delay" e queria saber se tem como evitar isso.
Desde já agradeço.
Hanry- Iniciante
- PONTOS : 2018
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Boa noite! dai você precisa ajustar mesmo, modificar a forma como finaliza uma animação para a outra, ou modificar o clipe da animação como eu mostro se eu não me engano no primeiro vídeo. Faça alguns testes no Animator ou tente adaptar a lógica do script para a animação de correr até conseguir o resultado esperado.Hanry escreveu:dstaroski escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Abraço!
Ótimo vídeo! Bom dia, boa tarte, boa noite. Queria saber se tem como cortar a animação de corrida, assim que soltar o shift, basicamente, a animação de Stop_Run se inicia após o encerramento da animação de corrida causando certo "Delay" e queria saber se tem como evitar isso.
Desde já agradeço.
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Olá, mano eu to tendo um problema talvez deve ter sido algo que fiz de errado porém não descobri o erro, Não to conseguindo fazer meu boneco se movimentar com o seu script, porém as animações e o rotate funcionam perfeitamente, só que ele não se movimento só faz as animações poderia me ajudar?
luckas211- Membro
- PONTOS : 2052
REPUTAÇÃO : 7
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
dstaroski escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Animator))] //Obriga o componente do Animator
public class ControlePlayer : MonoBehaviour {
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
[Tooltip("Rate per seconds holding down input")]
public float rotationRate = 360; //Valor para velocidade da rotação do player
void Start()
{
anim = GetComponent<Animator> (); //Atribuindo o componente a variável na inicialização
}
void Update ()
{
float turnAxis = Input.GetAxis (turnInputAxis);
ApplyInput (turnAxis);
float inputX = Input.GetAxis ("Horizontal"); //Capturando os imputs do eixo Horizontal e atribuindo para a variável inputX
float inputY = Input.GetAxis ("Vertical"); //Capturando os imputs do eixo Vertical e atribuindo para a variável inputY
anim.SetFloat ("Horizontal", inputX); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat ("Vertical", inputY); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey (KeyCode.LeftShift)) {
anim.SetBool ("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
}
else
{
anim.SetBool ("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
}
void ApplyInput(float turnInput)
{
Turn (turnInput);
}
void Turn(float input)
{
transform.Rotate (0, input * rotationRate * Time.deltaTime, 0);
}
}
Abraço!
mitthows- Iniciante
- PONTOS : 1991
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Boa tarde! reveja os vídeos com atenção e calma, deves ter esquecido de ajustar ou configurar algum detalhe.luckas211 escreveu:Olá, mano eu to tendo um problema talvez deve ter sido algo que fiz de errado porém não descobri o erro, Não to conseguindo fazer meu boneco se movimentar com o seu script, porém as animações e o rotate funcionam perfeitamente, só que ele não se movimento só faz as animações poderia me ajudar?
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Muito bom o vídeo, muito bem explicado de fácil de aprender. Parabéns ! você poderia por favor me dar alguns exemplos de animações que suportam root motion ? o Raw Mocap Data não esta mais ma Assets Store e eu ainda n encontrei uma animação q o meu player saia do lugar : (
Jhonathan034- Iniciante
- PONTOS : 2013
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Jhonathan034 escreveu:Muito bom o vídeo, muito bem explicado de fácil de aprender. Parabéns ! você poderia por favor me dar alguns exemplos de animações que suportam root motion ? o Raw Mocap Data não esta mais ma Assets Store e eu ainda n encontrei uma animação q o meu player saia do lugar : (
Entra no site https://www.mixamo.com , Tem animações possivéis de usar nesse tutorial.
g- Membro
- PONTOS : 2878
REPUTAÇÃO : 15
Áreas de atuação : Iniciante em C#, Modelagem,Qualquer coisa
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Boa tarde! como o amigo acima disse, na Mixamo você consegue animações compatíveis com root motion, também na Asset store deve ter outros packs de animações que devem funcionar, as animações para personagem em terceira pessoa que vem incluídas no pack Standard Assets da Unity funcionam também.Jhonathan034 escreveu:Muito bom o vídeo, muito bem explicado de fácil de aprender. Parabéns ! você poderia por favor me dar alguns exemplos de animações que suportam root motion ? o Raw Mocap Data não esta mais ma Assets Store e eu ainda n encontrei uma animação q o meu player saia do lugar : (
Abraço!
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Esses dois videos foram muito importantes hj p mim..rsrsrss
pedroorf- Iniciante
- PONTOS : 3137
REPUTAÇÃO : 2
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Olá a todos! Desculpem por perguntar neste tópico, mas gostaria que me explicasse uma coisa, no segundo vídeo você resolveu o problema de colisão colocando um Character Controller, blz, mas acontece que ao caminhar por alguma elevação o personagem não retorna ao chão, pois está sem física. Se coloco um RigidBody, daí as coisas ficam malucas, e nada funciona. Estou usando o root motion ativado e update mode como animate phisics, como posso resolver isso? Agradeço antecipadamente!
wagnercaragua- Iniciante
- PONTOS : 2122
REPUTAÇÃO : 6
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
BOA NOITE, segui todos os passos do vídeo e na hora de colocar o script que foi disponibilizado no tutorial, ele dá 9 erros. não tenho ideia do porque. por favor, me ajudem. sou novo nisso e to bem perdido. abraços.
Brunobarradas- Iniciante
- PONTOS : 1482
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Ola, Boa noite
Otimo sistema!
mas no caso de eu andar para direção que a camera esta olhando, estou confuso, poderia me ajudar?
Otimo sistema!
mas no caso de eu andar para direção que a camera esta olhando, estou confuso, poderia me ajudar?
nvndx- Membro
- PONTOS : 1971
REPUTAÇÃO : 2
Idade : 22
Respeito as regras :
Re: [TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Olá tenho um sistema de combos mais as animaçoes e scripth são de generic, consegui colocar os attacks atraves das layers mais será q vai funcionar o hit no inimigodstaroski escreveu:Boa noite! Segue abaixo a primeira parte de um tuto para criar um controle em terceira pessoa usando animações mecânicas e locomoção via root motion.
Segunda parte:
Script:
- Código:
using UnityEngine;
/// <summary>
/// Gerencia o controle de locomoção do player.
/// </summary>
[RequireComponent(typeof(Animator))] //Obriga o componente Animator
public class ControlePlayer : MonoBehaviour
{
[SerializeField]
[Tooltip("Rate per seconds holding down input")]
private float rotationRate = 360; //Valor para velocidade da rotação do player
private string turnInputAxis = "Horizontal";
private Animator anim; //Declarando o animator como uma variável
private void Awake()
{
anim = GetComponent<Animator>(); //Atribuindo o componente a variável antes da inicialização
}
private void Update()
{
float turnAxis = Input.GetAxis(turnInputAxis);
ApplyInput(turnAxis);
anim.SetFloat("Horizontal", Input.GetAxis("Horizontal")); //Atribui o valor da variável inputX para o parâmetro Horizontal do controle de animação
anim.SetFloat("Vertical", Input.GetAxis("Vertical")); //Atribui o valor da variável inputY para o parâmetro Vertical do controle de animação
//Correndo ou não
if (Input.GetKey(KeyCode.LeftShift))
anim.SetBool("Run", true); //Segurando o shift esquerdo a bool Run do controle de animação recebe true
else
anim.SetBool("Run", false); //Soltando o shift esquerdo a bool Run do controle de animação recebe false
}
private void ApplyInput(float turnInput)
{
Turn(turnInput);
}
private void Turn(float input)
{
transform.Rotate(0, input * rotationRate * Time.deltaTime, 0);
}
}
RenanHero- Iniciante
- PONTOS : 2021
REPUTAÇÃO : 6
Idade : 24
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Importa e aplicar animações com root motion
» [TUTORIAL] Controle de personagem em primeira pessoa + pulo para android!
» [TUTORIAL] Como fazer controle em TERCEIRA PESSOA para seu personagem no ANDROID!
» Apply Root Motion
» Root motion no untiy problemas
» [TUTORIAL] Controle de personagem em primeira pessoa + pulo para android!
» [TUTORIAL] Como fazer controle em TERCEIRA PESSOA para seu personagem no ANDROID!
» Apply Root Motion
» Root motion no untiy problemas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos