Download

Modular Workflow with Blueprint?

Greetings friends,

Before UE4 was released, I had been doing a lot of dabbling in unity. I was attempting to learn some scripting (I’m an artist) as well as using third party assets to accomplish things.

While I feel that it will eventually be easier for me to accomplish the things I want to do in Blueprint, the one aspect I miss from Unity is the modular scripting workflow. For anyone that isn’t familiar with unity, the gist of it is that you can create small scripts (example, a script that controls sprinting(speed, stamina drain, etc)), and then attach them to your player character (or whatever else). In the end, you’d have several small scripts that each do something specific that you could go in and edit extremely easily because there’s not a billion other functions inside of it.

With blueprint, I’m already feeling like my player controller blueprint is getting extremely unwieldy.

My question is, am I just going about things wrong? Is there a way to achieve a similar “modular” workflow as I described above? I fully accept that I’m a complete novice with blueprint, so it may just be me not knowing enough about the system to make it modular, but I’d love to know if anyone has any suggestions in this regard.

Thanks!

First of all. A controller is not a requirement. It’s part of the default game framework. If you want to go another way, you can.

Secondly, movement is already separated in the default framework. It goes into the movement component, not the player controller.

I came to UE4 from pretty much the same situation as you it sounds like, and I think that you’re perhaps thinking about things in slightly the wrong way.
First, I want to recommend watching the videos on blueprint here if you haven’t already: https://www.youtube.com/watch?v=cRhWc2kAhqI
They help quite a bit!

As for what you’re talking about, In the toolbar under the My Blueprint viewport you’ll find a “New Macro” option. I haven’t messed with this much yet, but this should allow you to do something very similar to what you’re describing- you can make a small blueprint specifically for, say, applying a physics force with various parameters, and use that as one ‘node’ in your main blueprint. I can’t really give any good examples; the way I found out about this was clicking on some random nodes (I believe it was the gated logic node) in the 2D blueprint example from the marketplace.

Also, something that I just recently found out and want to state in case someone else can’t find an answer like me ( probably because I’m dense and somehow its nearly dawn again…) don’t forget that you can set up input axis(es?) under edit>Project Settings>Input (Create a group, say, MoveForward and set one key to W, scale 1, and another to S, scale -1).

Player controller/movement was just an example… not sure you understood the point of my post.

Yeah I’ve watched all the tutorial videos, I think they somewhat confirmed what I thought which is just… It’s going to be a lot different.

I think a combination of communication between blueprints and using macros may be the key to keeping things organized and “modular”. I’ll have to do some more research into macros, the small toying I’ve done with them resulted in getting errors that all of the nodes I wanted to add to the macro were not allowed to be part of a macro(this is almost for sure due to my ignorance of the system rather than a problem with the system itself).

Either way, I’m pretty happy with what I’ve been able to accomplish so far, the system seems extremely robust, I just want to find a nice workflow that keeps things organized and prevents things like having one ubergraph that does everything:P

Some other ways to work in a modular way are:

  • Create a ‘macro library’ so you can share macros between Blueprints:
    https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/Types/MacroLibrary/index.html

  • Create a base Blueprint and then create other Blueprints that derive from it. For example, create a ‘creature’ BP, then an Ogre BP that derives from it, then a Red Ogre and Blue Ogre variations that derive from that. Each one can add new components and scripting, and change default values, but still include the logic from the parent.

These are some great ideas, I’ll have to play around when I get home from work. Thanks a bunch:)

I would heavily suggest going with James’ idea and going with a Blueprint hierarchy. I have found this tends to make my projects much cleaner. Also when/if you decide to take the plunge into the C++ side of things, there are alot of great interactions between Blueprints and Native code that lend themselves to modular development as well.

As the others have stated I think it’s just a case of you trying to achieve things the way you would in your old toolset (i.e: Unity) as opposed to the “Unreal way” of doing things. You’ll get acclimated, of this I’m sure.