Confusion regarding C++ and Blueprint integration

I have a number of questions on things I would either like confirmation on, or that I have trouble understanding.

  1. So I been trying to research a bit and I was understanding that C++ and BP works together very well, and it is fairly easy to use C++ to create your own blueprints, is this correct?

  2. Reading over a few of the other posts on the forum trying to understand things better, has only led to more confusion lol.

  3. I seen people mentioning you can only access C++ if you build the engine yourself? Does this change anything aside from just allowing C++ access?

  4. Similarly, I seen people saying you can’t access C++ if you use one of the Blueprint templates? Is this true as well? Is there no way to get the functinality of BP but also access to the C++ code?

  5. Also I’ve been trying to understand how to edit the code for the base blueprints that ship with UE4 - not just inheret from them, or replace them, but I would like to just edit them to tweak their functionality. Not sure how to do that.

  6. Finally, looking at the post about Character Controllers kind of confused me a bit more too when trying to put all this together. I think I understand the overall concept of Pawns and Controllers… but my question is, what exactly “is” the “Character Movement” component that is shipped with the BP templates, or when you make a “Character” blueprint? Is this a special pre-made blueprint with it’s own functionality? Or is it just inhereted from some C++ classes? Or…?

Sorry for all the questions… Thanks in advance if anyone could help me out!

No, you can use C++ to create your own classes that can be used in Blueprints, as well as your own nodes (More advanced).

Understandable, there is a lot to learn, very steep learning curve. But well worth it.

You can access C++ from both the launcher version (Headers only) and the version (Headers + Source of the engine itself). Having your own compiled version means you can step right down into the code and see what is happening at every point.

You can access C++ from a blueprint only project. Just add a new source code file and it will generate a C++ project for you. Its not an either/or choice. Blueprints and C++ work together.

Double click the blueprint in question in the content editor and edit to your hearts content and compile.

The character blueprint is based on the ACharacter C++ class. When you create a new blueprint based on this, you are inheriting the functionality found in the ACharacter class. The CharacterMovement component is a special component for moving a character. You do not have to use this blueprint for your character but then you would have to implement all the functionality it gives you again (This would be done for a specific type of movement that is not covered by the character/charactermovement code - In this case you could write the code in C++ and inherit in blueprint, or do the whole thing in blueprint).

Thanks so much for the quick response!

Glad to hear things seem relatively straightforward.

Thanks again!

It seems I must have been communicating poorly when I expressed what I wanted to do there. In 5 I meant I would like to edit the C++ code for the actual BP nodes that are shipped with UE4. For example the “Jump” function - does nothing when you double click it.

I got the source install going, but I’ve been trying to decode how Jump works. As you mentioned it seems somewhere around ACharacter class, but also seems related to UCharacterMovementComponent. It’s been way too long since I’ve spent time with C++ (about 8 years?)… Having trouble deciphering everything lol.