Using player character's arms as viewmodel

Hello, when playing Zeppelin wars, I’ve noticed that the player’s viewmodel arms are actually character’s arms deattached from the body.
How do I achieve a similar effect?
Any answers would be appreciated.
Thanks.

2 Likes

can you provide some images? thanks


As you can see, the arms are attached to the camera instead of being attached to their default positions.

1 Like

well you can do that by cframe and C0 and C1 in the arm motor 6ds

1 Like

Could you provide more details? I’m not so good in manipulating Motor6Ds

So what you can do is get the players arm C0 by going to the torso → Right Arm its a motor 6d. it has a property called c0 and c1 u can use that to offset it and so so make it attach to camera

1 Like

Thank you for answering the question, the problem is that I have no idea how to attach them to the camera. I know that in a usual viewmodel you can simply set the viewmodel’s rootpart position to the camera’s cframe, although I dont really understand how to use C1 to attach it to the camera.

For each arm:

local Arm = Character:FindFirstChild("ArmPartName")

Arm.LocalTransparencyModifier = 0

Arm:GetPropertyChangedSignal("LocalTransparencyModifier"):Connect(function()
   if Arm.LocalTransparencyModifier ~= 0 then
      Arm.LocalTransparencyModifier = 0
   end
end)

Is this what you’re looking for?

1 Like

No, what I want is to deattach the arms from the player and attach them to the camera.

It’s not possible to “attach a part to the camera” with a weld or attachment or such. Instead, move the arms, or something that stands in for the arms but isn’t actually the arms, in front of the camera.
edit: move a part to Camera.CFrame on renderstepped, then attach the arms to it with an Attachment/Welds/whatever

https://devforum.roblox.com/t/how-to-create-first-person-movement/1743389/2

As for the Motor6 holding the arms stuck to the player’s character, you should sever them temporarily (set Part1 to nil), or adjust the C0/C1 so that the arms are always somewhere near the camera (i.e. something like C0 = torso.CFrame:ToObjectSpace(workspace.CurrentCamera.CFrame)). With the latter, you may have a tiny bit of trouble setting the C0 back to default, as it probably depends on the character’s proportions.

2 Likes

from what i can tell they’re actually just using theinbao’s first person arms script

4 Likes