CSG et groupes (objets groupés)

Ce cours vous familiarisera avec la création des groupes et des objets CSG.

Chargez TUTOR04A.MDL. C'est un assemblage de base d'un bras de robot. Dans ce cours, nous construirons et assemblerons des pièces supplémentaires.

Tout d'abord, la base du robot est trop haute. Nous voulons une base basse. Pour cela, nous commençons par sélectionner l'objet Base en le cliquant dans l'onglet Select. Ensuite, nous dimensionnons son composant Z (= hauteur) à 0.4. Ensuite, nous la déplaçons en Z=0.4. Cela placera la base à l'origine (Z=0). Nous devons maintenant déplacer l'assemblage du bras sur la base. Nous pouvons sélectionner chaque partie et la déplacer, mais cela est plutôt ennuyeux, aussi, nous créerons plutôt un groupe, lui ajouterons toutes les parties, puis déplacerons la totalité du groupe.

Créez un objet Group et appelez-le ArmHolder. L'origine du groupe est à l'origine du monde (les valeurs de ses positions sont toutes à 0). Maintenant, nous pouvons ajouter les objets, mais nous voulons que le groupe soit au centre de l'assemblage, pour que le dimensionnement et le déplacement soit plus aisé.

Déplacez l'objet groupe en {0,0,2.5}. Notez que nous n'avons pas de cadre en fil de fer, puisque le groupe ne contient aucun objet. Utilisez le clavier numérique.

Maintenant cliquez sur le bouton Add. Moray va ouvrir une boite de dialogue vous présentant tous les objets disponibles dans une liste. Activez la case à cocher en dessous de la liste pour vous assurer que les objets conservent leur position quand vous allez les ajouter. Cliquez sur l'objet ArmHoldBaseL1 et sur Add Object. L'objet appartient maintenant au groupe et apparaît comme sous-objet sous le G vert dans l'onglet Modify. Toutefois, ajouter plus d'un objet de cette manière est fatigant. Heureusement, Moray a un raccourci. Maintenez la touche SHIFT enfoncée et cliquez ArmHoldBaseR1, puis ArmHoldBaseR2, ArmHoldBaseL2 et ArmPivot. Quand tout ceci est fait, fermez la boite de dialogue en cliquant sur Close.

Nous ne pouvons pas rendre cela tout de suite car certains objets n'ont pas de matière. Aucun des objets, que nous venons d'ajouter, n'a de texture. Tout ce que nous devons faire est d'assigner une matière au groupe, car tous les objets du groupe en hériteront.

Sélectionnez le groupe (si ce n'est pas encore fait) et cliquez sur le bouton d'assignation de matière (celui avec la petite flèche et les quatre sphères de couleur). Choisissez la matière BodyTxtr de la liste et assignez-la en cliquant sur le bouton Assign. Répétez cela pour l'objet Base.

Maintenant, sauvegardez la scène en pressant CTRL-S puis rendez-la avec F9.

OK, pas mauvais, mais la partie centrale (ArmPivot) est censée être en chrome. Pour faire cela, sélectionnez-la simplement (ArmPivot), cliquez sur le bouton d'assignation de matière et double cliquez sur la matière Chrome_Look. Cela écrase l'héritage provenant de l'objet parent.

Déplacez le bras vers le bas pour que la translation sur Z soit de 1.4, plaçant ainsi l'assemblage sur la base. Fabriquons un autre groupe appelé Robot et ajoutons-y le bras et la base. Cliquez sur l'onglet Create, puis Group, puis Add, activez Leave in Place..., puis ajoutez ArmHolder et Base.

OK, maintenant créons un bras pour le robot. Lors de la création des éléments du bras, nous devons faire attention à ce que leurs axes de rotation passent par l'origine, ainsi quand vous sélectionnerez un élément pour le faire tourner, il ne quittera pas le robot.

Actuellement, nous n'avons pas besoin de voir le corps du robot, aussi nous essaierons de rendre l'objet invisible. Tous les objets de Moray ont un niveau de visibilité dans l'onglet Modify. En utilisant le curseur, nous donnons la valeur +6 et avec ALT-4 nous plaçons le niveau de visibilité global à +4. Tous les objets avec un niveau supérieur seront cachés.

Créez un objet CSG appelé UpperArm et un cylindre appelé UpperArmBase. Dimensionnez le cylindre à {0.4,0.4,2.0} et ajoutez-le au CSG UpperArm. Créez un cube appelé ShoulderJoint et dimensionnez-le à 0.5 uniformément. Ajoutez-le au groupe UpperArm. Créez un cylindre appelé ElbowJoint et dimensionnez-le à {0.5,0.5,1.0}, faites-le tourner de -90 degrés en Y et déplacez-le en {-0.5,0,2.0}. Ajoutez-le au groupe UpperArm.

Pressez ALT-6 pour rendre sa visibilité au robot. Sélectionnez l'objet ArmHolder et cliquez sur Add. Désactivez l'option Leave ... (cela signifie que l'objet que nous allons ajouter ne sera pas transformé pour conserver sa position, mais sera simplement inséré au groupe). Sélectionnez l'objet UpperArm. Il fait maintenant partie de l'objet ArmHolder et hérite de sa matière. C'est OK, sauf pour le cylindre UpperArm que nous voulons en chrome. Sélectionnez l'objet UpperArm et paramétrez-le pour qu'il utilise la matière chrome.

La scène TUTOR04B.MDL reflète notre situation.

OK, pressez encore ALT-4 pour cacher le robot. Créez un cylindre appelé LowerArmBase et dimensionnez-le en {0.3,0.3,2.0}. Créez un cylindre appelé HandJoint, dimensionnez-le en {0.4,0.4,0.8}, faites-le tourner de -90 degrés en Y et déplacez-le en {-0.4,0.0,2.0}. Maintenant, créez un objet CSG appelé LowerArm et ajoutez les deux cylindres tout neufs. Déplacez l'objet LowerArm en 2.0 sur Z. Sélectionnez UpperArm, cliquez sur Add, désactivez l'option Leave ... et ajoutez-lui LowerArm. Sélectionnez l'objet LowerArmBase et assignez-lui la matière chrome.

Notez que vous pouvez maintenant faire tourner le bras autour de l'axe X sans perdre des morceaux. Sélectionnez l'objet UpperArm et utilisez la souris dans la vue de coté pour le faire tourner de 60 degrés (sur l'axe X). Sélectionnez l'objet LowerArm et faites-le tourner de 45 sur X, dans la vue de coté.

Pressez CTRL-S et rendez la scène (F9). TUTOR04C.MDL est le fichier de notre position actuelle.