How to improve my camera controls to properly drag the camera around the sphere?

I’ve been trying to recreate the camera system that Google Earth has where the initial place you click on is where your mouse is kept (with a little delay). Through trial and error I’ve reached whats shown in the video below.

Problem 1: I got it so the camera rotates in the correct direction (opposite of the mouse) but it doesn’t rotate enough. Attempt to multiply how much is rotates has caused the camera to move out of control.

Problem 2: It seems to be jumping back and forth from two points. I think that’s because its bouncing around the polygons of the sphere but I am unsure. Other versions of the ‘drag to rotate’ where it simply follows the held left mouse button does not have this issue.

Problem 3: The initial left mouse button press jolts the camera to a new location. I’ve seen other threads on this forum talk about this issue when it comes to them moving a sphere but I haven’t looked to deep into this problem yet.

Problem 4: Just as a aesthetic thing the Google Earth controls lets the user rotate in every direction and can pass through the north and south poles, my version cannot pass through those areas. I assume that its because of the “make Rot from X” node I’m using. Would be helpful if someone could point out another node that could allow rotation on all three axis.

Here is a link to the blueprint as it currently stands. Drag Camera on mouse click posted by anonymous | blueprintUE | PasteBin For Unreal Engine

Would appreciate any help on how to improve!

try checking this project that was shared by unreal staff on an old thread of mine. it has something similar with what you want to do

Thanks for the link! Just downloaded their files to play around with and you are right its similar to what i want to achieve. I’ll keep coming back to this to see how they handled some of the problems but while they use screenspace to rotate around the sphere I would prefer to use world space for more precise rotation of the planet.

It will be a good alternative if what I want to achieve isn’t possible though!