mcjMakeTarget
DS 1,2,3,4
Usually, i use this script in conjunction with mcjAutoLimb and mcjParent
This script will create a null node at the location of the currently selected node(s)
The node(s) will be named with the suffix '_target'.
Installation
The zip package is found at the bottom of this page
unzip it in your daz content folder, typically
C:\Program Files\DAZ\Studio\content\
or
C:\Program Files (x86)\DAZ\Studio\content\
once installed, it will appear in your content library, under Studio / Scripts / mcasual
or
C:\Users\Public\Documents\My DAZ 3D Library\
once installed, it will appear in your content library, under My DAZ 3D Library / Scripts / mcasual
Use
Make Target Node will create a null node at the location of the currently selected node(s)
The node(s) will be named like the selected node but with the suffix '_target'.\n"
Make Target Node And Follow' will copy the world space movement of the selected node.
Make Target Node And Parent' will parent the target node to the selected node.
Example ; create a target node for mcjAutoLimb
You have a dance animation, the hips are in constant motion
You want your dancer to rest a hand on a hip
Select the figure hip
run mcjMakeTarget
Press the 'Make Target And Parent' button
Move the new target node to the position where the hand needs to be posted
Select the target node followed by the hand
Use mcjAutoLimb and the hand will follow the target node
Note that it's important to set Limits-Off on the Shldr nodes when using mcjAutoLimb for that type of pose
Example: Using mcjMakeTarget, mcjCycleFilter and mcjParent soften the movement of a dancer's head
We have a dance animation loop, 24 frames
We started building this motion by animating the hips then the abdomen, chest, neck and head
The movement of the neck joint is now quite complex due to this chain of dependencies
The movement of the head is already what we were aiming for, but we want to increase the smoothness
If we softened the animation curves of the head joint, but the neck animation was the real cause of the erratic movements of the head, we would not solve the issue.
The timeline is set so the Play-Range is frames 0 to 24
select the head node
run mcjMakeTarget
press the "Make Target And Follow" button
We now have target node which follows the position and orientation of the head in space
Note that the node is not parented to the head, this is important because it means the Rotation
and Position sliders in the parameter tab match the World-Space rotations and positions of the head.
Select the head_target node
run mcjCycleCilter
select the XRotate property in the right column
check-mark the Filter's Enable checkbox
set the Harmonic Cutoff of the filter at 1 ( or 2 or 3 )
click the Apply button
select the YRotate property in the right column
click the Apply button
select the ZRotate property in the right column
click the Apply button
We now have a target node that swings in space much like the head node presently swings, but much more smoothly
Exit mcjCycleFilter
Select the head_target node followed by the Head node
Run mcjParent
since we want the head node to 'follow-the-lead' of the head_target
we specify the parent node to be 'head_target'
we want to process the whole Play Range
we want to do this for each frame so we set the 'Step' at 1
We really really do not want to parent the head to head_target
We really really do not want to move the head to the head_target position
we do want to have the head orientations to be guided by the head_target orientations
press the OK button
we're done !
License
// by mCasual/Jacques
//
// You can use this script freely for personal or commercial use.
//
// You may not sell, resell, sub-license or rent this script in any way./
//
// you may credit this script to mCasual/Jacques
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.