Blue­print Edi­tor Tips [Unre­al Engine 4]

Just want­ed to share some inter­est­ing stuff I learned while using Unre­al Engine, that made my life eas­i­er. Hope it will make yours eas­i­er as well.

Hav­ing a heart attack yet from look­ing at the fea­tured image? Yeah, it’s prob­a­bly Love­craft­ian in nature; some­thing so ancient and ter­ri­ble, that peo­ple go mad from only look­ing at it.
How­ev­er, jokes aside, if you’ve opened this arti­cle — then you prob­a­bly want to see what I have to offer. There won’t be any rev­e­la­tions here (¯\_(ツ)_/¯ ), but rather a hum­ble col­lec­tion of tips and tricks for using a blue­print edi­tor, that I’ve learned dur­ing my time with Unre­al Engine 4 and that helped me a lot. Some of them may be kind of obvi­ous, but dis­cov­er­ing them made my blue­print­ing time more enjoy­able and now saves a lot of time. 

This is the first post in the Tip­s’n’Trickscat­e­go­ry, and I hope more are to come x)
Okay, ready?

1. Tidy up

Now that I’ve prop­er­ly scared you with the fea­tured image (I dare you to take anoth­er look at it), let’s make sure you nev­er end up with some­thing like that.

Use func­tions and macros

If you want to know the dif­fer­ence between the two, just take a look at the func­tions vs blue­prints sec­tion in the offi­cial UE4 doc­u­men­ta­tion.
For some rea­son, peo­ple (I mean, most­ly novices, but still…) are afraid to use func­tions and macros. Well, don’t be! Blue­print can quick­ly become clut­tered with hun­dreds of nodes, and some­times you just reuse the same group of nodes over and over again. Why not make a func­tion or a macro out of them? 

You can either go ahead and explic­it­ly cre­ate one, or, if you have spe­cif­ic nodes you want to include in your macro/function, just select them, right click on any of them and select ‘Col­lapse to Macro/Function’.

My macro node has no exec inputs/outputs for obvi­ous rea­sons (did not cre­ate them yet)

Then you can eas­i­ly use it wher­ev­er need­ed, instead of copy-past­ing or plac­ing and con­nect­ing nodes all over again. Even if it isn’t reusable, it’s still can be con­ve­nient to col­lapse nodes to function/macro — for exam­ple, it’s much eas­i­er to under­stand a “Cal­cu­late galaxy size” macro node than cou­ple dozens of math nodes.

Add reroute nodes

It’s not cool if you have spaghet­ti hang­ing every­where in your blue­prints. Sim­ply dou­ble-click on any con­nec­tion or search for reroute node:

This way your blue­prints will look much nicer and cleaner. 

Cat­e­go­rize variables

Did you notice that every vari­able and func­tion have a “Cat­e­go­ry” field in their details? It’s not a ran­dom field that has been added ‘4 teh lulz’, it’s anoth­er way of keep­ing your blue­prints orga­nized. You can name these cat­e­gories any way you like, but name them ratio­nal­ly — oth­er­wise, you’ll just lose track of where is what. Group­ing vari­ables into cat­e­gories is only a visu­al thing, and does­n’t direct­ly influ­ence your blue­prints per se, but still it’s a nice fea­ture that will present all your vari­ables in nice groups instead of all of them being in a sin­gle list.

Com­ments

Com­ments are anoth­er use­ful thing for orga­niz­ing your blue­prints. Just select the nec­es­sary nodes and press “C”. It will cre­ate an out­line area around select­ed nodes. You’ll be able to change the title and the back­ground col­or — this way you can rec­og­nize dif­fer­ent parts of your code even from a bird’s eye view. More­over, this way you can move all those nodes togeth­er just by drag­ging a comment.

2. Fol­low nam­ing convention

The nam­ing con­ven­tion is a set of rules on how you should name dif­fer­ent files/variables/functions and all of the oth­er stuff in programming.

Not to take up the space of this post, I sug­gest you check out the offi­cial nam­ing con­ven­tion for assets in UE4 doc­u­men­ta­tion. But here are the very basics:

  • All names should be in Eng­lish, and Eng­lish only
  • There are pre­fix­es and suffixes 
    • Pre­fix­es are deter­mined by asset type. For exam­ple, BP_Character01 for Blueprint
    • Suf­fix­es are used less often, for exam­ple in tex­tures: T_BrickWall_01_AO for Tex­ture, Ambi­ent Occlu­sion map 
  • Use numer­ic val­ues (two dig­its) for iden­ti­fy­ing asset vari­ants: T_Grass_01, T_Grass_02

As for the variables/functions and oth­er cod­ing stuff nam­ing, blue­prints is a more for­giv­ing envi­ron­ment, and you don’t nec­es­sar­i­ly need to both­er your­self with Camel­Case and camel­Case — even names with spaces in them are accept­ed. But still, try giv­ing your stuff sen­si­ble names, because fig­ur­ing out the dif­fer­ence between “Play­er­Vari­able” and “PlayerVariable2” is next to impos­si­ble, while the dif­fer­ence between “Health” and “Mana” is pret­ty obvious.

3. Get things done faster

Do your­self a favor and learn some hotkeys and short­cuts — this way you’ll save your­self a lot of time, Hon­est­ly, it pains me to see peo­ple using con­tex­tu­al menus or sim­i­lar stuff instead of click­ing two keys. As always, there’s a Blue­print Edi­tor Cheat Sheet in the docs. But here are a cou­ple of tricks for the most essen­tial actions that you’ll be per­form­ing a lot:

Get/Set vari­able

Instead of drag­ging your vari­able and then click­ing either get or set option, you can use one of the two mod­i­fi­er keys: Ctrl for get­ting and Alt for setting:

If (branch) node

For cre­at­ing a branch node (if node), sim­ple hold B and left click on an emp­ty space:

Math node

Instead of putting all of the nodes for your math­e­mat­i­cal oper­a­tion one by one and con­nect­ing them, you can use a Math Expres­sion node:

Delete/Reroute con­nec­tion

To break the link between two nodes you don’t have to right click and select “Break link…” option, there’s a faster way. As well as to retar­get the link from one node to another:


This will be it. I know it’s not much, but I hope you’ve picked up some­thing use­ful.
See you lat­er, mates!


If you want to dis­cuss this arti­cle, there are three choices: