I’ve been using Cinemachine 3 recently and something that’s been confusing me is that Impulses generated from the impulse sources seem to create only translational camera shake.
Thankfully, the old impulse system is still available (now marked as “Legacy”), which uses rotational camera shake, but the documentation appears to discourage its use, and even suggests that the other Impulse Types are a replacement for the legacy system.
Legacy : This mode exists to support projects made with earlier versions of Impulse, and has a more complex way of defining the impulse signal. We recommend using one of the other settings.
Translational camera shake is usually not desirable in 3D games, and the new system does not give any choice in the matter.
Is there an obvious setting I’m missing somewhere?
Considering how well Cinemachine tackles many difficult camera related problems, and how good the original noise profile impulse system was, it feels like there must be some obvious setting I’ve missed somewhere. If the new Impulse Types (which are easier to use than the old noise profiles) are meant to replace, or even be the default camera shake, they must support rotational camera shake to give the best results.
For those who aren’t sure what I’m talking about, this video gives a quick 30 second explanation of rotational vs translational camera shake:
With the newer forms of Impulse, the impulse source is a simple 1-D thing, and all the magic happens in the reaction which is defined in the listener. These reactions contain the rotational noise.
Except for changing camera’s Impulse Listener Secondary Noise to the mild preset, and using the Explosion impulse shape and time to 1 second on the source, these are all basically the defaults. However the shake still appears translational.
So, setting the camera’s Impulse Listener gain to 0, and then using only the secondary reaction settings seems to get something close to what I was looking for. It’s still not as good as the Legacy system, but it could be a lot worse.
I still question the wisdom of making the current defaults, the default though. Unless you are making a 2D game the default and encouraged new system does not look good compared to the Legacy system without a lot of non-obvious tweaking, and at that point you may as well use the Legacy system.