Création et Rigg des Bras FPS en 3ds Max pour Unreal Engine 4

Ce tutoriel présente une méthode complète pour créer une paire de bras en vue subjective (FPS), entièrement riggée et prête à être utilisée dans Unreal Engine 4, facilitant ainsi l'animation.

Les développeurs de Item_42 ont généreusement partagé leur tutoriel détaillé. Bret Ware et Regan Ware, développeurs de BLISTER, ont publié une leçon complète sur la création et l'animation de bras pour un jeu FPS à l'aide de 3ds Max et d'Unreal Engine 4. Vous apprendrez une méthode pour créer une paire de bras FPS entièrement riggée, adaptée à UE4 et facile à animer, ainsi qu'une méthode pour exporter le rig des bras, les armes et les animations associées vers UE4 pour une utilisation dans un jeu FPS.

Schéma conceptuel d'un personnage FPS avec bras en vue subjective

I - Préparation du Maillage Lowpoly

La première étape consiste à déterminer la pose neutre des bras. Vous pouvez soit les créer dans une pose droite et neutre, ce qui est plus facile pour le rigger mais plus difficile pour le sculpteur, soit les créer dans une pose qui correspond à la position qu'ils occuperont le plus souvent. L'approche choisie ici est la seconde, bien qu'il soit plus difficile de rigguer avec précision un bras déjà en pose.

Lors de la création du lowpoly pour votre rig de bras FPS, il est conseillé de double-chanfreiner les jointures et autres zones sujettes à des mouvements d'angles importants. Ces polygones double-chanfreinés pourront être fusionnés entre les os adjacents ultérieurement avec un minimum d'étirement UV.

Avant de commencer le rigging, assurez-vous d'avoir créé la carte UV et les textures pour le lowpoly, comme vous le feriez normalement. La texture diffuse sera très utile dans 3ds Max pour repérer les étirements UV. L'étirement UV se produit lorsqu'un os reçoit trop de poids sur une face particulière ou un ensemble de sommets du lowpoly. Il faut éviter cela autant que possible pour obtenir un bon rig.

Exemple de maillage lowpoly avec double-chanfrein sur les jointures

II - Création d'un Squelette Personnalisé dans 3ds Max pour les Bras FPS

Assurez-vous que vos bras sont centrés à 0,0,0. Il existe une méthode simple pour y parvenir.

Alternativement, si cela déplace votre rig de bras trop loin du point central, déplacez le rig vers l'avant en utilisant les contrôles de transformation, ré-sélectionnez "Affect Pivot Only" et centre à zéro en utilisant le panneau.

Nous allons commencer la création du squelette. Appuyez sur ALT+X sur le maillage du bras pour activer le mode X-ray afin de pouvoir voir à travers le maillage.

Assurez-vous d'être dans la vue appropriée. Appuyez sur T pour accéder à la vue orthogonale de dessus (Top). Appuyez sur F4 si vous souhaitez voir la vue en fil de fer pendant que vous travaillez. Activez l'Explorateur de Calques, choisissez si vous voulez travailler sur le bras gauche ou droit et créez un calque nommé "bones_left" ou "bones_right". Assurez-vous que c'est le calque actif en appuyant sur l'icône grise du calque pour la rendre bleue.

Entrez en Bone Edit Mode et appuyez sur Create Bones. Dessinez votre premier os dans la vue. Une fois le premier os dessiné, le suivant sautera automatiquement à la position de votre souris pour que vous puissiez dessiner le prochain os. Créez l'avant-bras, le bras et le poignet/la main. Faites un clic droit deux fois pour quitter le mode Create Bones.

Restez en Bone Edit Mode. Ajustez la taille des os avec les Fin Adjustment Tools. Modifiez la largeur, la hauteur et la conicité sous "Bone Objects" pour qu'ils correspondent aux bras sur lesquels vous travaillez.

Restez en Bone Edit Mode. Entrez en Perspective Mode en appuyant sur P et ajustez la position des os pour qu'ils correspondent aux bras. Essayez de garder tout aussi droit et ordonné que possible. Ne tordez jamais un os qui dépend d'un autre os en utilisant l'outil Rotate, sauf si vous avez pris en compte les autres os dans cette rotation.

Restez en Bone Edit Mode. Vous pouvez parfois (mais pas toujours) aligner les os en utilisant l'outil Align.

Le panneau "Align Selection" apparaîtra. N'utilisez pas "Align Position" pour les os déjà liés, tels que les os de l'avant-bras et du poignet/de la main. Utilisez le point de pivot de l'os sélectionné et utilisez les outils "Align Orientation" pour redresser les os.

