UCameraShake is atrocious for C++ users

Yes, it helps during design/debug, but afterwards I would like to be able to migrate to my native environment, which is C++. This is possible with most features, just not this one for some reason.

As I already said, I’m a C++ user. I have experience with engines that “do it” mostly within code, I’m used to that kind of approach and I prefer it.

As I said, this is not an option for dynamic shakes, unless I’m going to have tens of shake blueprints, which is messy and inefficient.

Instead of creating tons of blueprints, I could simply do something like this:



UCameraShake* CameraShake = UCameraShake::StaticClass()->GetDefaultObject<UCameraShake>();

CameraShake->OscillationDuration = 0.25f;
CameraShake->AnimBlendInTime = 0.1f;
CameraShake->AnimBlendOutTime = 0.2f;

CameraShake->RotOscillation.Pitch.Amplitude = CurrentlyDesiredAmplitude;
CameraShake->RotOscillation.Pitch.Frequency = CurrentlyDesiredFrequency;
CameraShake->RotOscillation.Pitch.InitialOffset = EInitialOscillatorOffset::EOO_OffsetZero;

GetOwner()->GetPlayerController()->ClientPlayCameraShake(CameraShake);


If you have experience with C++, or any other programming language for that matter, you will see how this approach is infinitely less cluttersome than the one currently available.

Sorry but I’m not sure how any of those links are supposed to help me. Do you mind pinpoiting the exact time on either one of those videos?