[RESOLU][DB AL] acceder au clés d'une courbe

Pour les scripts écrits en C#
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
chabis
Messages : 31
Inscription : 23 Oct 2017 22:16

[RESOLU][DB AL] acceder au clés d'une courbe

Message par chabis » 23 Oct 2017 22:26

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.

yonathgames
Messages : 45
Inscription : 18 Sep 2017 17:44

Re: [DB AL] acceder au clés d'une courbe

Message par yonathgames » 24 Oct 2017 17:38

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

chabis
Messages : 31
Inscription : 23 Oct 2017 22:16

Re: [DB AL] acceder au clés d'une courbe

Message par chabis » 24 Oct 2017 20:09

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 :roll: ), 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...

chabis
Messages : 31
Inscription : 23 Oct 2017 22:16

Re: [DB AL] acceder au clés d'une courbe

Message par chabis » 24 Oct 2017 20:51

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...

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: [DB AL] acceder au clés d'une courbe

Message par ZJP » 25 Oct 2017 01:33

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

chabis
Messages : 31
Inscription : 23 Oct 2017 22:16

Re: [DB AL] acceder au clés d'une courbe

Message par chabis » 25 Oct 2017 09:43

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.. :)

yonathgames
Messages : 45
Inscription : 18 Sep 2017 17:44

Re: [DB AL] acceder au clés d'une courbe

Message par yonathgames » 25 Oct 2017 16:45

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. :-|

chabis
Messages : 31
Inscription : 23 Oct 2017 22:16

Re: [DB AL] acceder au clés d'une courbe

Message par chabis » 25 Oct 2017 19:35

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.

chabis
Messages : 31
Inscription : 23 Oct 2017 22:16

Re: [DB AL] acceder au clés d'une courbe

Message par chabis » 06 Nov 2017 01:52

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 !

Répondre

Revenir vers « (C#) CSharp »