How to stretch the arm from one side only?

So, i’m making this gomu gomu no rocket skill and I am making the size tween.

The issue is when I tween the arm it stretches from both sides. I want it to stretch forwards and not backwards.

here is the issue

https://gyazo.com/68256431db84eddbfd93553e3cff13c9


	Character:WaitForChild("Right Arm").CanCollide = false
	TweenService:Create(Character:WaitForChild("Right Arm"),TweenInfo.new(0.2),{Size = Character:WaitForChild("Right Arm").Size + Vector3.new(0,45,0)}):Play()
	
	task.wait(0.2)
	
	TweenService:Create(Character:WaitForChild("Right Arm"),TweenInfo.new(0.2),{Size = Character:WaitForChild("Right Arm").Size - Vector3.new(0,45,0)}):Play()
2 Likes

Maybe try to move it forwards at half the rate it stretches at.

I don’t understand what you mean by this. I tried tweening the position but it leads me to teleport randomly into the air , or backwards. I added a clip of the problem in the original post if you need it.

define teleport randomly into the air. maybe you can try to pause the animation at the point where the hand is about to stretch then clone hand in the same spot and modify it to your needs

Your problem can be solved by using some M A T H.

Tween the CFrame property of the arm to move forward on the Z axis with half the amount of how much you extended the arm, so in our case 45/2 = 22.5 studs.

1 Like

That’s what i suggested but causes him teleporting in the air

1 Like

I tested your suggestion as well and it works fine for me, my reply is there to suggest using math for a more precise value.

1 Like

you are trying to make this?
https://gyazo.com/382dd3ecbbce589bf04ae230b2cd1184

1 Like

Yes, that’s exactly what I am trying to make but it stretches from behind.

i have created a new Part and changed its Size to Vector3.new(1, 1, 1) then created SpecialMesh and changed its Scale property to arm Size

local Arm = Instance.new("Part")
Arm.Size = Vector3.new(1, 1, 1)
Arm.CanCollide = false
Arm.Anchored = true

local SpecMesh = Instance.new("SpecialMesh",  Arm)
SpecMesh.VertexColor = Vector3.new(CArm.Color.R, CArm.Color.G, CArm.Color.B)
SpecMesh.Offset = Vector3.new(0, 0, -OriginalArm.Size.Y/2)
SpecMesh.MeshType = Enum.MeshType.Brick
SpecMesh.Scale = OriginalArm.Size

Parented it to workspace, found length by raycasting, set the CFrame of fake arm to original arm position and mouse hit position, tweened special mesh offset and scale to the half of the length and length

2 Likes

How did you get to the point you were at before the solution? I am trying to do the same thing and Ive finished the animation and put it on the dummy and it worked just fine (with the backward stretch but idc about that right now) so the next step was to put it on my Player. Right arm does not exist in Starter Player and script.parent.parent does not work either. How do I put that animation on the player?