Control rig on an ActorCore Skeletal Mesh

Mes premiers control rigs FK

  • Démarrez UE avec votre projet qui contient dummy-kid.
  • Cliquez-droit sur le Skeletal Mesh (asset Skeletal Mesh intitulé dummy_kid)
  • Choisir Create → Control Rig

  • Un nouvel asset sera crée intitulé dummy-kid_CtrlRig. Sauvegardez le et ouvrez-le
  • Vous serez accueilli par cette fenêtre:

  • Ce qu’on va faire, c’est non seulement créer des gizmos de contrôle FK, mais également un Blueprint pour permettre les Forwards et Backwards Solves, c’est à dire la capacité de transmettre les transformations des Rig vers les jointures du squelette (Forwards Solve) et l’inverse, prendre une animation des jointures (e.g. de Fab, Mixamo, notre retarget de la dernière fois, etc.) et la transmettre aux Control Rigs.
  • Aller du côté du Rig Hierarchy pour voir la liste des os.
  • Également activez la visualisation de l’armature (oeil - > Bones → All Hierarchy)

  • Sélectionnez le Root Bone.
  • Cliquer droit → New Element → New Control (on va faire ça souvent)

  • Un nouvel élément de type Control Rig — dont le nom est dérivé du nom de l’os sur lequel on a crée le control rig (<bone_name>_ctrl) — sera crée à la fin de la hiérarchie et UE lui donnera la forme par défaut (sphère)

  • Par défaut, root_ctrl est crée en dehors de la hiérarchie, on va régler ça tout à l’heure.
  • Avec le root_ctrl control rig sélectionné, à droite, dans Shape Properties, changer la forme pour un grand hexagone vert.
  • Choisissez une couleur verte pure (0 R, 1 G et 0 B avec 1 comme saturation)

  • Il faut agrandir l’hexagone et peut-être le tourner pour qu’il soit parallèle au sol

  • Pour ça, c’est dans la Shape transform.

☝🏼

N’oubliez pas de fermer le cadenas pour un scale uniforme

  • Nous allons nous en tenir à la convention suivante:
    | Couleur du control Rig | Signification |
    | --- | --- |
    | Vert | Contrôles centraux (root, hip, neck, spine) |
    | Bleu | Contrôles côté gauche |
    | Rouge | Contrôles côté droit |
  • Si vous déplacez le contrôle, vous verrez que ça ne fait rien pour l’instant. Réglons la chose.
  • Drag and drop de l’os “root” dans le Forwards Solve Graph et choisir “Set”

  • Comme on est en Forwards Solve, le Control Rig (Get Control) root_ctrl est celui qui transmettra ses transforms à l’os qu’il contrôle (Set Control), i.e. “root”.
  • Donc drag and drop du control rig “root_ctrl” mais choisir cette fois-ci “Get Control”.

  • Connecter la sortie Transform du noeud “Get Transform - Control” vers l’entrée Value du noeud “Set Transform - Bone”. La couleur des sockets est orange et le noodle sera orange également.

  • Il faut maintenant initialiser la réaction en chaîne en connectant la sortie “Forwards Solve → Execute” vers l’entrée “Execute” du noeud “Set Transform - Bone”.

  • Avec UE 5.7, le root_ctrl n’a pas été crée en tant qu’enfant de root, mais au cas-où, right-click sur root_ctrl and choisir “Unparent” (sinon les déplacement tombent en boucle de rétroaction, l’un déplaçant l’autre qui déplace le premier), ce qu’on ne veut pas.

  • Déplacez maintenant le control rig dans le preview (choisir W pour choisir Move)..
  • Félicitations, votre premier control rig Unreal Engine! En déplaçant se dernier, ses transformations seront transmises au root bone qui est le parent de toute l’armature et conséquemment le personnage au complet se déplacera.

  • Au tour de l’os cc_base_hip maintenant. Répétez la même chose: right-click on cc_base_hip, “New Element → Control”.
  • cc_base_hip_ctrl sera crée. Vous aurez à ajuster la couleur (RGB 010), la forme (Circle_thin), l’orientation (90 degrés en X) et le scale (4x).

  • Il faut ajouter dans le forwards solve graph la même logique:

  • Maintenant, si vous déplacez le root control rig, le dummy-kid ne bouge plus. Que pasa? L’indice se trouve devant la flèche :)
  • On peut sélectionner plusieurs os d’une même hiérarchie pour aller plus vite.
  • Sélectionnons de cc_base_spine01 jusqu’à head et faites right-click → New Element → New Control!
  • Vous pouvez également faire un drag and drop de plusieurs contrôles et plusieurs os pour créer des séries de noeuds Set ou Get.
  • Répétez pour toutes les jointures que vous voulez contrôler. Typiquement les Spines, le cou, la tête.

Les doigts

  • C’est le même principe, voyez plutôt

Forwards solve procédural plus intelligent

  • Plutôt que créer des Get Control et des Set Bone pour chaque Control Rig “à la main”, on peut créer un blue print plus intelligent: