Oui c'est exactement ça. Le gros souci c'est de définir la nature de l'interpolation : linéaire, cos, forme de la trajectoire... Je me suis posé ce genre de question déjà. Par exemple une simple porte avec les deux positions ouverte et fermée, l'interpolation n'est pas facile parce que la position de la porte doit suivre une courbe qu'il n'est pas aisé de définir. Et si l'utilisateur doit fixer plusieurs étapes intermédiaires il va avoir du mal. On en arrive rapidement à un système de définition de trajectoire matérialisé par des prims ou des particules. J'ai fait ça pour mon véhicule automatisé et je me suis rendu compte de la difficulté.
Ceci dit un tel outil manque vraiment et si nous arrivions ne serait-ce qu'à définir un type de fonctionnement ce serait déjà une grande réussite.
Je pense que pour un outil universel, ca ne marchera jamais si l'utilisateur espère saisir uniquement une position initiale et une position finale.
Pour avoir une interpolation un tant soit peu suffisante pour des positions tellement éloignées, il faudrait intégrer une fonction "boule de cristal" pour que le script choisisse l'interpolation qui donne le mouvement le plus proche de ce qu'attend l'utilisateur (pour deux positons extrêmes identiques, deux utilisateurs différents peuvent attendre un comportement intermédiaire différent). A moins de se limiter à un type très restreint de mouvements.
Ou encore, utiliser des interpolations plus sophistiquées genre "spline cubique". Mais ça, en plus de solliciter plus fortement la puissance de calcul du sim, est justement basé sur la prise en compte de plusieurs points successifs en non seulement 2. Ce qui exclut encore une fois la saisie des positions extrêmes seulement.
Point de salut alors, en dehors d’un nombre suffisant de positions saisies.
Ca résoudrait du coup le problème du choix de l’interpolation. Une interpolation linéaire suffirait.
Dans le cas d'une porte par exemple, ça peut donner un résultat acceptable, si l'utilisateur veut bien faire l'effort de définir au moins 5 ou 10 positions intermédiaires.
Encore une fois, un script spécifique donnera toujours un résultat plus propre. Je pense qu’on est d’accord pour dire qu’une porte serait une mauvaise utilisation d’un script universel, l'intérêt étant seulement de tester ce genre de script sur un cas simple.
En ce qui concerne la méthode générale pour interpoler les positions, il faudrait à tout prix commencer par lever tout ambiguïté sur ce qu’on appelle « position ».
Par « position d’un solide », j’entends sa position globale (incluant l’orientation, pour être plus clair), définie par 6 paramètres.
De même, ne pas raisonner en terme de « trajectoire », qui ne peut concerner qu’un point d’un solide (sous-entendu : le point défini par LL, et qu’ils appellent le centre), mais bien de variation simultanée des 6 paramètres de position.
Il y aurait beaucoup à dire là dessus, mais une des plus grosses difficultés est de se débarrasser des réflexes hérités de la cinématique du point.