Sélectionnez à nouveau Create Bones. Créez une hiérarchie d'os de doigts en Bone Edit Mode. Cette fois, gardez l'os "Nub" à la fin de la hiérarchie. Quittez Bone Edit Mode et sélectionnez les 4 os des doigts. Maintenez la touche SHIFT enfoncée et faites glisser le long d'un axe. Cela produira une copie.

Il est très important de s'assurer que les os ne dévient pas sur leurs axes. Ils doivent être droits pour fonctionner efficacement. Vous devrez peut-être faire pivoter la hiérarchie des os des doigts pour les faire tenir dans le maillage, mais assurez-vous de les faire pivoter en dehors de Bone Edit Mode afin qu'ils restent droits les uns par rapport aux autres. Observez l'image pour confirmer.

Ajustez les points de pivot de connexion des os en entrant en Bone Edit Mode et en utilisant l'outil Select and Move sous "Local transformation".

Utilisez l'outil Select and Link en le faisant glisser depuis les os sélectionnés vers l'os cible, qui dans ce cas est l'os du poignet/de la main (il fonctionne à la fois comme poignet et comme main pour nos besoins de rigging).

Entrez à nouveau en Bone Edit Mode. Créez un os près de l'os du poignet/de la main, mais ne l'attachez pas. Ce sera votre os "Wrist Rotator". Cet os sera très important.

Supprimez l'os "Nub", quittez le mode "Create Bone" mais restez en Bone Edit Mode. Sélectionnez l'os "Wrist Rotator" que vous avez créé. Sélectionnez l'outil "Align" que vous avez utilisé précédemment et cliquez sur l'os de l'avant-bras qui se connecte à l'os du poignet/de la main. Configurez le panneau "Align Selection" pour "Align Position" et "Align Orientation" sur tous les axes, comme indiqué sur l'image.

En mode "Local transformation", utilisez l'outil Move pour faire glisser l'os "Wrist Rotator" juste en dessous de l'endroit où vous pensez que le poignet devrait pivoter. Utilisez l'outil Rotate pour faire pivoter l'os de 90 degrés sur son axe local. Assurez-vous que l'os pointe dans la même direction que la paume est tournée, comme indiqué sur l'image. Utilisez l'outil Link pour lier l'os "Wrist Rotator" à l'os de l'avant-bras sur lequel il repose actuellement.

Créez un nouvel os et alignez-le sur 0,0,0 - c'est votre os racine (root bone). Vous en aurez besoin plus tard lors de l'importation dans UE4.

Il est temps de commencer à nommer tous les os. Assurez-vous que l'Explorateur de Calques est toujours activé. Il existe un outil de préfixe/suffixe pour nommer facilement tous les os, mais nous allons le faire manuellement pour éviter toute erreur stupide. Dans l'Explorateur de Calques, appuyez sur le bouton Hierarchy View à côté du bouton Layer View.

Observez ma configuration sur l'image. Nommez les doigts "r_finger". Suivi de leurs dénominations : "index, middle, ring, pinky". Au sein de chaque doigt, nommez chaque os selon son ordre : "low, mid, high, tip". Sélectionnez tous les os SAUF "root_bone". En utilisant l'Explorateur de Calques en mode Hiérarchie, faites glisser tous les os DANS "root_bone".

Vous avez maintenant un squelette de bras complet. Soyez fier. Il est temps de miroir le bras. Entrez en Bone Edit Mode. Appuyez sur "Mirror". Renommez le préfixe de l'os "R" en "L" et supprimez "(mirrored)". "r_arm_wrist_rotator" peut ne pas avoir été miroir correctement.

Exemple de squelette de bras riggé dans 3ds Max

III - Configuration des Systèmes IK et des Contrôleurs

Le squelette complet est en place. Vous allez maintenant utiliser des contrôleurs IK et diverses contraintes de position et d'orientation pour rendre ce rig beaucoup plus facile à utiliser pour l'animateur afin de créer des animations de haute qualité.

Sélectionnez la pointe de l'index et naviguez vers le panneau Animation. Sélectionnez IK Solvers et choisissez HI Solver.

Connectez-le à l'os inférieur de l'index. Vous avez maintenant une chaîne IK.

Ajoutez des HI Solvers au reste des doigts. Corrigez la position de l'objectif IK de la transformation globale à la transformation locale en utilisant l'outil Align sur l'os "_high" et en orientant l'axe Z, de sorte que l'axe Z pointe vers la droite, l'axe X pointe en diagonale vers le haut et l'axe Y pointe en diagonale vers le bas.

Nous allons maintenant créer un contrôleur pour cette chaîne IK et le poignet. Dans le panneau Create en haut à droite, déplacez-vous vers l'onglet Shapes. Restez sur Splines et sélectionnez Circle.

Faites un clic droit dans la boîte Modifier (Modifier).

Développez le dialogue Editable Spline. Sélectionnez Spline. Appuyez sur CTRL+A dans la vue.

Appuyez sur "Enable in Viewport" sous "Rendering" dans le panneau de droite. Vous avez maintenant une version rendue de votre contrôleur spline dans la vue. Ajustez les options radiales à votre convenance. J'opte pour 4 côtés et une épaisseur de 0.4.

Vous pouvez également dessiner une ligne entre les sommets de la spline en utilisant les "Grid and Snap Settings". Sélectionnez "Grid Points" et "End Points" dans la boîte de dialogue, appuyez sur "Create Line" sous l'onglet Geometry, puis dessinez une ligne entre deux points de votre contrôleur IK.

Renommez votre nouveau contrôleur IK en "arm_wrist_ik_controller", avec le préfixe approprié Gauche ou Droite. Sélectionnez maintenant l'objectif IK, qui est la croix bleue située sur l'articulation du poignet. Utilisez l'outil Link pour le lier à "arm_wrist_ik_controller". Vous pouvez maintenant déplacer le contrôleur IK et l'IK du poignet suivra.

Sélectionnez l'os "arm_wrist". Déplacez-vous vers le panneau Animation. Sélectionnez "Constraints" puis "Orientation Constraint". Connectez l'Orientation Constraint à "arm_wrist_ik_controller". L'orientation du poignet et du reste de la main ne sera donc pas affectée par l'orientation du contrôleur IK. C'est utile pour les animateurs afin qu'ils n'aient pas à corriger constamment la rotation de la main.

Pour aider davantage les animateurs, nous allons ajouter un attribut personnalisé appelé "Elbow Swivel", au cas où le contrôleur IK du poignet se déplacerait de manière étrange. Sélectionnez "arm_wrist_ik_controller".

Avec le modificateur Attribute Holder sélectionné, appuyez sur ALT+1 dans la vue. Une boîte de paramètres apparaîtra. Sous "UI Type", nommez le paramètre "ElbowSwivel". Sous "Float UI Options", réglez la largeur sur 100. Définissez la plage de -10 à +10. Réglez l'alignement sur Droite (ou Gauche si vous le faites sur le bras gauche). Appuyez sur "Add" pour ajouter l'attribut personnalisé au modificateur Attribute Holder.

Allez dans l'onglet Animations et ouvrez la fenêtre Reactions Manager. Avec "arm_wrist_ik_controller" sélectionné, appuyez sur le bouton vert PLUS en haut à gauche. Sélectionnez ensuite "arm_wrist_ik_controller". Naviguez vers Modified Object > Custom_Attributes > ElbowSwivel. Vous avez maintenant ajouté le Maître. Sélectionnez maintenant l'objectif IK du poignet (la croix bleue). Appuyez ensuite sur le bouton blanc PLUS en haut à gauche du Reaction Manager. Liez-le à la valeur "Swivel Angle". Appuyez sur la flèche vers le bas avec le point orange pour ajouter deux nouveaux états.

Renommez l'Attribute Holder en "Elbow Swivel Right" (ou Left si vous utilisez le bras gauche). Essayez votre attribut ElbowSwivel. Il devrait pivoter d'avant en arrière sur un arc de 180 degrés.

Créez un nouveau contrôleur spline, cette fois avec un seul axe.

Il existe plusieurs façons de contraindre cette configuration. Vous pouvez trouver votre propre méthode ou suivre mes étapes. Si vous avez dévié ou fait quelque chose de légèrement différent, vous pouvez facilement trouver votre propre façon de vous assurer que le contrôleur et l'os restent entièrement connectés. Tout d'abord, liez l'os "wrist rotator" au coude, ou placez-le sous le coude dans le panneau Hierarchy de l'Explorateur de Calques. Liez votre contrôleur "wrist rotator" au coude.

Sélectionnez votre contrôleur "wrist rotator" et naviguez vers le panneau Hierarchy à droite. Sélectionnez l'onglet Link Info. Verrouillez tous les axes à l'exception de l'axe Z (ou de l'axe qui fait pivoter votre os "wrist rotator").

Nous allons maintenant créer une boîte qui contrôle l'un ou l'autre bras du squelette sans affecter le reste des os de la hiérarchie. Allez dans le panneau Create et créez un Point Helper. Modifiez son paramètre Display en Box. Ajustez sa taille à votre convenance. Alignez le point helper sur le bras supérieur. Avec l'os du bras supérieur sélectionné, utilisez une Position Constraint entre l'os du bras supérieur et le Point Helper.

Il n'y a aucun moyen, à ma connaissance, de miroiter toutes ces configurations de contrôleurs. Suivez-les à nouveau pour créer les contrôleurs pour le bras que vous avez laissé tel quel. Vous avez maintenant un rig complet qui, espérons-le, fonctionne bien. Il est temps de skinner le maillage sur le rig.

