Hi, sorry if the title is completely misleading, I’m really not sure how to word this problem. Basically, I’m creating a prototype extendable shield welded to the players left arm.
The shield model’s structure can be seen here:
as well as the in game view once welded:
What I am trying to create is a system where the outermost piece of the shield (marked with the sad face) extends upwards while still moving with the player as it walks around.
Here is weld to player script:
print(player, hasgear)
if hasgear == false then
gear = shieldgroup:clone()
gear.Handle.CFrame = workspace:WaitForChild(player.Name)["Left Arm"].CFrame * CFrame.new(-0.20616293, -0.415015221, -0.040222168, 1, 0, 0, 0, 0.999999881, 0, 0, 0, 1)
gear.par2.CFrame = gear.Handle.CFrame * CFrame.new(0.539999008, 0.160001278, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1)
gear.Parent = player.Character
local weld = Instance.new("Weld")
weld.Part0 = gear.Handle
weld.C0 = gear.Handle.CFrame:Inverse()
weld.Part1 = game.Workspace[player.Name]["Left Arm"]
weld.C1 = game.Workspace[player.Name]["Left Arm"].CFrame:Inverse()
weld.Parent = gear.Handle
local weld2 = Instance.new("Weld")
weld2.Part0 = gear.par2
weld2.C0 = gear.Handle.CFrame:Inverse()
weld2.Part1 = gear.Handle
weld2.C1 = gear.par2.CFrame:Inverse()
weld2.Parent = gear.par2
end
end)
My question is what system can I use to extend the outermost layer upwards relative to the inner most one while still having it move with the player. I have attempted to tween the part itself with tweenService, but that requires breaking the weld. I am unfamiliar with weld constraints but when I attempted to use them on this project, I did not understand how to properly offset the pieces from one another. Any and all help is appreciated.