freeControl Settings
Author: Asaf Ben-Zur
Best used for: Free objects, General Control, Mesh Tweaker, Mesh Local Tweaker
This Module is a general single control at it's base state.
It also contains a Mesh-Tweaker feature that will allow you to create a "Double Directional" tweaker- meaning that the control will follow the input Mesh's position (Rivet) and will also be able to affect it.
This effect is also commonly knowen as the "Dorito-Effect".
This feature also includes a "local" mode, to tunnel deformations from the control to a local skinCluster, then a blend-shape to the main Mesh, creating multi-layered skinned mesh.
All of these features will use the main joint as the effector.
Note: When using the "Mesh-Tweaker" feture, when needing to affect a mesh that will also be used as the rivet input- make sure "sameMeshAffector" is set to ON.
Attributes
GlobalSettings
| Attribute Name | Default | Description | ||||||||||||||||
| controlShape | circle | Control shape | ||||||||||||||||
| channelControl |
|
Control channel-box settings | ||||||||||||||||
| createJoint | True | Choose whether to create and attach a joint to this control | ||||||||||||||||
| asTweakerDivider | MeshTweaker | Comment wasn't inserted | ||||||||||||||||
| asMeshTweaker | False | This control can aslo act as a live mesh tweaker. This means that you can attach this control to a mesh, having it follow the deformed mesh. In case you want this control to be affected by the mesh (position of the control) and also affect the mesh (using a skinCluster for example), please make sure that you leave sameMeshEffector attribute ON. You do not need to use any other meshes or joints to implement this behaviour | ||||||||||||||||
| rivetToMesh | The mesh you want to attach the control to | |||||||||||||||||
| positionMode | 0 | this will determine the output rivet position mode. | ||||||||||||||||
| doRotation | False | when off, the rivet will not inherit rotations from the mesh | ||||||||||||||||
| sameMeshAffector | True | If this is set to False, you will NOT be able to use this control's related joint within the deformation of the above mesh (this will result as a cycle). In case you want the control to follow the mesh as well as have it's related joint within the deformation of the mesh- please leave this ON. In case you want to attach this control to a mesh that will not be affected by the control's related joint, you can safely turn this attribute OFF. | ||||||||||||||||
| isLocal | False | In some cases, you may wish to use this control's related joint in a different skinCluster layer, channeled into the main mesh as a blendShape. If that is the case, you will need to set this attribute to ON. When set to ON, the related joint will be a part of the joint hierarchy, but will keep it's position at origin so you can you it in a local setup. In case the riveted mesh's deformation is affected by this module's related joint in any way, remember to keep sameMeshEffector ON, even if its not a part of the main skinCluster. This means that even if the joint is controlling a localized skin-cluter, and then channeled as a blend shape into the riveted mesh, sameMeshAffector should be left ON. |
spring
| Attribute Name | Default | Description |
| doSpring | False | This feature will create a spring node below the control master. This will result in a procedural simple spring action. In case meshTweaker feature was selected, the slave control will not be visible. This feature will NOT be created in case isLocal is set to ON. |
| springX | True | Select whether the X axis should be affected by the spring or not |
| springY | True | Select whether the Y axis should be affected by the spring or not |
| springZ | True | Select whether the Z axis should be affected by the spring or not |
| flipRightX | False | This will Flip all connections for the local X channel. |
| flipRightY | False | This will Flip all connections for the local Y channel. |
| flipRightZ | False | This will Flip all connections for the local Z channel. |
| defaultStiffness | 0.5 | Spring stiffness default value |
| defaultDamping | 0.5 | Spring damping default value |
| springSlaveControlShape | lightSphere | Spring slave control shape |
InterpolatedOrientation
| Attribute Name | Default | Description |
| doInterpOrient | False | This feature is used to create a weighten split orientation. When you need to create a weighted orientation for a control between two spaces, use this feature. |
| spaceA | The first space to be interpolated. This can be a guide, joint, or control. | |
| spaceB | The second space to be interpolated. This can be a guide, joint, or control. | |
| spaceAWeight | 0.5 | The deafult weight for the first space. The second space weight will be the complimentary weight adding to 1 |
| doAngleBasedScale | False | create an angle based scale driver, to scale the target slave joint when the angle changes between the two sources. Originally designed for double-chin setup |
| scaleWhenAngle | 0 | This setting controls the trigger mode for action. Icreases- means that the trigger for action will occur when the intorpolated angle increases, and do nothing when it decreases. decreases- means that the trigger for action will occur when the intorpolated angle decreases, and do nothing when it increases |
| maxScale | 2.0 | The actions maximum value clamp value |
| angleMaxRange | 180.0 | The maximum angle clamp that the action should be targeted to |
| connectToTargetAxis | 1 | This setting will set the target axis to act on. Please map the axis needed to be scaled based on the orientation of your guide |