We’re working on a next-gen console shooter, and we’re having trouble making aiming easier for the player. Problem is, we have a pretty dynamic camera, and the crosshair is rendering on top of this with a screen space camera canvas. As you can imagine, with screen shake applied and everything, it becomes really hard for the player to aim, as the crosshair follows every move the camera makes.
To solve this problem, we tried rendering our crosshair on a separate camera, tried out camera stacking, tried out a world space canvas, and a bunch of other stuff. We haven’t found a solution yet, hence this post.
Is there anything in Cinemachine that can help us with this?
If there’s not, do you have any suggestions on how to tackle this problem? How is this done in other games?
Take a look at the Cinemachine AimingRig sample scene. It shows how noise and shakes can be put on the camera while still maintaining accurate aim. The noise is quite subtle in the scene, but you can crank it up on the vcam to get a better idea of what’s going on. Try aiming at various things to see what it does.
I tried it out, and I’m not sure it’s useful for our use case.
It seems to me that the crosshair in the AimingRig scene is always centered on the screen, which is to be expected in a shooter like that. For our game though, (also a third-person shooter), the crosshair is controlled by the player, so it moves in-between the borders of the screen. When I apply the CineMachine3rdPersonAim component, the crosshair gets fixed to the screen, and I’m no longer able to control it.