About
Applications
HoudiniUnreal EngineUnity 3DNukeMayaBlenderZBrushPythonMixed RealityMachine LearningGraphic DesignExtrasAboutFormatting
Blueprint Style Guide
Annotations
Standalone Comment
Create a reroute node and add comment to create a standalone comment note in Blueprints.
Node can be repositioned in graph.
Pin
This refers to the pin at the top right corner of the comment box. Horizontal position preserves original text size in comment regardless of zoom, and angled position matches scale of text with zoom level.
Color-Coding Comments
Color code comments to provide visual clarity among events and other operations throughout BPs. The following is a simple guide
- Blue: Begin Play
- Red: Debug Operations
DOP
DOP : Disconnected On Purpose
Include this comment on any instance where a BP node input/output is disconnected to track workflow.
Shortcuts
Variables To Graph
Select variable from My Blueprint
panel and RMB
drag into Graph
with:
CTRL
: Get variableALT
: Set variable
Nodes
To access all available nodes, disable Context Sensitive
from new node panel.
Action Context
Selecting a component and then accessing available actions with Context Sensitive enabled provides quick access to available actions specific to the selected component.
Production
Blueprint Types
Level Blueprint
Only gets executed within its corresponding level.
Can reference multiple actors within its level.
No components can be added; thus no viewport within this BP.
Events within this BP are bound to specified level and cannot be instantiated.
Can interact and communicate with actors in level.
Actor Blueprint
More modular than level BP; can be used in various levels and instantiated multiple times within a level.
Separate entity for independent functionality.
Can be enacted at beginning of play or with specific triggers.
Can be instantiated throughout level, with the potential of each instance acting independent of each other.
Pawn BP
Playable character functionality.
Animation BP
Event Graph
Used to control logic for animations and user control at runtime.
Anim Graph
Allows for coordinating animation states, blending, etc.
Player Controller
Emphasizes user interactivity and controls during game play.
Game Mode
Set of rules specified for the game play.
UMG UI BP
Used for creating UI elements at runtime.
Widget BP
Does not include a Components section, but instead uses a Designer workspace.
Child BP
Relies on a Parent BP that is typically set up as an Actor BP.
Inherits all functionality from Parent BP.
Created by RMB on a BP and selecting Create Child Blueprint Class
.
Blueprint Function Library
Collection of functions that can be accessed from other BPs
Blueprint Interface
Communication amongst BPs
Create functions within and then access them via Class Settings
in other BPs.
Class Settings
> Interfaces
> Implemented Interfaces
> Add
Once they are accessible, the available functions should be available under the My Blueprint
panel in the current BP > Interfaces
.
Blueprint Macro Library
Collection of macros that can be used in various BPs
Enumeration
Named list
Structure
Collection of different variable types
Blueprint Sections
Construction Script
- Executes when actor is placed in editor and whenever modifications are made to the actor, as well as in runtime when the game begins.
- This is suitable for allowing edits to be made within the Editor by artists, level designers, etc.
Event Graph
- Scripting for actions to be executed during runtime.
Function
- Collection of nodes for organizational and use in various instances.
- Allows for inputs to be processed into the Function, unlike a Macro.
- Can be created by selecting nodes and collapsing.
Macros
- Similar to Function, but with some differences in functionality.
- These are utility tools.
- Sim to Function, can be created by selecting nodes and collapsing.
Collapsed Graph
- Simply groups collection of nodes in a condensed format.
- Sim to Function, can be created by selecting nodes and collapsing.
- Unlike Functions and Macros, these can be used in various instances.
Event Dispatchers
- Communication tool among BPs and other facets of UE.
Variables
Data Types
- Boolean, Integer, Float, Vector, String
- Transform: Position, Rotation, Scale
- Blueprint Objects
Note the colored inputs in Blueprint nodes are coordinated with the various data types available to be used.
Accessibility & Visibility
Make public and accessible by other BPs by enabling the following detail parameters:
Instance Editable
- This correlates with the eyelid icon going from closed to open at the variable section of the My Blueprint panel.
Expose on Spawn
Tooltip
Adding a tooltip to a variable changes eye icon color from yellow to green.
Convert from String to Array
RMB over variable to toggle between string and array
Game Mode Setup
Default GameMode: Setup a new one for game to enable Class options.
Default Pawn Class: Defines the player character to be viewed during game play. Verify this is setup rather than default sphere shape.
Components
Default Scene Root
This is the white sphere that appears within a BP.
It serves as the parent for all of the other components within the BP.
Any other component can replace the 'white sphere' and serve as the Scene Root.
Drag the intended component to the Default Scene Root and it will replace the 'white sphere' and now serve as the Scene Root.
Billboard Component
2D sprite that is oriented towards camera.
Movement
Rotation rate is in degrees per second (Example: 180 degrees/second).
Bindings
These are checked every frame and can link a variable to another element. For instance, a variable's value from a function can drive a progress bar's growth in a UI element.
Bindings are executed on each tick.
Example: Health bar UI element does not need to check each tick. Instead check only in the Event when player receives damage.
Progress bar goes from 0 - 1.
Example: If health value is from 0 -100, then divide it by 100 to fit it to range of 0 - 1. This is the same as using Map Range Clamped
and going from 0 - 100 to 0 - 1.
Performance
BPs rely on references, which can be viewed through RMB
> Size Map
and RMB
> Reference Viewer
.
As such, the BP and its references can heavily impact what is loaded into memory, so only load a BP when needed.
Monitor and manage instances of casting throughout script.
To minimize impact, soft-load assets with Async Load Asset
node rather than hard references (i.e. Set Static Mesh
, etc.).
Async Load Asset
loads the asset only when needed and when the node is executed.
Utilize C++ bridge to BP can enhance performance.
Blueprint Function Library
Cast from transient actor to ever-present actor rather than vice versa.
Example: A player character is always present in the game whereas the enemy actor is only present when the player is in proximity of it. Therefore it is better to cast from the enemy actor to the player actor, which is already in memory,
Performance Intensive Nodes/Operations
While Loop
For Each Loop
Do N
Get All Actors Of Class
Ticking & Timers
Tick default off for BPs
Use dumpticks command in console to get list of all instances of tick operations.
Collaboration
BPs are binary files.
Split functionality to allow for multiple collaborators.
Integrated diff tool should not be part of typical workflow
Errors
Use Is Valid
to confirm reference is legitimate before executing.
Keep track of references when attempting to remove or deprecate.
Debugging
Blueprint Watcher
In game mode, have BP Event Graph open to view simulation of the BP. In this way, the values streaming between nodes can also be viewed and monitored.
Breakpoints can be also be enabled through graph.
Editor Utilities
Verify Call In Editor
is enabled for function to be accessible from Editor.
Add Component
UMG
Button Event Triggers
- Pressed
- Event triggered when mouse button is depressed.
- Released
- Event triggered after mouse button has been released.
- Requires mouse button to start in a pressed state.
- Clicked
- Event triggered when mouse button is pressed and released, in succession.
Mouse Wheel Up/Down
In this case, Pressed
means scrolling the mouse wheel up or down.
Operations
Blueprint Communication
Casting
Used to check if an actor is a specific type of actor or not.
Allows for communicating among BPs.
Interfaces
More efficient way of communicating among BPs without having to cast.
Event Dispatcher
Commonly used to link between Actor BPs and the Level BP.
'IsValid' Check
Use IsValid
to check if pawn is outputting a return value before moving into code in EventGraph
of an animBP
.
Pause/Unpause Game
- Define key/ctrl in Project Settings
- Add Input Action to level BP
- Enable 'Execute when Paused' in Details. This allows for the key to be usable to unpause the game. Without this, the game will not unpause.
- Use Flip/Flop node to pause/unpause
- Path A to Paused (True) and B to Paused (False)
Blueprints vs C++
BP
Avoid complex math and heavy operations on every frame
BP is translated to C++ via virtual machine
BP is event-based
References
BPs rely on references
Errors may result if references are not correctly configured to actual objects that can be referenced.
Circular Dependencies
BPs that rely on other BPs, which may have dependencies within original BP.
C++
Faster than BPs
Resources
Keyboard Shortcuts
Name | Shortcut | Notes |
---|---|---|
Disable node |
| To enable feature: |
Rename node | Select node + | |
Add component to graph |
| This creates a |
Add variable to graph |
| This creates a |
Create branch |
| |
Node info |
| |
Word wrap (in BP) |
| |
Add comment panel |
| This creates a panel to encapsulate selected nodes. |
Reroute Node |
| |
Break Connection |
| |
Reroute Connection |
| |
Pan |
| |
Marquee Select |
| |
Texture Sample |
| Context: Shader |
On This Page
- Formatting
- Blueprint Style Guide
- Annotations
- Standalone Comment
- Pin
- Color-Coding Comments
- DOP
- Shortcuts
- Variables To Graph
- Nodes
- Action Context
- Production
- Blueprint Types
- Blueprint Sections
- Construction Script
- Event Graph
- Function
- Macros
- Collapsed Graph
- Event Dispatchers
- Variables
- Data Types
- Accessibility & Visibility
- Tooltip
- Convert from String to Array
- Game Mode Setup
- Components
- Bindings
- Performance
- Debugging
- Editor Utilities
- Add Component
- UMG
- Button Event Triggers
- Mouse Wheel Up/Down
- Operations
- Blueprint Communication
- 'IsValid' Check
- Pause/Unpause Game
- Blueprints vs C++
- Resources
- Keyboard Shortcuts