Files
gtav-src/tools_ng/wildwest/script/3dsMax/Characters/Rigging/usefulScripts/mjrSelDeleteUnusedBones.ms
T
2025-09-29 00:52:08 +02:00

40 lines
1.0 KiB
Plaintext
Executable File

-- delete unused bones from selected objects with skin modifiers
-- @author Gunnar Droege
fn mjrSelDeleteUnusedBones =
(
for s in (selection as array) where "Gta Object"==getattrclass s do
(
local mySkin = s.modifiers[#skin]
if undefined==mySkin then
continue
local usedSystemBoneIds = #()
setCommandPanelTaskMode #modify
modPanel.setCurrentObject mySkin ui:true
for k=1 to (skinOps.GetNumberVertices mySkin) do
(
for i=1 to (skinOps.GetVertexWeightCount mySkin k) do
(
local systemBoneIndex = skinOps.GetVertexWeightBoneID mySkin k i
local myWeight = (skinOps.GetVertexWeight mySkin k i)
if myWeight> 0 then
(
appendIfUnique usedSystemBoneIds systemBoneIndex
isused = true
)
)
)
for m=(skinOps.GetNumberBones mySkin) to 1 by -1
where "SKEL_ROOT"!=(skinOps.GetBoneName mySkin m 1)
do
(
if 0==findItem usedSystemBoneIds m then
(
skinOps.removebone mySkin m
)
)
gc light:true
)
)
mjrSelDeleteUnusedBones()