Skip to content

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

symmetryType 0 Choose the mirror type for right side controls

GlobalSettings

Attribute NameDefaultDescription
controlShape circle Control shape
channelControl
T R S
X v v v
Y v v v
Z v v v

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 NameDefaultDescription
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 NameDefaultDescription
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