I tryed that 5 times for 3 months, but i think that IS Impossible, but i Will try again:
Basically i want to make an armor that is the same as the player’s body, i am cloning all the player’s parts, cleaning the childrens, increasing the size, and creating a weld in their respective parts (example: Weld Armor Hand with Player Hand). With that 2 problems arise. 1-It is difficult to position the parts correctly, I had to calculate everything manually using a pre-model as a reference since I did not find any pattern in all parts (I made them 2.8x larger, but there is no position pattern), so I calculated everything and made this list:
local Metrics = {
["LeftFoot"] = Vector3.new(-0.8999999999999915,-5.49,0),
["LeftHand"] = Vector3.new(-2.7,-1.9,0),
["LeftLowerArm"] = Vector3.new(-2.7,-0.8,0),
["LeftLowerLeg"] = Vector3.new(-0.9,-4.3,0),
["LeftUpperArm"] = Vector3.new(-2.7,0.3,0),
["LeftUpperLeg"] = Vector3.new(-0.9,-2.9,0),
["LowerTorso"] = Vector3.new(0,-1.8,0),
["RightFoot"] = Vector3.new(0.9000000000000057,-5.5,0),
["RightHand"] = Vector3.new(2.700000000000003,-1.9,0),
["RightLowerArm"] = Vector3.new(2.700000000000003,-0.8,0),
["RightLowerLeg"] = Vector3.new(0.9000000000000057,-4.3,0),
["RightUpperArm"] = Vector3.new(2.700000000000003,0.3,0),
["RightUpperLeg"] = Vector3.new(0.9000000000000057,-2.9,0),
["UpperTorso"] = Vector3.new(0,0,0),
["Head"] = Vector3.new(0,2.3,0)
}
but not always the parts are where they should be, I need an automatic way to find the right position. 2-As you can see in the gif, the armor does not follow the player’s animation correctly (Example: the foot separates from the leg) code:
for i,v in pairs(self.Player.Character:GetChildren()) do
if v:IsA("MeshPart")then
if v.Name~='HumanoidRootPart' then
local Clone = v:Clone()
Clone:ClearAllChildren()
Clone.Parent = workspace
Clone.Anchored = false
Clone.CanCollide = false
Clone.CastShadow = false
Clone.Transparency = 0.8
Clone.Material = Enum.Material.Neon
local Weld = Instance.new("Weld",self.Model)
Weld.Part0 = Clone
Weld.Part1 = v
Clone.Size = Clone.Size * Vector3.new(2.8,2.8,2.8)
Clone.Position = v.Position + Metrics[""..v.Name]
end
elseif v.Name == "Head" then
local Clone = v:Clone()
Clone:ClearAllChildren()
Clone.Parent = workspace
Clone.Anchored = false
Clone.CanCollide = false
Clone.CastShadow = false
Clone.Transparency = 0.8
Clone.Material = Enum.Material.Neon
local Weld = Instance.new("Weld",self.Model)
Weld.Part0 = Clone
Weld.Part1 = v
Clone.Size = Clone.Size * Vector3.new(2.8,2.8,2.8)
Clone.Position = v.Position + Metrics[""..v.Name]
end