Configuration des contrôleurs IK et des contraintes dans 3ds Max

IV - Skinning du Maillage au Rig

Allez dans la liste des modificateurs et ajoutez un Skin Modifier. Faites défiler jusqu'à la section "Bones" des Paramètres.

Testez le skinning.

Pour éditer les enveloppes, sélectionnez Edit Envelopes sous Parameters. Une série de splines correspondant aux os devrait apparaître. Utilisez l'outil Move pour ajuster leur taille en saisissant les splines radiales.

Si vos doigts bougent étrangement, comme vous pouvez le voir au point 53, votre os du poignet/de la main peut affecter les os des doigts.

Je ne trifouille pas beaucoup les enveloppes - juste assez pour avoir une bonne approximation du poids afin que le maillage se déforme correctement lors du déplacement du rig. Pour un contrôle plus fin, je préfère pondérer les os moi-même avec le Weight Tool. Sélectionnez Edit Envelopes et cochez "Vertices" sous "Select".

Appuyez sur F4 pour activer les faces en fil de fer. Vous pouvez maintenant sélectionner des sommets et utiliser le Weight Tool pour les pondérer. Pondérez les doigts de manière à ce qu'ils aient une valeur de 1 au centre avec un bon poids mélangé aux os de chaque côté. Expérimentez avec les fonctions ring, loop, shrink et grow.

L'ajustement le plus important que vous ferez sera sur l'os "wrist_rotator". Comme vous pouvez le voir sur l'image, donnez-lui un grand dégradé avec les valeurs de poids les plus élevées centrées autour du poignet lui-même. Utilisez le bouton "Blend" sous la fenêtre Weight Tool lorsque vous êtes satisfait de vos poids pour les lisser. Lorsque vous faites pivoter l'os rotateur maintenant, vous remarquerez qu'il a un dégradé long et graduel jusqu'au coude.

Certaines hiérarchies d'os seront difficiles à pondérer correctement.

Lorsque vous êtes satisfait de la pondération de tous vos os et qu'ils réagissent bien, vous pouvez activer X-ray et geler votre maillage à nouveau. Il est presque prêt à être envoyé à l'animateur. Cependant, avant de geler tous les os, vous pourriez avoir des accessoires à ajouter, comme une montre. Si vous utilisez l'outil Link pour attacher la montre au contrôleur IK du "wrist rotator", elle se déplace très commodément avec l'os du poignet.

Il est temps de préparer le fichier Max pour l'animateur. Il est beaucoup plus facile pour l'animateur si les os ont une "Frozen Transform". Cela signifie que si vous réinitialisez la transformation à zéro, les os (et le maillage) reviendront à leur position d'origine. Saisissez tous les Point Helpers, les IK Controllers et les IK Goals. Maintenez ALT + clic droit et sélectionnez "Freeze Transform". Acceptez la fenêtre de dialogue qui apparaît. Testez maintenant en déplaçant un contrôleur IK, puis en appuyant sur ALT + clic droit et en sélectionnant "transform to zero". Il revient à sa position d'origine.

Sélectionnez tous les os SAUF les os du pouce, qui n'ont pas d'IK Solver. Faites un clic droit pour les geler.

Si vous avez un maillage de base et que vous souhaitez skinner des vêtements par-dessus, skinner le maillage de base comme décrit dans les étapes précédentes, puis sélectionnez votre maillage de vêtements, ajoutez un modificateur Skin Wrap et sous Parameters, ajoutez votre maillage Skinned. Vos vêtements devraient maintenant s'enrouler presque parfaitement autour de votre maillage de bras de base Skinned.

Si nécessaire, vous pouvez ajouter la texture diffuse au maillage. Dégelez votre maillage Skinned, appuyez sur M, faites défiler jusqu'à Maps, cochez Diffuse Colour et appuyez sur "None".

Si la texture ne s'affiche pas, configurez votre vue comme dans l'image affichée. Le rig est totalement terminé. Il est maintenant temps de commencer l'animation et la préparation pour l'exportation vers UE4.

Exemple de skinning d'un bras dans 3ds Max avec le Weight Tool

V - Exportation vers Unreal Engine 4

Il existe une centaine de façons de configurer la relation rig/arme pour l'exporter dans UE4. La façon dont beaucoup de gens le font (et pensent le faire) est d'avoir les deux complètement séparés dans le moteur. La plupart des gens font en sorte qu'il y ait un squelette pour chaque arme et un squelette pour les bras. Ceci...

Importer des rigs et des animations (BLENDER vers UNREAL)

tags: #3ds #max #arm #loop #faces

Articles populaires: