315 lines
6.3 KiB
Plaintext
Executable File
315 lines
6.3 KiB
Plaintext
Executable File
boneArray = #(
|
|
"SKEL_R_Finger02",
|
|
"SKEL_R_Finger01",
|
|
"SKEL_R_Finger00",
|
|
"SKEL_R_Finger12",
|
|
"SKEL_R_Finger11",
|
|
"SKEL_R_Finger10",
|
|
"SKEL_R_Finger22",
|
|
"SKEL_R_Finger21",
|
|
"SKEL_R_Finger20",
|
|
"SKEL_R_Finger32",
|
|
"SKEL_R_Finger31",
|
|
"SKEL_R_Finger30",
|
|
"SKEL_R_Finger42",
|
|
"SKEL_R_Finger41",
|
|
"SKEL_R_Finger40",
|
|
"SKEL_L_Finger02",
|
|
"SKEL_L_Finger01",
|
|
"SKEL_L_Finger00",
|
|
"SKEL_L_Finger12",
|
|
"SKEL_L_Finger11",
|
|
"SKEL_L_Finger10",
|
|
"SKEL_L_Finger22",
|
|
"SKEL_L_Finger21",
|
|
"SKEL_L_Finger20",
|
|
"SKEL_L_Finger32",
|
|
"SKEL_L_Finger31",
|
|
"SKEL_L_Finger30",
|
|
"SKEL_L_Finger42",
|
|
"SKEL_L_Finger41",
|
|
"SKEL_L_Finger40",
|
|
"SKEL_L_Toe0",
|
|
"SKEL_L_Foot",
|
|
"SKEL_L_Calf",
|
|
"SKEL_L_Thigh",
|
|
"SKEL_R_Toe0",
|
|
"SKEL_R_Foot",
|
|
"SKEL_R_Calf",
|
|
"SKEL_R_Thigh",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Forearm",
|
|
"SKEL_R_UpperArm",
|
|
"SKEL_R_Clavicle",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Forearm",
|
|
"SKEL_L_UpperArm",
|
|
"SKEL_L_Clavicle",
|
|
"SKEL_Head",
|
|
"SKEL_Neck_1",
|
|
"SKEL_Spine3",
|
|
"SKEL_Spine2",
|
|
"SKEL_Spine1",
|
|
"SKEL_Spine0",
|
|
"SKEL_Spine_Root",
|
|
"SKEL_Pelvis"
|
|
-- "SKEL_ROOT"
|
|
)
|
|
|
|
parentArray = #(
|
|
"SKEL_Pelvis",
|
|
"SKEL_L_Thigh",
|
|
"SKEL_L_Calf",
|
|
"SKEL_L_Foot",
|
|
"SKEL_L_Toe0",
|
|
"SKEL_Pelvis",
|
|
"SKEL_R_Thigh",
|
|
"SKEL_R_Calf",
|
|
"SKEL_R_Foot",
|
|
"SKEL_R_Toe0",
|
|
"SKEL_Spine_Root",
|
|
"SKEL_Spine0",
|
|
"SKEL_Spine1",
|
|
"SKEL_Spine2",
|
|
"SKEL_Spine3",
|
|
"SKEL_L_Clavicle",
|
|
"SKEL_L_UpperArm",
|
|
"SKEL_L_Forearm",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Finger00",
|
|
"SKEL_L_Finger01",
|
|
"SKEL_L_Finger02",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Finger10",
|
|
"SKEL_L_Finger11",
|
|
"SKEL_L_Finger12",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Finger20",
|
|
"SKEL_L_Finger21",
|
|
"SKEL_L_Finger22",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Finger30",
|
|
"SKEL_L_Finger31",
|
|
"SKEL_L_Finger32",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Finger40",
|
|
"SKEL_L_Finger41",
|
|
"SKEL_L_Finger42",
|
|
"SKEL_Spine3",
|
|
"SKEL_R_Clavicle",
|
|
"SKEL_R_UpperArm",
|
|
"SKEL_R_Forearm",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Finger00",
|
|
"SKEL_R_Finger01",
|
|
"SKEL_R_Finger02",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Finger10",
|
|
"SKEL_R_Finger11",
|
|
"SKEL_R_Finger12",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Finger20",
|
|
"SKEL_R_Finger21",
|
|
"SKEL_R_Finger22",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Finger30",
|
|
"SKEL_R_Finger31",
|
|
"SKEL_R_Finger32",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Finger40",
|
|
"SKEL_R_Finger41",
|
|
"SKEL_R_Finger42",
|
|
"SKEL_Spine3",
|
|
"SKEL_Head",
|
|
"SKEL_Neck_1"
|
|
)
|
|
|
|
childArray = #(
|
|
"SKEL_L_Thigh",
|
|
"SKEL_L_Calf",
|
|
"SKEL_L_Foot",
|
|
"SKEL_L_Toe0",
|
|
"SKEL_L_Toe0_NUB",
|
|
"SKEL_R_Thigh",
|
|
"SKEL_R_Calf",
|
|
"SKEL_R_Foot",
|
|
"SKEL_R_Toe0",
|
|
"SKEL_R_Toe0_NUB",
|
|
"SKEL_Spine0",
|
|
"SKEL_Spine1",
|
|
"SKEL_Spine2",
|
|
"SKEL_Spine3",
|
|
"SKEL_L_Clavicle",
|
|
"SKEL_L_UpperArm",
|
|
"SKEL_L_Forearm",
|
|
"SKEL_L_Hand",
|
|
"SKEL_L_Finger00",
|
|
"SKEL_L_Finger01",
|
|
"SKEL_L_Finger02",
|
|
"SKEL_L_Finger0_NUB",
|
|
"SKEL_L_Finger10",
|
|
"SKEL_L_Finger11",
|
|
"SKEL_L_Finger12",
|
|
"SKEL_L_Finger1_NUB",
|
|
"SKEL_L_Finger20",
|
|
"SKEL_L_Finger21",
|
|
"SKEL_L_Finger22",
|
|
"SKEL_L_Finger2_NUB",
|
|
"SKEL_L_Finger30",
|
|
"SKEL_L_Finger31",
|
|
"SKEL_L_Finger32",
|
|
"SKEL_L_Finger3_NUB",
|
|
"SKEL_L_Finger40",
|
|
"SKEL_L_Finger41",
|
|
"SKEL_L_Finger42",
|
|
"SKEL_L_Finger4_NUB",
|
|
"SKEL_R_Clavicle",
|
|
"SKEL_R_UpperArm",
|
|
"SKEL_R_Forearm",
|
|
"SKEL_R_Hand",
|
|
"SKEL_R_Finger00",
|
|
"SKEL_R_Finger01",
|
|
"SKEL_R_Finger02",
|
|
"SKEL_R_Finger0_NUB",
|
|
"SKEL_R_Finger10",
|
|
"SKEL_R_Finger11",
|
|
"SKEL_R_Finger12",
|
|
"SKEL_R_Finger1_NUB",
|
|
"SKEL_R_Finger20",
|
|
"SKEL_R_Finger21",
|
|
"SKEL_R_Finger22",
|
|
"SKEL_R_Finger2_NUB",
|
|
"SKEL_R_Finger30",
|
|
"SKEL_R_Finger31",
|
|
"SKEL_R_Finger32",
|
|
"SKEL_R_Finger3_NUB",
|
|
"SKEL_R_Finger40",
|
|
"SKEL_R_Finger41",
|
|
"SKEL_R_Finger42",
|
|
"SKEL_R_Finger4_NUB",
|
|
"SKEL_Neck_1",
|
|
"SKEL_Head_NUB",
|
|
"SKEL_Head"
|
|
)
|
|
|
|
boneLengthList = #()
|
|
inputData = #()
|
|
|
|
fn unparentRig =
|
|
(
|
|
for i = 1 to parentArray.count do
|
|
(
|
|
thisBn = getNodeByName parentArray[i]
|
|
select thisBn
|
|
max unlink
|
|
)
|
|
)
|
|
|
|
fn reparentRig =
|
|
(
|
|
for i = 1 to childArray.count do
|
|
(
|
|
thisBn = getNodeByName childArray[i]
|
|
thisParent = getNodeByName parentArray[i]
|
|
thisBn.parent = thisParent
|
|
)
|
|
)
|
|
|
|
fn setBoneLengths =
|
|
(
|
|
unparentRig()
|
|
|
|
if input_name == undefined do
|
|
(
|
|
input_name = getOpenFileName caption:"Bone Length file" types:"BoneLengths (*.len)|*.len|All Files (*.*)|*.*|"
|
|
)
|
|
|
|
if input_name != undefined then
|
|
(
|
|
f = openfile input_name
|
|
inputData = #() -- define as array
|
|
while not eof f do
|
|
(
|
|
append inputData (filterstring (readLine f) ",")
|
|
)
|
|
close f
|
|
)
|
|
|
|
for i in inputData do
|
|
(
|
|
execStr = i[1]
|
|
execute execStr
|
|
)
|
|
|
|
reparentRig
|
|
)
|
|
|
|
fn queryBoneLength =
|
|
(
|
|
output_name = getSaveFileName caption:"Bone Length file" types:"BoneLengths (*.len)|*.len|All Files (*.*)|*.*|"
|
|
|
|
if output_name != undefined then
|
|
(
|
|
output_file = createfile output_name
|
|
|
|
-- for i = 1 to boneArray.count do
|
|
for i = 1 to parentArray.count do
|
|
(
|
|
thisBone = getNodeByname parentArray[i]
|
|
thisChild = getNodeByName childArray[i]
|
|
if thisBone != undefined do
|
|
(
|
|
if thisChild != undefined do
|
|
(
|
|
-- thisBoneLength = (thisBone.length as float)
|
|
thisBoneLength = ((distance thisBone thisChild) as float)
|
|
existingPos = in coordsys parent thisBone.position
|
|
eY = (existingPos[2] as float)
|
|
eZ = (existingPos[3] as float)
|
|
boneLengthStr = ("$"+thisBone.name+".length = "+(thisBoneLength as string))
|
|
boneParentStr = ("in coordsys parent $"+thisBone.name+".position = ["+(thisBoneLength as string)+","+(eY as string)+","+(eZ as string)+"]")
|
|
append boneLengthList boneLengthStr
|
|
|
|
format ((boneLengthStr as string)+"\n") to:output_file
|
|
format ((boneParentStr as string)+"\n") to:output_file
|
|
)
|
|
)
|
|
)
|
|
close output_file
|
|
)
|
|
print ("Bone Lengths saved")
|
|
)
|
|
|
|
|
|
if ((lengthToolsGUI != undefined) and (lengthToolsGUI.isDisplayed)) do
|
|
(destroyDialog lengthToolsGUI)
|
|
|
|
rollout lengthToolsGUI "Spotting Tools"
|
|
(
|
|
button btnSaveLengths "Save Lengths" width:110
|
|
button btnSetLengths "Set Lengths" width:110
|
|
|
|
|
|
|
|
-- on btnImagePlanes pressed do
|
|
-- (
|
|
-- filein (RsConfigGetWildWestDir() + "script\\max\\Rockstar_North\\character\\Rigging_tools\\giant\\skeletonSpotImagePlaneSetup.ms")
|
|
-- )
|
|
|
|
-- on btnMirrorSel pressed do
|
|
-- (
|
|
-- filein (RsConfigGetWildWestDir() + "script\\max\\Rockstar_North\\character\\Rigging_tools\\giant\\mirrorMarkers.ms")
|
|
-- )
|
|
--
|
|
on btnSaveLengths pressed do
|
|
(
|
|
queryBoneLength()
|
|
)
|
|
|
|
on btnSetLengths pressed do
|
|
(
|
|
setBoneLengths()
|
|
)
|
|
)
|
|
|
|
CreateDialog lengthToolsGUI width:125 pos:[1450, 100] |