Dynamique d'objet

Écrit le 05/07/2003 par nanabaky
Dernière mise à jour : 31/01/2006

Dynamique d'objet

Définition

La dynamique d'objet consiste a créer des interactions réalistes entre des géométries définies, actives et passives (ou "obstacles") ; par exemple, un dé (géométrie active poussée par une force de gravité) rebondissant sur une table (géométrie constituant un obstacle), ou une cascade de dominos (le premier domino est actif, c'est lui qui déclenche la chute en chaîne des autres dominos, alors passifs). La dynamique d'objet de 3DSmax n'est pas conçue pour des objets trop compliqués, en raison de quelques bugs probables et de temps de calcul énormes...

Il existe une extension pour 3DSmax répondant au nom de Reactor pour gérer la dynamique d'objet de façon plus poussée et plus réaliste, tout en réduisant les temps de calcul. Bien sûr cette extension est payante.

C'est parti

Dans ce tutorial, il s'agira de créer la dynamique basique d'une sphère attirée par la gravité et entrant en collision avec des obstacles obliques. On peut ainsi lister ce dont on va avoir besoin :

- Une sphère
- Des box
- Un spacewarp de gravité

La sphère chutera en rebondissant sur les pans de murs vers le centre d'un socle.

http://www.game-lab.com/images/tuts/3dsmax_dynamique/ResultAfterSolve.jpg

Imitez le placement de ces box et notez l'emplacement du point de départ de la chute de la sphère.

Allez dans le panneau Utilities :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/UtilDynamX.jpg

Une fois dans l'utilitaire Dynamics, cliquez sur New et donnez un nom à votre dynamique.

http://www.game-lab.com/images/tuts/3dsmax_dynamique/DynamXNew.jpg

Il faut alors définir la liste d'objets (ou géométries) concernés par cette dynamique. Ici, il y en a 5 : la sphère, les trois murs et le socle. Pour ce faire, cliquez sur Edit Object List et sélectionner les géométries :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/EditObjectList.gif

Une fois la liste d'objets définie, il faut alors éditer les propriétés de chaque objets. Cliquez sur Edit Object. Vous obtenez alors ce panneau, avec ici les paramètres à utiliser pour la sphère :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/EOLSphere.gif

En haut à gauche, dans le menu déroulant, choisissez la sphère (ici son nom est "boule"); dans collision test, choisissez sphere pour que l'objet agisse en tant que sphère.

Cliquez ensuite sur Assign Object Effects afin de définir quelle force ou spacewarp va être utilisé pour la dynamique de la sphère. Il s'agit ici du spacewarp gravity :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/AssignObjEffect.jpg

Après cela, définissez les obstacles de la sphère : cliquez sur Assign Object Collisions :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/AssignColl.jpg

Passez ensuite aux paramètres des obstacles :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/EOLObstacles.gif

Verrouillez l'emplacement de chaque obstacle en cochant : This Object is Unyielding et définissez-le en tant que Mesh. Si vous conservez Box, la dynamique utilisera la forme BoundingBox de chaque obstacle, ce qui fera que l'inclinaison de ces objets ne sera pas prise en compte.

N'assignez pas l'effet de gravité aux obstacles, sinon ils chuteront en même temps que la sphère.

Pour ce tutorial, n'assignez pas non plus de collision aux obstacles : c'est la sphère qui entre en collision avec les obstacles, sinon, au moment de la collision, les obstacles chuteront aussi, poussés par la sphère. C'est le principe des dominos.

Validez sur OK.

Il vous reste ensuite à lancer le calcul de l'animation : cliquez sur Solve du panneau de votre dynamique :

http://www.game-lab.com/images/tuts/3dsmax_dynamique/Solve.gif

Assurez-vous que vous n'avez pas d'objets en sélection, ou alors les temps de calcul seront vraiment beaucoup plus longs.

La sphère se voit alors attribuer de clés d'animation sur toute la durée de la Timeline (100 frames par défaut).

Notez que nous n'avons pas touché à toutes les options, dont la masse des objets, le coefficient de rebond, la résistance à l'air, les paramètres du spacewarp, etc. La dynamique est un outil très maniable et assez logique dans son utilisation, permettant de créer toutes sortes de collisions, réalistes ou non, par exemple en combinant et en animant les spacewarps...

C'est la fin de ce tutorial.