3D Third Person Controller

Hi! Just wanted to get some feedback for my 3D Third Person Controller and Camera. I’m trying to smooth out the controls and camera implementations first before applying it to a game I’m planning to make.

So far, I’ve added a few Mixamo animations and set up a BlendTree to smooth out the transitions, but I still can’t quite figure out how to handle diagonal movement. The controller uses root motion, but I’m still seeing some foot sliding when switching between states.

For the camera setup, the Camera3D is a child of a SpringArm that handles zoom and collisions. The SpringArm is a child of a Node3D that eases toward the player position and takes care of camera rotation. I decided to manage the camera transform manually instead of making it a direct child of the player so I could have a bit more freedom with how it behaves.

I’m planning to try out some Inverse Kinematics to get the movement looking a bit more natural, and maybe use custom animation time seeking to better line up the transitions. I’m aiming for something with a Souls-like feel, which is responsive and grounded, but not fully realistic.

I’m open to any thoughts or suggestions on how to improve the controller. Thanks for checking it out!

2 Likes

Amazing work. I especially love the backward walking and running (~32s). That was really nice!

There is something not quite right about the jump though (~45s). I think the feet don’t transition very well, and I would expect the camera to do some vertical movement too. Or perhaps change angle a bit. The jump also starts at what seems like an inappropriate leg position. The launching leg would have no power and the swinging leg doesn’t swing enough.

Overall though this already looks amazing! Much better than anything I could achieve so thank you for sharing. It looks really impressive already!

1 Like

Yeah, I don’t like that jump as well. I just pulled a random jump animation from Mixamo and tried to blend it. I guess I need to fix the timing for the transition. I’ve watched a lot of BlendTree tutorials but I can’t seem to find anything about how to match the frames of the animations during transition. Anyways, thanks for the feedback!

1 Like

You can manually match frames in code using a tween(). But it’s a pain in the hind end.

1 Like

I didn’t know that. I might just try and experiment with that one. Thanks!