[RESOLU][DB AL] acceder au clés d'une courbe
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
[RESOLU][DB AL] acceder au clés d'une courbe
bonjour,
je cherche comment accéder au valeurs d'une courbe d'anim d'une camera.
l'idée étant d'arriver à écrire dans un fichier texte (ca j'y arrive) les valeurs des clés de position et rotation (et les valeurs de tangente) d'une camera que j'anime dans unity pour recuperer les infos dans un autre soft et reproduire la meme anim.
comme le c# est nouveau pour moi, je nage...
j'ai arpenté la doc mais je n'ai pas du savoir ou chercher...
si vous pouvez m'aider... merci d'avance.
je cherche comment accéder au valeurs d'une courbe d'anim d'une camera.
l'idée étant d'arriver à écrire dans un fichier texte (ca j'y arrive) les valeurs des clés de position et rotation (et les valeurs de tangente) d'une camera que j'anime dans unity pour recuperer les infos dans un autre soft et reproduire la meme anim.
comme le c# est nouveau pour moi, je nage...
j'ai arpenté la doc mais je n'ai pas du savoir ou chercher...
si vous pouvez m'aider... merci d'avance.
-
- Messages : 45
- Inscription : 18 Sep 2017 17:44
Re: [DB AL] acceder au clés d'une courbe
Salut!
Dans la doc j'ai trouvé cela :
AnimationCurve.keys qui retourne un array de Keyframe ( structure contenant toutes les données que tu souhaites).
Tu peux aller voir, c'est bien expliqué dans la Doc officielle
Dans la doc j'ai trouvé cela :
AnimationCurve.keys qui retourne un array de Keyframe ( structure contenant toutes les données que tu souhaites).
Tu peux aller voir, c'est bien expliqué dans la Doc officielle
Re: [DB AL] acceder au clés d'une courbe
je te remercie,
j'etais allé voir deja, mais j'avoue avoir besoin de comprendre les bases memes de ce langage.
n'etant pas programmeur de formation (à la base j'suis graphiste, ... j'tiens un crayon toussa toussa ), et meme si j'ai l'habitude de manipuler le maxscript et un peu de dotnet... c'est violent ^^
ceci dit j'avance lentement mais j'avance.
dans ma logique, je devais accéder à l'anim, puis à une piste particulière (par exemple la position en x), puis accéder donc à sa courbe, à ses points et à leurs valeurs, ainsi que la valeur des tangentes associées.
et ecrire tout ca dans un fichier texte.
en tout cas c'est comme ca que je ferais en maxscript...
j'etais allé voir deja, mais j'avoue avoir besoin de comprendre les bases memes de ce langage.
n'etant pas programmeur de formation (à la base j'suis graphiste, ... j'tiens un crayon toussa toussa ), et meme si j'ai l'habitude de manipuler le maxscript et un peu de dotnet... c'est violent ^^
ceci dit j'avance lentement mais j'avance.
dans ma logique, je devais accéder à l'anim, puis à une piste particulière (par exemple la position en x), puis accéder donc à sa courbe, à ses points et à leurs valeurs, ainsi que la valeur des tangentes associées.
et ecrire tout ca dans un fichier texte.
en tout cas c'est comme ca que je ferais en maxscript...
Re: [DB AL] acceder au clés d'une courbe
humm... je crois que je n'arrive pas à lui parler de la piste d'anim en question (camera position x par exemple) en tant que courbe...
Re: [DB AL] acceder au clés d'une courbe
Tu cherches simplement les "transforms" (Position et Rotation) de ta Caméra.
A chaque mouvement/rotation de celle-ci (peut importe comment tu procèdes), récupères les "transforms". X,y,z pour l'un et l'autre (transform.position.x, transform.position.y, transform.position.z, transform.rotation.x etc etc ...). Rien de plus et rien de moins.
https://www.google.fr/search?source=hp& ... amera+path
Pour plus de fluidité (moins de saccades) et pour éviter trop d'enregistrement, j'aurai personnellement utiliser du Bézier pour cela. Pour la position en tout cas. La Rotation peut être un simple Transform LookAt.
https://www.google.fr/search?biw=1920&b ... ezier+path
A chaque mouvement/rotation de celle-ci (peut importe comment tu procèdes), récupères les "transforms". X,y,z pour l'un et l'autre (transform.position.x, transform.position.y, transform.position.z, transform.rotation.x etc etc ...). Rien de plus et rien de moins.
https://www.google.fr/search?source=hp& ... amera+path
Pour plus de fluidité (moins de saccades) et pour éviter trop d'enregistrement, j'aurai personnellement utiliser du Bézier pour cela. Pour la position en tout cas. La Rotation peut être un simple Transform LookAt.
https://www.google.fr/search?biw=1920&b ... ezier+path
Re: [DB AL] acceder au clés d'une courbe
tout à fait, mais les clé de transform sont sur des frames particulieres et je souhaite pouvoir connaître les frames ou sont ces clés pour stocker dans mon fichier texte, le numero de frame, les valeurs de transform et les tangentes (pour pouvoir reproduire l'interpolation).
pour recuperer un transform, avec la class void update je peux utiliser ceci
var k = gameObject.GetComponent("Animator").transform.position.x;
mais du coup je recupere le transform sur toutes les frames
j'ai bien vu qu'il existait les fonctions
AnimationUtility.GetAnimationClips(macam.GetComponent("Animator")))
et
AnimationUtility.GetAllCurves(anim)
mais je n'arrive pas à m'en servir correctement...
sachez bien que je n'attend pas que la reponse me tombe tout cru dans le bec, je cherche , je cherche, mais pour l'instant c'est l'echec.
du coup, comme je crois que c'est avant tout une mauvaise comprehension des bases, je bouffe du tuto..
pour recuperer un transform, avec la class void update je peux utiliser ceci
var k = gameObject.GetComponent("Animator").transform.position.x;
mais du coup je recupere le transform sur toutes les frames
j'ai bien vu qu'il existait les fonctions
AnimationUtility.GetAnimationClips(macam.GetComponent("Animator")))
et
AnimationUtility.GetAllCurves(anim)
mais je n'arrive pas à m'en servir correctement...
sachez bien que je n'attend pas que la reponse me tombe tout cru dans le bec, je cherche , je cherche, mais pour l'instant c'est l'echec.
du coup, comme je crois que c'est avant tout une mauvaise comprehension des bases, je bouffe du tuto..
-
- Messages : 45
- Inscription : 18 Sep 2017 17:44
Re: [DB AL] acceder au clés d'une courbe
Apparemment, de ce que j'ai pu lire, ce n'est pas possible de récupérer les animationCurve "at runtime".
on peut seulement les modifier et en ajouter. Les méthodes que tu as trouvé ne s'exécutent qu'en mode éditeur.
Je t'avoue que je ne suis pas très au point sur la programmation editor.
on peut seulement les modifier et en ajouter. Les méthodes que tu as trouvé ne s'exécutent qu'en mode éditeur.
Je t'avoue que je ne suis pas très au point sur la programmation editor.
Re: [DB AL] acceder au clés d'une courbe
effectivement ce sont des méthodes éditeur, mais ce n'est pour le coup pas un problème pour moi.
l'idée est bien de faire une anim de cam , puis de la "vérifier in game",
ce qui ne m’empêche pas de pouvoir l'exporter en mode éditeur.
l'objectif étant de pouvoir caler un mouvement de cam accessibles sur plusieurs softs.
l'idée est bien de faire une anim de cam , puis de la "vérifier in game",
ce qui ne m’empêche pas de pouvoir l'exporter en mode éditeur.
l'objectif étant de pouvoir caler un mouvement de cam accessibles sur plusieurs softs.
Re: [DB AL] acceder au clés d'une courbe
j'ai résolu mon probleme et par la meme compris quelques notions supplémentaires.
j'accede aux clé d'un clip par:
AnimationUtility.GetCurveBindings(clip)) et AnimationUtility.GetEditorCurve(clip, binding);
merci !
j'accede aux clé d'un clip par:
AnimationUtility.GetCurveBindings(clip)) et AnimationUtility.GetEditorCurve(clip, binding);
merci !