Page 1 sur 1

[RESOLU]LookAt Bone et animator

Publié : 04 Avr 2019 21:12
par Maki-Sama
Bonjour à tous :hello: ,

pour faire court, j'ai créer un personnage et je voudrais qu'il suive un objet de la tête, mais durant une animation (exécutée par l'animator).

Mais voilà, cela ne marche pas. Mon personnage continue son animation sans se préoccuper de l'objet. :-|

Voilà le script que j'ai utilisé, ainsi qu'une image de ma fenêtre Unity.

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LookAtPlayer : MonoBehaviour {

    public Transform Target;
    public bool TargetActiv = false;

    public Animator Ani;
    public Transform Head;

    public Vector3 Offset;

    
	
    void Start()
    {
        Head = Ani.GetBoneTransform(HumanBodyBones.Head);
    }

	void Update ()
    {
        if(TargetActiv == true)
        {
            Head.LookAt(Target.position);
            Head.rotation = Head.rotation * Quaternion.Euler(Offset);
        }
        
    }
}
L'objet à suivre étant la sphère et l'animator ouvert étant celui de mon personnage (je pense que vous l'aurez deviné)

J'ai tenté de glisser l'élément "Head" (dans la hiérarchie de DAN) jusque dans la variable "Head" de mon script, malheureusement mon personnage ne suit toujours pas la sphère.

Même changer le nom de l'élément dans la hiérarchie n'a rien changé (qu'il soit majuscule ou minuscule).

Merci par avance de vos réponses.

Re: LookAt Bone et animator

Publié : 04 Avr 2019 22:13
par Max
Bonjour,

Un peu comme pour ce récent sujet: viewtopic.php?f=2&t=16653
je dirais que la solution se trouve dans l'Inverse Kinematics.
La doc, avec un script tout fait qui devrait correspondre à ce que tu cherches.

Re: LookAt Bone et animator

Publié : 06 Avr 2019 12:10
par Maki-Sama
Salut Max,

merci pour ta réponse. J'étais déjà allé sur cette page mais pour une raison que je ne comprenais pas, je ne parvenais pas à faire fonctionner le script :mrgreen: .
Cependant, après avoir regardé beaucoup plus attentivement, j'ai trouvé.

Il fallait que je change le type d'animation de "Generic" à "Humanoid" (comme ci-dessous), que je configure l'avatar de mon personnage et que je lui crée un mask d'avatar.

Et maintenant cela fonction, il tourne bien la tête durant l'animation.

C'est super tu me diras, mais en fait NON. Car le fait de change le type d'animation me donne un autre problème. :pleur4:

Le bone "Fixebody" est prit en point central, ce qui fait que au lieu de bouger le bassin, ce dernier reste à sa position et c'est les jambe qui bougent.
Et malheureusement, je je ne vois pas comment rectifier cela.
.
Animation type.png
Animation type.png (23.2 Kio) Consulté 3243 fois

Re: LookAt Bone et animator

Publié : 06 Avr 2019 13:26
par Max
Hello,

On rencontre souvent ce genre de soucis en passant le type d'animation de "Generic" à "Humanoid".
Après perso, je ne suis pas un pro niveau rig, pas sûr d'être en mesure de mieux t'aider.
As-tu essayé de passer par l'écran de configuration pour voir ?
Image

Re: LookAt Bone et animator

Publié : 06 Avr 2019 14:29
par Maki-Sama
Je suis déjà passé par cette fenêtre là et le bone "Fixebody" est à la bonne place.

Mais j'ai peut être une idée, je vais tester et je dirai le résultat.

Re: LookAt Bone et animator

Publié : 06 Avr 2019 17:31
par Maki-Sama
C'est bon,

j'ai fait mon test et j'ai réussi :)

En fait c'est parce que j'ai modifier le squelette de mon personnage avant même de l'importer.
Et je me servait du bone "FixeBody" comme IK (juste en le baissant, les jambes se pliaient toutes seules).

Du coup, vu qu'il bouge dans l'animation, Unity n'arrivait pas à trouver de Bone fixe pour bloquer la position du corps.
(Qu'il soit parent du bone "root" ou non) X(

Pour y remédier, j'ai donc ajouter derrière "Fixebody" un nouveau bone que j'ai appelé "BodyLock"
(En fait c'est un duplicata du bone "root", je l'ai mis derrière "FixeBody" mais j'aurais pu le mettre n'importe où)
Et de ce fait, Unity le prend comme centre fixe du personnage.
.
BodyLock.png
BodyLock.png (377.79 Kio) Consulté 3194 fois
Et puis voilà ::d

Re: LookAt Bone et animator

Publié : 06 Avr 2019 17:41
par Max
Cool, t'as creusé, t'as trouvé, c'est parfé :mrgreen:

(merci pour le retour)

Re: LookAt Bone et animator

Publié : 06 Avr 2019 20:11
par Maki-Sama
En fait rectification, un nouvel élément vient de tout changer.

Le bone que je viens de rajouter ne sert à rien :pleur4:
Le problème de FixeBody n'est présent seulement quand "Apply root motion" n'est pas coché dans l'onglet Animator.

Cependant, le nouvel élément et le "rigidbody".
Lorsque que j'ajoute ce composant, mon personnage commence à gravité, il monte tout doucement de plus en plus haut.

Et c'est en rapport avec "Apply root motion" car quand je le décoche, mon perso retombe mais du coup le problème de "Fixebody" revient.

J'avoue, je suis complètement paumé 8/

Re: LookAt Bone et animator

Publié : 06 Avr 2019 21:48
par Maki-Sama
C'est bon enfin :gene:

J'ai pu trouver la solution à ce lien :

https://adventurecreator.org/forum/disc ... ot-working

Il fallait juste mettre root ici (image) et dans animator, décocher "Apply root motion"
.
Résolu.png
Résolu.png (59.04 Kio) Consulté 3162 fois
Merci encore pour le coup de main :super: