Sketchup Physics, simulation d’un mouvement de projecteur.

 

Cet exemple met en œuvre des structures hiérarchiques animée dans Sketchup Physics.

Création du corps du projecteur.

clip_image002

La lyre doit être réalisée en trois parties, Sketchup physics gérant mal les objets concaves. Mais l’ensemble des morceaux est groupé.

 clip_image004

clip_image006

On ajoute à l’ensemble une barre de fixation.

 clip_image008

Les rotations se feront telles que suit : autour d’un axe vertical entre la lyre et la barre, autour d’un axe horizontal entre la lyre et le projecteur.

Mise en place des axes de rotation.

On place deux « servo » clip_image009sur les axes de rotation

 clip_image011

Il s’agit maintenant de configurer correctement la hérarchie fin que les modules s’animent correctement, le mouvement de 1 induit le mouvement de 2. Pour cela il faut réaliser des groupes.

 clip_image013

Nous avons donc trois groupes : le corps du projecteur seul [PROJO], le groupe servo2+Lyre, le groupe servo1+barre.

Création des liens

On clique sur clip_image014 pour lancer le processus d’association. Dans l’ordre : projo, puis touche contrôle (CTRL) puis servo2. clip_image016

De même avec le lien Lyre-> servo1

clip_image018

Réglage des contrôles

Cliquer sur clip_image019 pour avoir accès au réglage des contrôles (ici nous sommes en version 3)

clip_image021

Les valeurs min et max correspondent au débatement, ici -90,+90 donnent un angle de 180°. La case « controler » permet de libeller le nom qui accompagnera le Slider. clip_image023

Nota, les sliders n’apparaissent qu’au lancement de la simulation.

Fixer la barre.

clip_image025

Bouton droit sur la barre et choisir Static.

Lancer la simulation

Click sur clip_image026 pour lancer la simulation. La palette avec les sliders apparait pour effectuer les mouvements. clip_image028

Créer un moteur de poulie.

 

Dans cet exemple, il sera question de construire un objet concave, de paramétrer un moteur, puis de créer une corde. La corde sera attachée dans la gorge de la poulie, l’ensemble soulèvera une charge.

Mise en place de la poulie

clip_image002

Il faut créer 3 cylindres, qui seront groupés en un seul objet afin de faire reconnaitre la gorge de la poulie (comme pour les maillons de la chaine plus haute). On applique ensuite un joint « servo » dont on aura « labélisé » le controller afin de créer une glissère de contrôle.

clip_image004

Attention : ne pas mettre d’accent ou de signes particuliers dans les contrôleurs.

Pour simplifier la visualisation des actions, seule la partie centrale va être montrée. Dans cette partie centrale va être tracée une gorge. L’ensemble va ensuite être démonté pour obtenir des blocs indépendants, puis, ces blocs vont être associés en groupes. Rappel, SketchyPhysics ne gère pas les formes concaves.

clip_image006

Chaque morceau constituant la gorge de la poulie est visualisé ci-dessus par des couleurs différentes.

Création de la corde.

La corde est un objet simple à créer, mais dont la réalisation demande une très grande attention. Il s’agit tout simplement de lier des « box » avec des joints, « hinge » (charnière) ou « ball » balle. Dans le cas qui suit, ce sera avec des charnières.

Dans un premier temps, la corde est réalisée avec des boites légèrement distantes. Pour que l’espacement des boites soit régulier et que l’ensemble soit rapide à construire, on utilise des petites boites intermédiaires. Ensuite il ne reste plus qu’à faire des « déplacer/copier » (fonction déplacer + CTRL). La corde doit être assez longue.

clip_image008

Le premier maillon de la chaine est marqué d’une couleur rouge. Cela pourra être utile pour la suite.

Placer des charnières (« hinge ») à l’extrémité des boites à partir de la deuxième. Attention, il ne faut pas faire de copier/coller avec les charnières, car les noms seraient identiques et donc la simulation serait faussée. Effectuer la jonction telle que vue précédemment :

  1. Cliquer sur le « joint Connection Tool » (JTC, outil de connexion de joint) clip_image010. Une fois le JTC activé, cliquer sur la boite

2. Maintenir la touche contrôle (CTRL) enfoncée, cliquer sur la charnière -> la première boite pivote maintenant autour de l’axe donné par la charnière

clip_image012

Faire ensuite un groupe boite + charnière.

clip_image014

Renouveler l’opérartion pour chaque maillon de la chaine.

Connecter ensuite les maillons entre eux en cliquant sur le joint (accessible même s’il est dans un groupe) et la boite faisant face. Ici, la chaine est dessinée à plat, elle est ensuite redressée.

clip_image016 L’inspector montre ici la logique de connection des différentes entitées.

clip_image018 La flexibilité de la corde est testée, il ne faut pas qu’il y ait de cassures, de blocages ou d’explosion des solides.

Réalisation du moteur de la poulie

Le moteur est réalisé avec un joint « motor » comme pour la voiture.

clip_image020

Dans la version 3 de Sketchyphysics, la case « controler » est alimentée automatiquement, ce qui permet d’avoir un « slider » pour gérer la vitesse de rotation. Dans la version 2, il faut renseigner manuellement la case afin de faire apparaitre un slider de contrôle.

La corde est attaché à la poulie par un emboitement.

clip_image022

Visualisation

clip_image024

L’ensemble fonctionne parfaitement. L’astuce de la gorge de poulie permet de simplifier grandement le travail d’attache de la corde à la poulie.

Didacticiel Sketchyphysics

Didacticiel Sketchyphysics

par Laurent Lescop

Moteur Physique pour Sketchup

(Page de référence en anglais : http://code.google.com/p/sketchyphysics/wiki/Docs)

Page de téléchargement du moteur physique :

http://code.google.com/p/sketchyphysics/downloads/list.

Avant propos : les moteurs physiques trouvent de plus en plus leur place dans les applications 3D. On les trouvera dans 3Dsmax (reactor), Blender (Bullit) et maintenant ici Sketchup (Newton). L’utilisation du moteur physique permet d’approcher le comportement « réel » des objets soumis à des contraintes de gravité, de déplacements contrôlés ou de chocs et ce en fonction de caractéristiques propres : poids, élasticité, dureté. Le résultat attendu relève de la simulation physique, ce qui peut différer de ce qu’un animateur peut attendre, à savoir une interprétation du mouvement.

Sketchup met toute les qualités de son ergonomie et de sa relative facilité de prise en main pour offrir à l’utilisateur un outil de simulation physique puissant et rapide. En effet, la rapidité de la résolution des solutions mises par l’utilisateur est déterminante pour le confort d’usage.

Partie 1 : les bases

Après installation de l’application SetupSketchyPhysics2b1-Jan14.exe, on trouvera à l’ouverture de Sketchup de nouveaux onglets et menus :

clip_image002

Simulation

clip_image003 Le premier bouton démarre et met en pause les simulations, le second réinitialise les solutions. Le bouton UI lance une boite de dialogue contenant les attributs des objets.

Lors de la simulation, il est possible d’intervenir sur les objets en appuyant sur le bouton gauche (BG) de la souris. MAJ + BG permet de déplacer les objets de bas en haut.

Création

N’importe quelle forme peut devenir un « objet physique » pour peu qu’elle soit assemblée en groupe. Sinon il existe des primitives élémentaires que l’on va trouver ici :

clip_image004On notera l’importance de la primitive « solid floor » (sol solide) clip_image005 importante pour créer un support sur lequel se dérouleront les simulations. Sans le sol, les objets tombent.

Attention : comme dans toute opération d’animation ou de simulation, le changement d’échelle peut engendrer des erreurs ou des comportements étranges. A éviter.

Par le bouton droit de la souris (BD) il est possible de préciser la géométrie que va calculer le moteur physique, cette géométrie pouvant être différente de la forme propre de l’objet. Ainsi une sphère pourra-t-elle approximée par un cube (pour des résultats plus rapides). L’option « Convex Hull » (coque convexe) permet de « draper » un objet afin d’en approcher la géométrie lorsque celle-ci est complexe.

clip_image007 L’option « Static Mesh » (maillage statique) rend l’objet immobile. Il n’est plus considéré comme un objet dynamique.

Les attributs des objets

Par bouton droit (BD) on peut affecter des attributs à des objets

clip_image009 »Frozen » (gelé), l’objet ne peut pas bouger tant qu’il n’a pas été touché par un autre objet. Cela servira à mettre en place les scènes. « Static » (statique), l’objet ne bougera pas et se comportera comme un objet solide. « Ignore » (ignorer), préserve l’objet des collisions. Un nouvel attribut « NoCollision » verra bientôt le jour apportant des nuances à l’attribut Ignore.

Les joints

Les joints sont les objets non géométriques articulant les géométries entre elles.

clip_image010 On trouvera dans l’ordre de la palette :

clip_image011 « Hinge » (charnière). La charnière est le joint que l’on utilise le plus, il crée les systèmes articulés et les systèmes à rotations, comme les roues.

clip_image012 « Slider » (glissière). La glissière fait bouger un objet comme sur un rail.

clip_image013 « Corkscrew » (Tire-bouchon). Le tire-bouchon est la combinaison de la glissière et de la charnière.

clip_image014 « Spring » (ressort). Le ressort fonctionne comme une glissière, mais l’objet revient à sa position initiale (avec un effet de rebond).

clip_image015 « Universal joint » (jointure universelle). La jointure universelle fonctionne comme deux glissières à angle droit. Les résultats peuvent être instables.

clip_image016 « Ball joint » (joint boule). Le joint boule (comme une boule de caravane) permet à l’objet de bouger librement autour d’un point. Ce joint est également instable s’il est sollicité trop fortement.

clip_image017 Les quatre derniers joints « Servo », « Piston », « Motor » et « Gyro » seront décrits un peu plus loin.

Les joints hinge, Slider, Servo, Piston et Motor sont des joints contrôlables.

Mise en place simple

Mise en place d’un objet géométrique et d’un joint commandant le comportement de cet objet.

Slider

Créer une boite et créer un « slider » sur le dessus de cette boite.

clip_image018clip_image019clip_image021

1. Cliquer sur le « joint Connection Tool » (JTC, outil de connexion de joint) clip_image022. Une fois le JTC activé, cliquer sur la boite

2. Maintenir la touche contrôle (CTRL) enfoncée, cliquer sur le Slider

La boite est connectée au Slider. Le déplacement de la boite est maintenant conditionnée par les paramètres du Slider. Le tester en cliquant sur le bouton « Play/Pause » clip_image023 et clip_image024 pour rétablir l’état d’origine.

En cliquant sur le bouton clip_image025 « UI », on accède à une interface de contrôle des objets de la scène. Cliquer sur le Slider et observer les valeur Min et Max. Elles donnent la valeur de l’amplitude du mouvement. Par defaut c’est la longueur du Slider.

clip_image027

Si l’on place un nom dans la case « controler », on voit apparaitre lors de la simulation un panneau de contrôle doté d’une glissière permettant d’animer le mouvent du cube de façon très précise. Cette fonction servira par la suite constament afin d’avoir un contrôle exact des actions à imprimer aux objets. Il sera même possible de piloter les actions via un joystick.

clip_image028clip_image030

Charnière entre deux solides

Voici deux façon de lier deux solides entre eux avec une charnière. La première consiste à utiliser un groupe pré-paramétréclip_image031. Cliquer sur l’icône pour créer un premier block puis recommencer la manœuvre en démarrant scrupuleusement à l’angle de l’objet venant juste d’être créé. On constitue ainsi un petit ensemble articulé (un peu comme un serpent).

clip_image033

On remarque que les solides d’interpénètrent. On retiendra cette méthode pour faire des cordes ou tout objet demandant une grande souplesse.

Créer maintenant deux boites et placer une Charnière « Hinge » à l’intersection.

clip_image035

Lier la première boite à la charnière :

  1. Cliquer sur le « joint Connection Tool » (JTC, outil de connexion de joint) clip_image022[1]. Une fois le JTC activé, cliquer sur la boite

2. Maintenir la touche contrôle (CTRL) enfoncée, cliquer sur la charnière -> la première boite pivote maintenant autour de l’axe donné par la charnière

3. Répéter l’opération avec la deuxième boite -> les deux boites pivotent autour de la charnière sans interpénétrations.

4. Si l’on déclare l’une des boites comme « static » elle se comportera comme un pan de mur, alors que l’autre boite se comportera comme une porte.

La question de l’enveloppe de simulation

L’enveloppe de simulation (« shape Physics »)va déterminer la manière dont l’objet va se comporter. Par défaut, l’enveloppe de simulation d’un cube, sera un cube, une sphère pour une spère et un cylindre pour un cylindre. Les choses se compliquent lorsque la forme est convexe ou possède des trous ou un certain nombre de reliefs.

On peut visualiser la forme de l’enveloppe de simulation en cliquant sur la fonction « readback collision geometry », accessible en cliquant sur le modèle avec le bouton droit (BD)

clip_image037

Pour une forme telle que cette sphère munie de picots, l’enveloppe de déformation se présente ainsi : on voit que la sphère englobante ne prend pas toute la forme.

clip_image039

Le logiciel se débrouille pour approcher au mieux l’enveloppe. Une option permet toutefois de disposer autrement. Par exemple, pour des raisons de rapidité de calcul, on pourra préférer envelopper une forme d’une géométrie plus simple afin d’accelérer les calculs.

clip_image041 Par défaut on a « box » (boite), « sphere » (sphère), « cylinder » (cylindre), « cone » (cône), « capsule » (capsule), « chamber » (ventricule) et « convexhull » (coque convexe).

Pour des formes complexes, on va plutôt chercher à les envelopper avec une coque convexe, comme pour le polyèdre ci-dessous.

clip_image043

Les objets creux

Un trou ne sera pas pris en compte dans la simulation, si l’on veux faire une chaine par exemple, les maillons seront pris en compte par rapport à leur enveloppe extéreure et non comme un objet concave (contrairement à ce que l’on peut avoir avec reactor de Havock).

La solution consiste à créer un groupe de groupes.

1. Commencer par créer une brique, en faire un groupe

2. Recommencer et positionner les objets de telle manière à faire un maillon

3. Les grouper.

clip_image045

L’ensemble va fonctionner correctement comme une chaine. Il n’y a pas de notion d’objet creu (contrairement à d’autres moteurs comme celui d’Avock dans 3Dsmax), il faut donc contourner cette difficulté en modélisant des objets groupés.

Construction d’un petit véhicule

Créer un socle, construire une boite. Elever la boite.

clip_image047

Utiliser l’outil « create wheel » (créer roue).

clip_image049Positionner la première roue. Des lignes d’aide ont été créées afin de positionner la roue avec précision. Répéter l’opération pour chaque roue.

Le véhicule est prêt. Passer en mode « play » pour le faire rouler. L’installer le long d’une pente pour le faire dégringoler tout seul.

clip_image051Il est toujours possible d’éditer la boite de base pour «sculpter » le véhicule. Faire BD, éditer groupe et modifier à volonté.

Pour faire rouler automatiquement le véhicule, il convient de lui ajouter un moteur. Pour cela, éditer les propriétés de la jointure « hinge », éditer la roue, puis cliquer sur la charnière (hinge) en ayant la palette de UI active (« show UI »).

Dans la case contrôleur ajouter –slider(« roue »)– pour la version 3, juste –roue– pour la version 2.

Un slider apparaitra au moment de jouer l’animation permettant de régler la puissance du moteur.

clip_image053

Les lignes d’aide ont été conservées afin de suivre la vitesse de rotation des roues. Elles seront bien entendu retirées pour une présentation définitive.

Nota : chaque objet constituant l’ensemble doit être individualisé. Il ne faut pas faire de copier/coller des ensembles roues et surtout ne pas faire de copier/coller des joints. Ils sont tous référencés par un numéro. Un copier/coller les ferait tous se comporter de la même manière.

Créer un moteur de poulie.

Dans cet exemple, il sera question de construire un objet concave, de paramétrer un moteur, puis de créer une corde. La corde sera attachée dans la gorge de la poulie, l’ensemble soulèvera une charge.

Mise en place de la poulie

clip_image055

Il faut créer 3 cylindres, qui seront groupés en un seul objet afin de faire reconnaitre la gorge de la poulie (comme pour les maillons de la chaine plus haute). On applique ensuite un joint « servo » dont on aura « labélisé » le controller afin de créer une glissère de contrôle.

clip_image057

Attention : ne pas mettre d’accent ou de signes particuliers dans les contrôleurs.

Pour simplifier la visualisation des actions, seule la partie centrale va être montrée. Dans cette partie centrale va être tracée une gorge. L’ensemble va ensuite être démonté pour obtenir des blocs indépendants, puis, ces blocs vont être associés en groupes. Rappel, SketchyPhysics ne gère pas les formes concaves.

clip_image059

Chaque morceau constituant la gorge de la poulie est visualisé ci-dessus par des couleurs différentes.

Création de la corde.

La corde est un objet simple à créer, mais dont la réalisation demande une très grande attention. Il s’agit tout simplement de lier des « box » avec des joints, « hinge » (charnière) ou « ball » balle. Dans le cas qui suit, ce sera avec des charnières.

Dans un premier temps, la corde est réalisée avec des boites légèrement distantes. Pour que l’espacement des boites soit régulier et que l’ensemble soit rapide à construire, on utilise des petites boites intermédiaires. Ensuite il ne reste plus qu’à faire des « déplacer/copier » (fonction déplacer + CTRL). La corde doit être assez longue.

clip_image061

Le premier maillon de la chaine est marqué d’une couleur rouge. Cela pourra être utile pour la suite.

Placer des charnières (« hinge ») à l’extrémité des boites à partir de la deuxième. Attention, il ne faut pas faire de copier/coller avec les charnières, car les noms seraient identiques et donc la simulation serait faussée. Effectuer la jonction telle que vue précédemment :

  1. Cliquer sur le « joint Connection Tool » (JTC, outil de connexion de joint) clip_image062. Une fois le JTC activé, cliquer sur la boite

2. Maintenir la touche contrôle (CTRL) enfoncée, cliquer sur la charnière -> la première boite pivote maintenant autour de l’axe donné par la charnière

clip_image064

Faire ensuite un groupe boite + charnière.

clip_image066

Renouveler l’opérartion pour chaque maillon de la chaine.

Connecter ensuite les maillons entre eux en cliquant sur le joint (accessible même s’il est dans un groupe) et la boite faisant face. Ici, la chaine est dessinée à plat, elle est ensuite redressée.

clip_image068 L’inspector montre ici la logique de connection des différentes entitées.

clip_image070 La flexibilité de la corde est testée, il ne faut pas qu’il y ait de cassures, de blocages ou d’explosion des solides.

Réalisation du moteur de la poulie

Le moteur est réalisé avec un joint « motor » comme pour la voiture.

clip_image072

Dans la version 3 de Sketchyphysics, la case « controler » est alimentée automatiquement, ce qui permet d’avoir un « slider » pour gérer la vitesse de rotation. Dans la version 2, il faut renseigner manuellement la case afin de faire apparaitre un slider de contrôle.

La corde est attaché à la poulie par un emboitement.

clip_image074

Visualisation

clip_image076

L’ensemble fonctionne parfaitement. L’astuce de la gorge de poulie permet de simplifier grandement le travail d’attache de la corde à la poulie.