Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : Real 3D - Squelettiquement vôtre
(Article écrit par Jac Pourtant et extrait d'Amiga News - novembre 1997)
|
|
Désolé pour mon absence du mois dernier, je n'y étais pour rien, il n'y avait plus de place dans notre pauvre petit magazine.
Les squelettes, s'ils sont un merveilleux outil, n'en sont pas moins compliqués et soulèvent de nombreuses questions. Il
faut également préciser que les squelettes pourraient être beaucoup mieux conçus (ils le seront dans la version 4) et on peut
même dire qu'ils sont bogués. Je vais essayer d'éclairer le paysage par des conseils ponctuels.
Rappel de quelques généralités
Il y a squelettes et squelettes. Dans les premières versions de Real, un squelette était simplement une ligne brisée utilisée
par la méthode "skeleton" ou "simple skeleton". A présent, bien que cette solution antique fonctionne toujours, le
squelette est devenu une entité plus élaborée avec une représentation spécifique (fig. 1). Il possède des
"contraintes" (limites d'évolution des os du squelette dans deux plans autour de l'articulation), les articulations peuvent
posséder une "friction" pour réduire ou favoriser leur rotation et on peut appliquer une "fidélité" à chaque articulation
qui permettra de tenir compte des deux os contigüs dans l'influence sur les meshes contrôlés par le squelette (fig. 2).
Un squelette est, en outre, différent des objets normaux puisqu'il est en même temps un niveau hiérarchique dans lequel on
pourra placer d'autres squelettes subalternes. Dans ce cas, on parle de "squelette hiérarchique". Là encore, le bogue n'est
pas absent et on a parfois du mal à les contrôler. Les grands manitous de Real déconseillent leur usage, j'ai pourtant réussi
à les utiliser sans trop de mal.
Outre les méthodes d'animation, on peut utiliser les squelettes lors de la modélisation pour changer de position un ensemble
articulé à l'aide des fonctions "cinématique inverse" ou "cinématique directe" (fig. 3).
Rappelons que pour animer un ensemble d'objets à l'aide d'un squelette, il est indispensable que chaque objet soit au même
niveau hiérarchique que la méthode "skeleton", des objets regroupés dans un niveau (level) ne seront pas animés ! (il faut
alors ruser avec des liens "links").
Rappelons aussi qu'il est indispensable de bien positionner son squelette (en vérifiant qu'on est bien à l'image 0 en animation),
dans les trois dimensions, avant de lier, à l'aide de la fonction "Animate/Control/Refresh" (ou la touche "u"), le squelette à
la "chair".
Pour animer ensuite, il suffit d'appliquer une fonction "morphing" (morphose) au squelette avec autant de positions que l'on veut dans
le niveau inférieur de cette méthode. C'est là la base pour animer un animal, un personnage ou n'importe quelle machine ou
robot (fig. 4).
Cas particulier
Il n'est pas simple parfois d'animer des meshes qui portent des objets CSG à leur surface. Ainsi les yeux des poissons ou bien
des gouttes d'eau à la surface des feuilles. Je vais prendre un exemple pour qu'on comprenne bien.
Regardez la figure 5. Voilà une espèce de feuille (qui en fait est le bras de la pieuvre-tomate) en rouge, faite d'une
surface mesh. Sur son pourtour, on voit des ellipsoïdes aplatis, appelons-les folioles pour la suite, en vert. Le tout doit
être animé par un squelette de cinq os, en jaune. Notez en passant qu'on voit bien les os sur la vue de côté avec leurs
contraintes, certains pouvant se mouvoir plus vers le haut, d'autres plus vers le bas. Si je mets mon mesh et mes folioles
dans le même niveau hiérarchique que ma méthode "skeleton", tout va s'animer, oui, mais les folioles vont s'aligner sur les
os et rester en cinq tronçons rectilignes, tandis que mon mesh, lui va se plier en courbe harmonieusement.
Alors, pour pallier à çà, je vais placer une courbe spline de la même résolution dans la longueur que mon mesh, qui se pliera
donc comme lui, et j'alignerai mes folioles sur le mesh au lieu du squelette lui-même. Si on ne veut pas que les folioles soient
animés, il est donc préférable de choisir une méthode d'animation "skeleton" plutôt que "simple skeleton"
(qui, elle, convient bien à l'animation du mesh), et d'appliquer comme courbe primaire un lien (link) vers la courbe spline,
et un segment vertical n'importe où pour que les folioles ne se mettent pas à pivoter, ce qui serait sans aucun
doute du plus bel effet, mais ici non souhaité pour l'exemple.
Tout ceci se conçoit mieux en observant la hiérarchie de la figure 6. J'ai employé les mêmes couleurs dans la figure 7, sauf
les folioles qui sont en vert.
Évolution dans le plan
Un squelette est très à l'aise dans le plan où il a été créé. Malheureusement, les résultats sont parfois incompréhensibles
lorsqu'on le plie dans d'autres plans, il s'allonge indûment ou inversement. Toujours essayer de choisir au mieux le plan de
création. De même, il est souvent préférable de faire pivoter (au moyen de la fonction "Rotate") le squelette entièrement pour
réorienter au mieux le plan de création plutôt que d'utiliser les fonctions de cinématique inverse ou directe.
Cas extrêmes
Si vraiment on n'arrive pas à faire ce que l'on veut avec des squelettes, ne pas hésiter à utiliser la morphose
à la place.
Contraintes
Le meilleur conseil qu'on puisse donner est de ne pas les utiliser, c'est-à-dire de les positionner mettre MinA et MinB à 0 et
MaxA et MaxB à 360.
Le mois prochain
Nous continuerons avec les squelettes.
|