Step by Step guide to start using C++ for Unreal Engine 4
While it may seem daunting at first, we will see Unreal Engine provides a plethora of macros and features not commonly associated with C++ to make it very easy indeed.
Blueprint is an incredibly powerful visual scripting language provided by Unreal Engine 4. It provides the ability for anyone to create compelling games with advanced graphics by drawing out logic using nodes and pins instead of writing code.
However as pure Blueprint projects grow in size. They can become difficult to manage and organise. Even a small project can require a rather large code base. Pointedly it can cause difficulty with source control and sharing work between team members. Blueprint is a stepping stone to quickly get into game development. The correct way to proceed with a production quality project is to use a combination of Blueprint and C++.
The goal is to move Logic to cpp space while retaining the ability to set settings and options for quick design changes in Blueprint. Effectively we want a C++ backend and a Blueprint frontend.
What makes games really pop and come to life are the small things. One of the most important of these is variation in character idle animations. Perhaps the most iconic of which are idle and repeat click animations on peasants and grunts in the Warcraft series of video games.
Achieving the same result in Unreal Engine 4 is pretty straight forward.
First we setup some preliminary variables in the AnimBlueprint for the 3d character model that shall have multiple Idle Animations.
Then we take the first sequence pin to setup Speed and IsInAir variables. The speed variable will drive the locomotion 1D blend animations while the IsInAir variable controls animations for falling and jumping.
And lastly we take the second sequence pin to set the switch boolean “Show Wait Anim” whenever a certain amount of time has lapsed. The blueprint starts counting time if speed is zero and hence the character is not moving.
If the character moves the timer is reset, the alternative idle animation is played and the timer is reset again to replay after another time interval.
This is a very simple system that can easily be expanded for more complex animations including variations in time and order of animations. So for example a character that is standing still might look around or shuffle in place every little while for a much more realistic and convincing appearance.