sincronizar as animações de dois objetos animados pelo mesmo animator
Página 1 de 1
sincronizar as animações de dois objetos animados pelo mesmo animator
minha duvida é o seguinte criei um personagem que tem animações e tudo mais e então modelei uma roupa para ele usar.
a roupa é um item que se eu usar vai vestir o personagem e a roupa também tá animada pelo esqueleto ou rig ,se eu botar a
roupa antes de botar o jogo pra rolar as animações rolaram juntas e não ocorre problemas ,porem eu quero que ao pegar o item
e usar o personagem vai vestir ela. so que ao fazer isso as animações da roupa ficam dessincronizadas e a roupa faz as animações depois do jogador.
eu gostaria de saber se existe uma maneira de fazer as animações da roupa seguir exatamente oque as animações do jogador faz
o tempo todo. tipo de executar exatamente oque o Animator do jogador tá fazendo.
o Animator da roupa é o mesmo do jogador e eu coloquei um script na roupa para ele também executar as animações a partir dos parametros
do player.
a roupa é um item que se eu usar vai vestir o personagem e a roupa também tá animada pelo esqueleto ou rig ,se eu botar a
roupa antes de botar o jogo pra rolar as animações rolaram juntas e não ocorre problemas ,porem eu quero que ao pegar o item
e usar o personagem vai vestir ela. so que ao fazer isso as animações da roupa ficam dessincronizadas e a roupa faz as animações depois do jogador.
eu gostaria de saber se existe uma maneira de fazer as animações da roupa seguir exatamente oque as animações do jogador faz
o tempo todo. tipo de executar exatamente oque o Animator do jogador tá fazendo.
o Animator da roupa é o mesmo do jogador e eu coloquei um script na roupa para ele também executar as animações a partir dos parametros
do player.
hendrick22- MembroAvançado
- PONTOS : 2688
REPUTAÇÃO : 57
Idade : 25
Respeito as regras :
Re: sincronizar as animações de dois objetos animados pelo mesmo animator
apos uma madrugada de procura e mais a metade de uma dia procurando a unica solução que apareceu na minha frente veio de um forum do unity ,então acho que posso compartilhar o link.
https://answers.unity.com/questions/44355/shared-skeleton-and-animation-state.html
aqui em vez de executar a animação em esqueletos diferentes ao mesmo tempo faz com que pegue a animação dos bones do jogador e passe para a roupa.
e então só precisa adicionar esse script no start() do objeto roupa ou armadura
no meu caso precisei colocar crair uma variavel para pegar o SkinnedMeshRenderer da roupa pq o codigo tá no parent dele.
e funciono parece até bruxaria esse codigo já que eu não manjo de Dictionary e nem
como foreach funciona.
se alquem que entende poder descrever oque tá acontencendo aqui eu agradeço ,pq eu
também gostaria de saber kkkkkkkk. (tá o meu palpite é que o script tá pegando a lista
de nomes e transforms dos bones e ou copiando o seu movimento ou seilá setando alguma coisa kkkkkk)
https://answers.unity.com/questions/44355/shared-skeleton-and-animation-state.html
aqui em vez de executar a animação em esqueletos diferentes ao mesmo tempo faz com que pegue a animação dos bones do jogador e passe para a roupa.
e então só precisa adicionar esse script no start() do objeto roupa ou armadura
- Código:
//começa aqui
meshTarget = GameObject.FindWithTag("Player").transform.GetChild(0).gameObject; //gameObject do player
mesh = transform.GetChild(0).gameObject; //gameObject do objeto a ser animado
SkinnedMeshRenderer targetRenderer = meshTarget.GetComponent<SkinnedMeshRenderer>();
Dictionary<string , Transform> boneMap = new Dictionary<string, Transform>();
foreach(Transform bone in targetRenderer.bones)
{
boneMap[bone.name] = bone;
}
SkinnedMeshRenderer thisRenderer = mesh.GetComponent<SkinnedMeshRenderer>();
Transform[] boneArray = thisRenderer.bones;
for(int idx = 0; idx < boneArray.Length; idx++)
{
string boneName = boneArray[idx].name;
if( false == boneMap.TryGetValue(boneName,out boneArray[idx]))
{
Debug.LogError("falhou em pegar o bone" + boneName);
Debug.Break();
}
}
thisRenderer.bones = boneArray;
no meu caso precisei colocar crair uma variavel para pegar o SkinnedMeshRenderer da roupa pq o codigo tá no parent dele.
e funciono parece até bruxaria esse codigo já que eu não manjo de Dictionary e nem
como foreach funciona.
se alquem que entende poder descrever oque tá acontencendo aqui eu agradeço ,pq eu
também gostaria de saber kkkkkkkk. (tá o meu palpite é que o script tá pegando a lista
de nomes e transforms dos bones e ou copiando o seu movimento ou seilá setando alguma coisa kkkkkk)
hendrick22- MembroAvançado
- PONTOS : 2688
REPUTAÇÃO : 57
Idade : 25
Respeito as regras :
Tópicos semelhantes
» 2 Objetos no mesmo spawner ao mesmo tempo
» Dois carros nao Spawnarem no mesmo lugar (Estilo GTA SAN)
» animator da main camera pelo botão UI
» Executar dois jogos ao mesmo tempo sem travar uma das janelas
» [RESOLVIDO]Spawnar mais de dois tipos de inimigos no mesmo Spawner
» Dois carros nao Spawnarem no mesmo lugar (Estilo GTA SAN)
» animator da main camera pelo botão UI
» Executar dois jogos ao mesmo tempo sem travar uma das janelas
» [RESOLVIDO]Spawnar mais de dois tipos de inimigos no mesmo Spawner
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos