---
# System prepended metadata

title: '**DoublesControls** Rig Notice'
tags: [Rig, Notice]

---

[:arrow_left:](/yy71c8NjRiykh_DA-SYOiQ) To Rig Dashboard
[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ) To Pirata Dashboard

# **DoublesControls** Rig Notice

###### tags: `Rig` `Notice`

1. Chaque module possède un jeu de contrôleur Layout et le même jeu de contrôleur Anim.

![Image](https://i.imgur.com/QdmTOfk.png)

2. Un attribut “Rig System Visibility” se trouve sur tous les CtrlGrp. 0 est le mode Layout, 1 Anim et 2 permet de voir les deux jeux de contrôleurs, mais seul les contrôleurs d’anim pilotent le système.

![](https://i.imgur.com/e5yCFGb.png)

3. L’arborescence classique d’un double contrôleur est la suivante : 
Un groupe master **XXX_CtrlGrp**
Un groupe layout **XXX_LayCtrl_Grp**
Un contrôleur **layout XXX_Lay_Ctrl**
Un groupe Anim **XXX_AnmCtrl_Grp**
Un contrôleur **Anim XXX_Anm_Ctrl**

![](https://i.imgur.com/jH3udA3.png)

4. **Pour les Attributs :** 

Un attribut doit pouvoir être piloté par les contrôleurs anim et layout indépendamment. Les attributs qui pilote réellement le système sont sur le groupe **XXX_CtrlGrp**. On utilise un ConditionNode  pour définir si c’est la valeur de l’anim ou du layout qui va être prise en compte.

*Exemple du stretch & squash en IK*
![](https://i.imgur.com/tgCrjYo.png)

On prend la valeur du Rig system en first term du condition node pour définir si c’est les valeurs du Ik anim ou du IK Lay qui viennent piloter l’attribut du IK_CtrlGrp qui pilote le système.