158 lines
4.9 KiB
Plaintext
Executable File
158 lines
4.9 KiB
Plaintext
Executable File
-- Rockstar Skin Utilities
|
|
-- Rockstar North
|
|
-- 20/9/2005
|
|
-- by Greg Smith
|
|
|
|
--------------------------------------------------------------
|
|
--
|
|
--------------------------------------------------------------
|
|
fn RsNodeGetSkinModifier node = (
|
|
|
|
for modi in node.modifiers do (
|
|
|
|
if classof(modi) == Skin then (
|
|
|
|
return modi
|
|
)
|
|
)
|
|
|
|
return undefined
|
|
)
|
|
|
|
--------------------------------------------------------------
|
|
--
|
|
--------------------------------------------------------------
|
|
fn RsSkinGetBoneNames skinmod = (
|
|
|
|
numBones = skinops.getnumberbones skinmod
|
|
listBoneName = #()
|
|
|
|
for i = 1 to numBones do (
|
|
|
|
boneName = skinops.getbonename skinmod i 0
|
|
append listBoneName boneName
|
|
)
|
|
|
|
return listBoneName
|
|
)
|
|
|
|
--------------------------------------------------------------
|
|
--
|
|
--------------------------------------------------------------
|
|
fn RsGetSkinnerConfigName obj = (
|
|
|
|
return (maxfilepath + "skinner_" + obj.name + ".info")
|
|
)
|
|
|
|
--------------------------------------------------------------
|
|
--
|
|
--------------------------------------------------------------
|
|
fn RsGetBone skinMod index = (
|
|
|
|
boneName = skinops.getbonename skinMod index 0
|
|
|
|
return getnodebyname boneName exact:true
|
|
)
|
|
|
|
--------------------------------------------------------------
|
|
--
|
|
--------------------------------------------------------------
|
|
fn RsMirrorBoneName boneName = (
|
|
|
|
case(boneName) of (
|
|
"Char": return "Char"
|
|
"Char Pelvis": return "Char Pelvis"
|
|
"Char L Thigh": return "Char R Thigh"
|
|
"Char L Calf": return "Char R Calf"
|
|
"Char L Foot": return "Char R Foot"
|
|
"Char L Toe0": return "Char R Toe0"
|
|
"Char L Toe0Nub": return "Char R Toe0Nub"
|
|
"L Calf Roll": return "R Calf Roll"
|
|
"Char R Thigh": return "Char L Thigh"
|
|
"Char R Calf": return "Char L Calf"
|
|
"Char R Foot": return "Char L Foot"
|
|
"Char R Toe0": return "Char L Toe0"
|
|
"Char R Toe0Nub": return "Char L Toe0Nub"
|
|
"R Calf Roll": return "L Calf Roll"
|
|
"Char Spine": return "Char Spine"
|
|
"Char Spine1": return "Char Spine1"
|
|
"Char Spine2": return "Char Spine2"
|
|
"Char L Clavicle": return "Char R Clavicle"
|
|
"Char L UpperArm": return "Char R UpperArm"
|
|
"Char L Forearm": return "Char R Forearm"
|
|
"Char L Hand": return "Char R Hand"
|
|
"Char L Finger0": return "Char R Finger0"
|
|
"Char L Finger01": return "Char R Finger01"
|
|
"Char L Finger02": return "Char R Finger02"
|
|
"Char L Finger0Nub": return "Char R Finger0Nub"
|
|
"Char L Finger1": return "Char R Finger1"
|
|
"Char L Finger11": return "Char R Finger11"
|
|
"Char L Finger12": return "Char R Finger12"
|
|
"Char L Finger1Nub": return "Char R Finger1Nub"
|
|
"Char L Finger2": return "Char R Finger2"
|
|
"Char L Finger21": return "Char R Finger21"
|
|
"Char L Finger22": return "Char R Finger22"
|
|
"Char L Finger2Nub": return "Char R Finger2Nub"
|
|
"Char L Finger3": return "Char R Finger3"
|
|
"Char L Finger31": return "Char R Finger31"
|
|
"Char L Finger32": return "Char R Finger32"
|
|
"Char L Finger3Nub": return "Char R Finger3Nub"
|
|
"Char L ForeTwist": return "Char R ForeTwist"
|
|
"Char L ForeTwist1": return "Char R ForeTwist1"
|
|
"L UpperArmRoll": return "R UpperArmRoll"
|
|
"Char Neck": return "Char Neck"
|
|
"Char Head": return "Char Head"
|
|
"Char HeadNub": return "Char HeadNub"
|
|
"Char R Clavicle": return "Char L Clavicle"
|
|
"Char R UpperArm": return "Char L UpperArm"
|
|
"Char R Forearm": return "Char L Forearm"
|
|
"Char R Hand": return "Char L Hand"
|
|
"Char R Finger0": return "Char L Finger0"
|
|
"Char R Finger01": return "Char L Finger01"
|
|
"Char R Finger02": return "Char L Finger02"
|
|
"Char R Finger0Nub": return "Char L Finger0Nub"
|
|
"Char R Finger1": return "Char L Finger1"
|
|
"Char R Finger11": return "Char L Finger11"
|
|
"Char R Finger12": return "Char L Finger12"
|
|
"Char R Finger1Nub": return "Char L Finger1Nub"
|
|
"Char R Finger2": return "Char L Finger2"
|
|
"Char R Finger21": return "Char L Finger21"
|
|
"Char R Finger22": return "Char L Finger22"
|
|
"Char R Finger2Nub": return "Char L Finger2Nub"
|
|
"Char R Finger3": return "Char L Finger3"
|
|
"Char R Finger31": return "Char L Finger31"
|
|
"Char R Finger32": return "Char L Finger32"
|
|
"Char R Finger3Nub": return "Char L Finger3Nub"
|
|
"Char R ForeTwist": return "Char L ForeTwist"
|
|
"Char R ForeTwist1": return "Char L ForeTwist1"
|
|
"R UpperArmRoll": return "L UpperArmRoll"
|
|
"Neck_Roll": return "Neck_Roll"
|
|
"Spine_2_roll": return "Spine_2_roll"
|
|
)
|
|
|
|
return undefined
|
|
)
|
|
|
|
--------------------------------------------------------------
|
|
--
|
|
--------------------------------------------------------------
|
|
fn RsMirrorBoneIDList skinMod idList = (
|
|
|
|
listBoneName = RsSkinGetBoneNames skinMod
|
|
idMirrorList = #()
|
|
|
|
for id in idList do (
|
|
|
|
mirrorName = RsMirrorBoneName (skinops.getbonename skinMod id 0)
|
|
|
|
if mirrorName == undefined then return undefined
|
|
|
|
newid = finditem listBoneName mirrorName
|
|
|
|
if newid == 0 then return undefined
|
|
|
|
append idMirrorList newid
|
|
)
|
|
|
|
return idMirrorList
|
|
) |