Hey guys, for some time now I’d been trying to master using Blueprint. But I still find myself going in circles with making sense of some of the most simple things. I thought I should reach out to the community for ideas/techniques on how to really get familiar with Blueprints. Right now, I’m following a reading text and some video tutorials to pick up on how things are put together. But I feel like I’m missing out on a lot of the fundamentals. Can some of you share how you went about practicing or better put, learned by doing? I’m naturally a quick learner provided there are guides or examples to follow along with. I would like to try what some of you guys did or tried to see if that will help…
Can you give an example of what you are trying to learn? What are you struggling on? What do you already know?
The things I’m trying to learn are:
How to create interactions or communications between different classes.
How to effectively make use of some of the available nodes.
How to create my own functions/scripts and use those in tandem with existing functions/scripts.
How and when to or not to use nodes to create actions, logic, etc.
Alright, well there are quite a few nodes, so it will take you a while to learn which nodes to use and when to use them. Creating your own functions is very easy and helpful, personally I only use functions when I need to replicate them, but other than that I only use macros, I do this because macros don’t require execution nodes. An example of a macro I might make is if I want to round any number DOWN to the nearest multiple of 50, or any number I choose. I’m not sure what your experience with computer programming is, but I started as a kid and have been doing it for a few years now, and because of it, I can easily solve problems that don’t necessarily require knowledge about coding or blueprints. You’ll come to find out that as you progress with blueprints, you’ll be able to solve problems much quicker, even for problems you’ve never dealt with. I am thinking of making a tutorial series on how to make a complete game from scratch when I have some free time, but I guess my advice to you is to read through documentation, they have some really great tutorials. Epic Games also has some awesome tutorials on YouTube that are actually quite fun.
1: If you are looking to communicate with the character class - get Player Character > Cast to xxx > Save reference inside of said type variable to easily access it again if needed.
Between Actor class’ - If there is only one in the level Get All Actors of Class > Get index 0 > Save reference inside of said type variable to easily access it again if needed. Alternatively if you want ALL actors of said class to execute something - Create a Custom Event in said Actor. From the other graph Get All Actors of Class > Custom Event.
Whenever you create a Blueprint, you can make a variable of that type to use as a reference. But remember that you have to SET that variable during runtime I.E. Event Begin Play.
2: I think of it as a construction worker’s tool belt. Each tool has its defined usage, true, but there is ALWAYS more then one way to use a tool if you think outside the box. The big difference between a tool belt and Blueprints: Blueprints has much, much more tools. The best way to learn the many Blueprints is to try them out, spend time doing this. Spend time going through the Answer Hub Blueprint questions and trying to answer people’s problems. Try re-creating people’s problems. Make tutorials if you find solutions to people’s problems.
3: Unless you are creating specific Math formulas that can be used again and again, this question is very situational. Use Macros when you need to copy/paste the same sequences in multiple places on the graph. Use Macros when you need latent nodes such as Delays. Use Macros when you need multiple Exc pins. Use Macros when you need simple local variables i.e. local float, local int, local bool, etc…
Use functions when you need to create specific local variables. Use Functions when you need to execute said function from another class. Use Functions when you want said function to be looping using Timers. Use Function Libraries when you need specific grouped sequences that can be used in any class.
4: There are a lot of things that can and can’t be done in specific ways. Other things can be done in multiple ways. For the most part, you can always find a way to achieve whatever it is that you are trying to do with Blueprints. A lot of people will tell you to be careful when using Tick events. There are ways to use it properly and other ways to achieve the same results. But in general, this is something that you will come to understand as you acquire more experience with the Blueprint system. Once you are more familiarized with the many many nodes and different things that you can do with blueprints, this will be answered on its own. You can’t break it, and unless you are making a AAA game that is HUGE, you will have a lot of leeway. When I say you can’t break it, I mean that in the sense that you can always erase and start over. There is no “wrong” way to do it when you are learning, every mistake that you make will yield its reward. More so then a successful attempt. MAKE MISTAKES, lots of them, it is the best way to know what NOT to do, and to never do it again.
Tips:
- Zoom in and out of your graph with the mouse wheel to quickly go to farther areas on your graph.
- Learn the hotkeys (Blueprint Cheat Sheet)relevant to blueprint editing i.e. Ctrl + drag variable to get variable, alt + drag variable to set variable, D - Delay node - S Sequence Node, etc…
- Double click on existing flow control nodes, macros to see how epic set them up.
- Keep doing it