Como fazer um sistema de IK para os pés ?
2 participantes
Página 1 de 1
Como fazer um sistema de IK para os pés ?
Eu até tentei entender através de vídeos mas não ficou totalmente claro...
Script que estou utlizando :
O problema é que ele não está funcionando como deveria, subindo o pé e continuando andando, ele simplesmente fica parado
Script que estou utlizando :
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CNTIK : MonoBehaviour {
public Animator anim;
public float offSet;
public Transform PontoIKDireita;
public Transform PontoIKEsquerdo;
public Transform PontoIkCenter;
Vector3 PosCenter;
Vector3 PosPeEsquerdo;
Vector3 PosPeDireito;
Quaternion RotCenter;
Quaternion RotPeDireito;
Quaternion RotPeEsquedo;
public bool UseIk, canUseIk;
// Use this for initialization
void Start () {
UseIk = true;
anim = GetComponent<Animator>();
}
void OnAnimatorIK()
{
if (canUseIk)
{
anim.SetIKPositionWeight(AvatarIKGoal.RightFoot, 1);
anim.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1);
anim.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1);
anim.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1);
anim.SetIKPosition(AvatarIKGoal.RightFoot, PosPeDireito + Vector3.up * offSet);
anim.SetIKPosition(AvatarIKGoal.LeftFoot, PosPeEsquerdo + Vector3.up * offSet);
anim.SetIKRotation(AvatarIKGoal.RightFoot, RotPeDireito);
anim.SetIKRotation(AvatarIKGoal.LeftFoot, RotPeEsquedo);
}
else
{
anim.SetIKPositionWeight(AvatarIKGoal.RightFoot, 0);
anim.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 0);
anim.SetIKRotationWeight(AvatarIKGoal.RightFoot, 0);
anim.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 0);
}
}
RaycastHit r;
void FixedUpdate()
{
canUseIk = UseIk && anim.GetBool("walk") == false && anim.GetBool("run") == false;
if (canUseIk)
{
if (Physics.Raycast(PontoIKDireita.position, Vector3.down, out r))
PosPeDireito = r.point;
RotPeDireito = Quaternion.FromToRotation(transform.up, r.normal) * transform.rotation;
if (Physics.Raycast(PontoIKEsquerdo.position, Vector3.down, out r))
PosPeEsquerdo = r.point;
RotPeEsquedo = Quaternion.FromToRotation(transform.up, r.normal) * transform.rotation;
}
}
// Update is called once per frame
void Update () {
}
}
O problema é que ele não está funcionando como deveria, subindo o pé e continuando andando, ele simplesmente fica parado
ruanzikaad- Mestre
- PONTOS : 3188
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Re: Como fazer um sistema de IK para os pés ?
Descreva claramente o q vc quer para q possamos ajudar
Tiago95- Avançado
- PONTOS : 2629
REPUTAÇÃO : 32
Respeito as regras :
Re: Como fazer um sistema de IK para os pés ?
Foot PlacementTiago95 escreveu:Descreva claramente o q vc quer para q possamos ajudar
ruanzikaad- Mestre
- PONTOS : 3188
REPUTAÇÃO : 47
Idade : 24
Respeito as regras :
Tópicos semelhantes
» COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
» Como fazer um sistema para conectar objetos?
» Como programar um sistema para fazer o Player puxar um objetos no Unity
» como fazer sistema de seleção de personagem para moba no photon?
» Como fazer um sistema de mira para jogo em terceira pessoa?
» Como fazer um sistema para conectar objetos?
» Como programar um sistema para fazer o Player puxar um objetos no Unity
» como fazer sistema de seleção de personagem para moba no photon?
» Como fazer um sistema de mira para jogo em terceira pessoa?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos