t u t o r i a u x
Animation d'une catapulte avec 3DS Max et Reactor
Voici un tutorial sur l'animation d'une catapulte fait pour le forum 3D-Diablotine. Le tutorial est réalisé avec 3DS Max, en 25 images/seconde, et le fichier 3D utilisé dans la première partie est dispo gratuitement, après inscription, sur le site de renderosity.
1 - Preparation des objets
Tout d'abord, lorsque l'on a importé la mesh, on va essayer de comprendre comment cela devrait marcher "en vrai"...
Je ne suis pas expert en balistique, mais en étant logique, je pense que l'on peut partir du principe que le contrepoids entraine la rotation du bras qui envoie le boulet. Les cordes servent d'une part à retenir le bras en fin de rotation, et d'autre part, lorsqu'on les ré-enroule, à ramener le bras en position de tir.
Principe d'animation
La première chose à faire, c'est de dégrouper toutes les mesh puis d'attacher ensemble les divers éléments mobiles, et de bien positionner les points de pivot en fonction des axes de rotation. Tant que cela n'est pas fait correctement, l'animation ne sera pas évidente à réaliser...
Séparation des objets

Réglage des points de pivots

Réglage des ponits de pivots

Réglage des points de pivots
Vous avez maintenant 8 objets : la base, le contrepoids, le bras (avec le triangle de cordes juste en dessous), les cordes (qui relient les poulies au bras), les 2 poulies, le tissu et le boulet
2 - Animation du bras

Plutot que de tout simuler avec un plug-in comme reactor, ce qui obligerait à retoucher une bonne partie des mesh, on va animer le boulet, le bras et le contrepoids à la main, et on ne va simuler avec reactor que le tissu qui porte le boulet.
Une fois que les pivots sont placés correctement, il faut lier les différents objets entre eux selon une hiérarchie précise. D'abord on relie le bras et les deux poulies à la base, ensuite le contrepoids et le tissu au bras.

Ensuite on va commencer l'animation, d'abord avec le bras. Positionnez-vous à l'image zéro, et activez le mode "Clé auto", créez une image clé en rotation pour le bras et le contrepoids, avancez de 15 images et effectuez une rotation du bras, de maximum 50 degrés afin qu'il n'aille pas jusqu'à la position verticale. Faites également une rotation du contrepoids de façon à le ramener en position horizontale.

Images clés de l'animation

Si vous voulez créer un peu plus de réalisme, ajoutez des images clés de façon à ce que le bras ait un léger effet de retour quand il arrive en bout de course ainsi qu'une oscillation du contrepoids.
Pour que les cordes restent reliée au bras et aux poulies, mettez-lui un modificateur "Peau" avec le bras et les deux poulies comme structures.
Les sommets du haut de la corde doivent être contrôlés par le bras et ceux du bas par les poulies. Notez qu'il n'y a pas de sommets sur la longueur afin déviter les déformations incontrôlables.

Contrôle de la corde

On a maintenant une catapulte en action, avec les cordes qui se tendent quand le bras bouge, et si vous avez bien travaillé, en suppossant que j'aie été suffisament clair, vous devriez obtenir ça :

3 - Animation du tissu et du boulet

Alors tout d'abord je tiens à préciser que ce genre de mouvements c'est une vraie galère à paramétrer, et j'ai dû faire pas mal de tests avant d'arriver à un truc à peu près crédible... Donc vous m'excuserez si c'est pas tip-top...
Bon tout d'abord il faut retoucher la mesh "tissu", ne tentez même pas d'essayer avec ce maillage, je me suis pris la tête pendant 3 h avant de renoncer...
donc tout d'abord vous écartez légèrement les sommets du haut de façon à ce qu'il ne touchent plus la mesh "bras" (reactor ne supporte pas les objets qui s'interpénètrent)

Préparation de la mesh

ensuite il faut simplifier la mesh, de façon à ne garder que les sommets du haut, ceux autour du boulet, et au maximum une rangée de sommets entre les deux.

optimisation de la mesh
et là seulement, on va pouvoir commencer à penser à reactor.
Commencez par ajouter une "Collection de corps rigides", dans laquelle vous ajoutez le bras et le boulet.
Puisque le bras est déjà animé, n'oubliez pas de cochez "unyielding" dans ses propriétés de reactor, sinon il vous effacera vos images clés. Pour la même raison ce n'est pas la peine de lui mettre de masse, d'élasticité ou de friction.
Réglez les paramètres "World" de reactor en fonction de l'échelle de la catapulte (avec les proportions d'origine du fichier, j'ai utilisé -100 de gravité, 1m=5 dans max, et une tolérance aux colision de 0,05)
Ensuite sur votre tissu, ajoutez un modificateur "reactor soft body", et vous créez une "Collection de corps souples" dans laquelle vous ajoutez votre tissu.
Sur votre tissu, dans le modificateur "reactor soft body" passez en mode "vertice", et sélectionnez vos sommets du haut, ajoutez une contrainte "attach to rigid body" et choissisez le bras comme objet d'attache.

Rigid body

A partir de ce moment, je n'ai plus de méthode globale efficace parce que je n'arrive toujours pas à comprendre la logique du paramétrage de la "raideur", de "l'amortissement" et de la" friction" des tissus et corps souples de reactor, d'une fois sur l'autre, je tatonne jusqu'à arriver à ce que je veux... J'ai donc tâtonné, et voici les paramètres que j'ai rentré :
Paramètres Reactor

une fois que c'est fait, faites un preview dans reactor, et si tout se passe bien, lancez le calcul de l'animation. Si ça ne se passe pas bien, tripotez les paramètres de l'image précédente jusqu'à ce que ça le fasse...
Pour le boulet, il part pas trop mal, mais avant de finir sa parabole, il retombe, effacez donc les images clé au zénith de sa courbe, et crééez en d'autres pour lui donner une trajectoire crédible.
Et si vous l'avez fait correctement, ça devrait donner ça :

4 - Un autre type de Catapulte
On va utiliser ici un autre modèle de catapulte, qui sera plus simple à animer et qui nous permettra de tout simuler avec reactor.
J'ai modélisé assez grossièrement un modèle 3d pour l'exemple, dispo ici

elle est pas super jolie, mais pour l'exemple il y a ce qu'il faut... Pour vos propres animations, je vous laisse modéliser la votre ou trouver un modèle tout fait, je ne vais pas tout faire, arrêtez d'exagérer...!
Il y a quelques détails à respecter toutefois. Il faut, pour que la mécanique fontionne, essayer de coller de façon fidèle au schéma d'une catapulte réelle. Il faut un axe de rotation composé d'un cylindre qui doit tourner dans un tube, il faut un contrepoids fixé au bras
Catapulte

Catapulte

Il faut que les différentes pièces ne se touchent pas, juste qu'elles s'emboitent, comme elles le feraient "en vrai" (laissez entre elles un écart supérieur ou égal à celui de la tolérance aux colisions dans les propiétés de reactor. (voir plus loin)
Pour cette scène on a donc 4 pièces : le socle, le bras en forme de cuillère, le contrepoids et la pierre. Le principe est assez simple, on met la pierre dans la cuillère et le poids du contrepoids entraine la rotation du bras. En fin de course il heurte la barre transversale du socle, et le choc envoie la pierre droit sur l'outrecuidant d'en face.

Après avoir modélisé votre engin en respectant bien le principe du 1er paragraphe, veiller à placer correctement le point de pivot de votre bras

Point de pivot

Une fois ceci fait, créez une "collection rigid body" et placez y vos éléments, socle, pierre, bras et contrepoids.
Dans les propriétés générale de réactor, j'ai mis l'échelle à 1m=100 dans max, -900 de gravité et une tolérance aux colision de 0,9 (ou un petit centimètre, ce qui à cette échelle ne se voit quasiment pas)
Paramètres Reactor
Le socle ne bouge pas il ne sert qu'à tenir le bras, on ne lui met donc pas de poids, par contre veillez à lui baisser son taux d'élasticité et de friction, pour une bonne rotation du bras et éviter qu'il ne rebondisse trop en fin de course, et dans les propriétés utilisez le volume de la mesh, car il est trop complexe pour être simuler par un volume cubique.
Paramètres Reactor
Mettez une cinquantaine de kilo à la pierre et enlevez lui toute élasticité.
Le bras a un poids important, car c'est lui qui déterminera la puissance de votre lancer. Plus le bras sera lourd, plus la pierre ira loin, entre 1000 et 3000 kg devrait suffire. élasticité et friction assez faible, et utilisez le volume de la mesh pour les mêmes raisons que pour le socle.
Enfin, pour le contrepoids vous pouvez mettre un poids assez élévé, environ 1000 fois la poids de la pierre pour un bon basculement.
Lancer le preview de l'anim, et normalement, ça marche !
Pour le fun, faites un mur de briques avec des boites rectangulaires en face de votre catapulte (veillez à les espacer de 0,5, comme votre tolérance aux colissions, pour éviter les avertissements d'interpénétration) ajoutez les à la collection rigid body, mettez-leurs un poids, pas trop élevé, et pas l'élasticité.
lancez le preview, et normalement, sans avoir à aucun moment touché la time line pour créer de l'animation en keyframe, cela donne ça :