Poser les Bendy Bones à main levée

Ici on parle des scripts

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

Poser les Bendy Bones à main levée

Message par Yadoob » 28 Juil 2017, 14:03

Bonjour à tous,


Je regarde en ce moment du coté des bendy bones pour pouvoir, via un stroke de Grease Pencil, régler la courbe :

Image


ça marche plutôt bien si le bone est orienté de la même façon que l'armature mais dès que les deux sont différent, la courbe du bendybones s'oriente mal.

Image


J'ai donc essayé de transférer l'handle bézier (qui sert de référence pour la courbe) vers l'orientation local du bone mais sans succès jusqu'à présent : je n'arrive pas à avoir les coordonnées XZ de l'handle suivant l'axe local du bone.

Pour l'instant j'utilise ceci comme matrix pour transférer l'handle (en world space) vers le local space du bone:
local = armature_ob.data.bones[bone_name].matrix_local
basis = armature_ob.pose.bones[bone_name].matrix_basis

mat = local*basis

handlepositionLocal = mat.inverted()*handlepositionWorld


J'ai aussi essayé de re-projeter le vecteur de la position local de l'handle vers l'axe local du bone mais sans plus de résultat...

Quelqu'un aurait-il une piste pour ce problème?
Avatar de l’utilisateur
Yadoob
 
Message(s) : 224
Inscription : 15 Sep 2013, 12:57
Localisation : Lille

Re: Poser les Bendy Bones à main levée

Message par zeauro » 28 Juil 2017, 22:46

Je suis pas super doué en scripting.
Mais j'aurais tendance à penser qu'avoir l'handle n'est pas une condition suffisante.
Il faudrait aussi adapter les curve offset du Bbone.

Edit : ah! ben non. ca n'expliquerait pas l'handle à l'envers.
Il y a peut-être un souci de quaternions ignoré avec une curve qui ne les utilisent pas.
zeauro
 
Message(s) : 977
Inscription : 21 Août 2013, 15:47

Re: Poser les Bendy Bones à main levée

Message par Yadoob » 30 Juil 2017, 09:37

Merci pour ta réponse Zeauro,effectivement j'ai oublié de mentionner que le script va en premier placer le bone sur la curve. Et il semblerait que ce soit une partie du problème car pour ça j'utilise le modifier Stretch To pour placer la tête du bone, seulement ça casse la rotation du bone...

Donc il faut que je trouve un moyen de placer le bone sur la curve d'une autre manière.

EDIT : ah, moyennant un petit hack, le "apply visual transform to pose" pourrait me sauver la vie !
Avatar de l’utilisateur
Yadoob
 
Message(s) : 224
Inscription : 15 Sep 2013, 12:57
Localisation : Lille

Re: Poser les Bendy Bones à main levée

Message par zeauro » 30 Juil 2017, 12:43

Je ne vois pas très bien le rapport entre la rotation et le stretch to.
Mais une contrainte follow path sur la custom handle du bbone devrait la placer correctement, non ?
zeauro
 
Message(s) : 977
Inscription : 21 Août 2013, 15:47

Re: Poser les Bendy Bones à main levée

Message par Yadoob » 30 Juil 2017, 17:58

si le bone et la cible du stretch to ne sont pas aligné, le stretch to va les aligner à sa façon en faisant une rotation (je crois qu'il choisis la rotation la plus courte).

Mais je crois que tu disais vrai à proposdes handles, le fait de passer d'un vector3(position du handle) à un vector2 (curve offset) fait perdre des informations et donc de la précision... je vais voir à l'utilisation si c'est problématique.

Le truc chiant avec l'offset c'est que c'est juste des valeurs donc c'est difficile d'utliser des modifiers/contraints dessus, faudrait que j'essaie avec les custom handle c'est peut être plus simple...
Avatar de l’utilisateur
Yadoob
 
Message(s) : 224
Inscription : 15 Sep 2013, 12:57
Localisation : Lille

Re: Poser les Bendy Bones à main levée

Message par zeauro » 31 Juil 2017, 09:04

La façon la plus rapide de régler le problème serait d'essayer de contacter directement Aligorith.

Je crois me souvenir qu'il a déjà essayé un truc avec le grease pencil au moment où il a testé le pose sculpting.
zeauro
 
Message(s) : 977
Inscription : 21 Août 2013, 15:47

Re: Poser les Bendy Bones à main levée

Message par Yadoob » 31 Juil 2017, 16:54

Oui je lui ai posé la question du moins pour savoir en interne comment l'offset était géré. Je me souviens aussi de la vidéo mais je crois que c'était plus compliqué parce qu'il prenait directement des chaines de plusieurs bones.

En tout cas j'ai pu régler mes problèmes, la manque de précision est dommageable mais pas contraignant donc pour l'instant il y a l'ensemble des features pour une v0.1(bientôt ;) ) :

Image
Avatar de l’utilisateur
Yadoob
 
Message(s) : 224
Inscription : 15 Sep 2013, 12:57
Localisation : Lille

Re: Poser les Bendy Bones à main levée

Message par Ethan Aeris » 31 Juil 2017, 17:40

Wow! ça déboite.
Surtout quand on pense à la galère de gérer les orientations.
Cela va faire gagner un temps de folie, même en dehors des animations, ne serait ce que pour la pose.
Avatar de l’utilisateur
Ethan Aeris
 
Message(s) : 272
Inscription : 29 Juin 2016, 17:58

Re: Poser les Bendy Bones à main levée

Message par Yadoob » 03 Août 2017, 12:51

Merci, je viens de poster une version de dev sur gumroad pour ceux qui veulent tester :

https://gum.co/esWw

Avatar de l’utilisateur
Yadoob
 
Message(s) : 224
Inscription : 15 Sep 2013, 12:57
Localisation : Lille


Retour vers Scripts - Python - OSL

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)