Files
gtav-src/tools_ng/dcc/debug/max2011/scripts/rockstar/util/skin.ms
T
2025-09-29 00:52:08 +02:00

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
)