Character Properties

Blueprint Thread Safe Update Animation

This function runs in a thread separate from the game thread and this function can be processed in parallel for multiple characters in the game world removing the bottleneck and being much more efficient than using the event graph. However there are some limitations on what we can do in this function because it isn’t running on the game thread. One of those limitations being that we cannot access variables in the way that we normally would in other graphs because this function runs on a CPU thread separate from the game thread we do not know what the game thread is doing with the variables and the data they contain when we access them on this thread. So we could encounter unexpected results Unreal Engine has a system called property access which will request the values of these variables when it is safe to do so automatically meaning that we do not have to worry about any of this as long as we use the property access system to access the properties that we need.

Property Access

This node can access the variables we create inside of this blueprint as well as the variables and some of the functions inherited from this blueprint’s parent class to the anim instance as far as the functions go certain conditions need to be met and I’ll be explaning those later on in this video when I create a function that we will access through the property access node to set certain values. So our current goal is to use this property access functionality to request character movement data from the character object containing the skeletal mesh that is using this animation blueprint. There are two major classes that we will be requesting this data from the actor class and the character movement component class within the character class.

Object-oriented programming is a concept in unreal and many other game engines and it’s actually a concept ingrained deeply into C++ and one of the main things that separates it from the C programming language and C++ is the programming language that unreal is coded in. So objects at their core are a conceptual abstraction a way for programmers to encapsulate functionality and data into a container there aren’t many limits on what an object can store and even better than allowing for conceptual organization and easy abstraction objects exist within a hirerachy of inheritance.

Tutorial 2

Animation Naming Convention

Tutorial 3

The Locomotion Angle [0:31~2:56]

Untitled