TL;DR - I am trying to make the player’s camera match their head’s position, while still maintaining mouse-controls for looking around. The Head and UpperTorso’s Motor6s also rotate with the camera.
I do not know exactly what to search for help, and the few articles I have found did not prove to answer my problem. My game is a first-person shooter of sorts, and I have created a crouch/sneak system which plays animations where the player is closer to the ground. Being that the camera stays where the head normally is on a character, it becomes disjointed to the actual body and looks very strange. I have read the thread here about FPS games, but at this point I am too inexperienced to really understand what I’ve read there. Separating what the player sees with viewmodels and worldmodels is way beyond me, so what I do, is use normal Roblox Tool instances, force first person, and change the LocalTransparencyModifiers of the player’s body so that they can see themself. This causes issues with the sneaking though, as the camera stays still when the character drops to the ground.
One attempt to fix this was setting the CurrentCamera’s CameraSubject to the player’s head. This works for the most part, until you turn around; your body does not turn with you, and will always face whichever way you started at.
Another way I tried was to set the Camera to Scripted and, each frame, set it to the Head’s CFrame. I think this would have worked, if it were not for the one thing that I did get out of that FPS thread. That would be the modification of the character’s Motor6s. I have another script change the Motor6’s in the player’s UpperTorso and Head to rotate alongside the camera. That way, other players can visibly see when someone is looking up and down, rather than always pointing straight ahead. The thing is though, if I set the Camera’s CFrame to the Head, that Motor6 script will constantly push the camera up or down, whichever one is closer. I think this would work fine if I disabled the Motor6-changing-script, but then it would no longer be clear when player looks up or down.
What kind of alternatives to making viewmodels are there for an FPS-style game, that a relatively new developer like me could reasonably accomplish?