Download

(39) Rama's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

ooh that’s another great pull request idea, RumbleMonk! Do remind me if I’ve not done that in a week or two :slight_smile:

Rama

[FONT=Comic Sans MS]Featured BP Nodes
**
Trace Data**

I’ve designed several BP nodes to make doing traces easier!

Again you can download and use these nodes as a plugin, even in non-C++ project!

Get Trace Data From Skeletal Mesh Socket
8028a3610f7eacb2c5741fd27866b1d186fc6e6e.jpeg

:slight_smile:

Rama

Jeez Rama… You’re on fire :slight_smile: And for sure, I’ll remind ya!

Speaking of tracing - One of the things that’s been bugging me lately is that if you don’t want to use physics but still want interaction between actors you have to use overlaps (as event hits don’t fire without physics). A shortcoming of that is you end up having to trace between the overlapping actors and as such will end up tracing between the pivot of the actors/components giving you inaccurate overlap point normals (not to mention no impact point).

If you ever come across that problem feel free to write a better overlapper that returns more data :). I’m ok-ish with my current hacky solution, it’s nasty and restrictive but works well enough. Sort of.

There’s gold in dem here parts of the woods anyway. Good luck with Solus!

Hi there!

I actually have had success getting hit events between characters and static mesh actors, using a custom static mesh actor class.

You have to cause an impact, by jumping and then falling, or bumping into the wall, but I can actually get the hit event to fire even without physics involved.

If character is just standing on the floor it wont fire hit events constantly though, you do have to jump and then land.

What is your actual use case for which you are finding non-physics hit events are not firing?

Rama

e9aaaa42dbaa56c4c71a4ea4258259f6fae694bc.jpeg

~~

**2 New Nodes For You

Create UObject

Create Primitive Component, Added to Scene at Location!**

These two nodes let you create UObjects at runtime!

Please note you absolutely must save off the return value to a variable or UE4 will Garbage Collect your new UObject within a short time!

Please especially note that if you create a Primitive Component, I actually add it to the world for you so it is visible and has collision!


**C++ Code For You**

Here's the code!



```


UObject* UVictoryBPFunctionLibrary::**CreateObject**(UObject* WorldContextObject,UClass* TheObjectClass, FName Name)
{
	if(!TheObjectClass) return NULL;
	//~~~~~~~~~~~~~~~~~
	
	//using a context object to get the world!
    UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject);
	if(!World) return NULL;
	//~~~~~~~~~~~
	 
	return StaticConstructObject( TheObjectClass, World, Name);
}


```





```


UPrimitiveComponent* UVictoryBPFunctionLibrary::**CreatePrimitiveComponent**(
	UObject* WorldContextObject, 
	TSubclassOf<UPrimitiveComponent> CompClass, 
	FName Name,
	FVector Location, 
	FRotator Rotation
){
	if(!CompClass) return NULL;
	//~~~~~~~~~~~~~~~~~
	
	//using a context object to get the world!
    UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject);
	if(!World) return NULL;
	//~~~~~~~~~~~
	 
	UPrimitiveComponent* NewComp = ConstructObject<UPrimitiveComponent>( CompClass, World, Name);
	if(!NewComp) return NULL;
	//~~~~~~~~~~~~~
	 
	NewComp->SetWorldLocation(Location);
	NewComp->SetWorldRotation(Rotation);
	NewComp->RegisterComponentWithWorld(World);
	
	return NewComp;
}


```



♥

Rama

**New Node

Get Static Mesh Vertex Locations!**

Dear CatchPhyre,

As per your request I have now made a node to get the rotated,scaled,translated positions of all vertices of a static mesh!

This node is live in the current most recent plugin version!

Please refer carefully to my picture of how to set up this node correctly!


**Pictures**

![560b4f2b24fb116ffc5c2ddfd4f04754501ad6c2.jpeg|967x742](upload://chbi83K9r7yN6RpDf900WV9lpJM.jpeg)

![75e2b513ac387b6a626ff0e14fe5743f8f3e6a2b.jpeg|1280x960](upload://gORA6cRKTZxgajgGapD8D7bjC2v.jpeg)

Enjoy!

Rama

PS



You're welcome!

**[FONT=Comic Sans MS]Congrats on your first post, welcome to the forums!**

:)

Hi Rama,

Thanks for the updated nodes. You did mention earlier about the challenges in returning vertex color information of vertices. Please bear with my ignorance :)…Still new to a lot of things here. I have made a Master Material with lots of procedural controls to allow material transitioning. But they are not giving me the aesthetic appeal I am trying to achieve.

If you are able to gather vertex positions and transformation information, why do you suggest it is difficult to set & get vertex color information in runtime? You also mentioned dynamic vs static mesh. By making a static mesh “Moveable” doesn’t it become dynamic? Also, in the Blueprint Communication content example, there is an Ice Sphere that will melt when player fires fireballs at it. Using World Position Offsets, the ice actually morphs away to little droplets. Isn’t that modifying a static mesh dynamically at runtime?

I need to tie in Dynamic Material Instancing to dynamic vertex color info. I am trying to transition material from where I click on the mesh. So for example, if I click on a spot, I will set that vertex color as red and each closest vertex to it will turn red as the fire propagates. This will reveal the underlying material.

If you can clarify my doubts further, I would deeply appreciate it. I am not able to fully understand the technical difficulties here.

Thanks,
CatchPhyre

That’s done via a material, not modifying the static mesh directly.

For your needs you should examine UE4’s material editor to see how you can accomplish your goals using World Position Offset and getting vertex info that way.

The whole idea of a “Static” mesh is that its shape and vert info is not changed at runtime :slight_smile:

But you can use the UE4 Material Editor to change the rendering of the mesh, check it out!

:heart:

Rama

Victory Re Bindable Key Nodes

**2 New Nodes

Get All Key Bindings

Rebind Key (Updates during Runtime!)
**

I’ve just about 3 hours of research to figure out how I can rebind keys at runtime using UE4’s input system! (Project Settings -> Input).

I can now successfully rebind any action mapping I want during runtime, and have it update so the new key is required to trigger the action!

And!

I am giving these nodes and all my research to you so you can make your own ** UE4 Re-Bindable Key system!**

I have tested these nodes as working in a packaged game that was content only, and had with my plugin!


**C++ Source Code**

All my C++ source code is in the download!

Download

Victory Plugin Latest Download

:heart:

Rama

Yes! Those must be integrated into the engine as default BP nodes. :eek:

Thanks a lot Rama, you crazy awesome bearded man!

Wow this looks extremely useful, thank you Rama!

I lost track of how many nodes are in this but it must be up around 75 now?? As I have said before, this is a must have plugin! :smiley:

Another fantastic tool!
I can think of some really neat applications for this :slight_smile:

-Jeremy-

I’m abit new to this part of UE4, I’ve been focusing on class Blueprints and not Level Blueprints, so I’d like to get a better understanding of what’s going on with Spawning Actors in Levels. I should also note that I mainly be doing this with AI characters.

There are two main ways I can see spawning actors in Sub Levels being useful, based on 6+ years of UE3 experience.

Firstly, if you have several people working on a map then it’s good to have a _Design level as well as _Static and _Audio levels. This was common work practice among some UE3 devs. The persistent would only hold minimal data.

On a slightly rarer note, it was something I used extensively in UE3. I was working on an open world game which was split into a number of levels, each a cube in size. Sub Levels for each could be named so that they would only appear during particular missions or parts of the story. This gave me greater control of resources over the course of the game (bloody handy on console) but also allowed me to do things like load certain enemies earlier, so that they can be seen at greater distances. Usually due to their position in the world being impossible to hide.

HOWEVER, I would never script the spawning of actors in one level via an action / node in another. An event in the sub level (usually Level Loaded & Visible / Begin Play) because the sub level would also have the behaviour logic and other data for that actor.

So, does the ‘Can / should only spawn actors in persistent levels’ affect all kinds of actors? Can I get away with doing this already with AI?

and if not, how much work would a Coder have to do to allow me to solve this problem?

Hee hee!!

:slight_smile:

Yea something like 70+ now!

Great to hear from you Jeremy!

Enjoy my Runtime Rebindable Key Nodes!

Rama

4b996f7710fbd5c76274a9a62eda2d72df9776b9.jpeg

**Full Sample Project For You

Dynamically Re-Bindable Key Menu in UMG!**

Dear Community,

I am giving you a full sample project as a download (8mb) where I’ve created a fully functional UMG Key Rebinding System!

You can click on the name of any key and then simply enter a new one on the keyboard/gamepad (just pressing the button itself that you want to be the new binding!

And I do track ctrl,alt,shift, and command!

And the list is scrollable too!


**Rebind Actions During Runtime**

And best of all, because of my Victory BP Library nodes, the changes you make in the Key Rebinding Menu instantly update the ingame character input component!

So if you rebind Jump from spacebar to page up, it takes effect instantly!

Why Am I Giving This For Free?

Because its really important feature for any game and I just finished figuring out how to do it for Solus.

I figured you would enjoy it as well, since it was honestly not that easy to do, and I had to really think about how to do both the UMG and the actual C++ code to dynamically update action mappings during runtime

:heart:


**How To Use My Menu**

Go in game and press the K key!

Click on the black and red buttons to rebind the jump button!

Add new actions any time using **Project Settings-&gt;Input**

Download (8mb)

Here’s the full project for you!

It was made in UE4 Version 4.5!

Wiki Link to Download Page

:slight_smile:

Rama

**Entire Free Sample Project for You!

Rebind Keys At Runtime!**

4b996f7710fbd5c76274a9a62eda2d72df9776b9.jpeg

This was already incredible. now to have access to rebind-able keys at runtime AND a free sample project demonstrating how to achieve that in UMG is just all kinds of awesome :D.
Key rebinding is something many players seem to want but there wasn’t any indication it was even possible to do that in UE4 (at least via blueprints), so thank you very much for another incredible addition to your plugin, and thank you for all the blueprint nodes you’ve already made available, I’m incredibly happy that your plugin exists and grateful for your continued expansion of it :)!

Hee heee!

You’re welcome!

Great to hear from you!

:slight_smile:


**Video of My Runtime Key Redbinding Project For you
**

This video demonstrates how my Runtime Rebindable Key System does actually have a scrolling feature!

You can have infinite key bindings in your list!

I also demonstrate how easy and fast it is to add new keybindings usig Project Settings -&gt; Input!

And!

**Remember that I am giving you this whole project for your own use!**

https://youtube.com/watch?v=Hj969IfWhVc


**Project Link**
https://forums.unrealengine.com/showthread.php?51449-Full-Project-Rama-s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=176136&viewfull=1#post176136

Rama

That sounds most awesome! Especially now that I’m thinking I should merge my meshes so they are as few as possible for mobile performance (although I hope I’ll only have about 50 meshes of about 20 polys each so I could probably take that hit), but yeah - with fewer, more complex, meshes my problem will be bigger. And I’d like to have accurate collision hits either way. :slight_smile:

I’ve posted a pic of my problem for clarity in my thread, don’t want to hijack this jampacked with goodness thread:

https://forums.unrealengine.com/showthread.php?50949-Can-t-get-hit-event-to-fire

The thread contains another link to a thread that seems to say the same - overlapping non-physics actors don’t respond to hit events, and checking ‘Simulation Generates Hit Events’ doesn’t do anything unless the actor is a physics actor…

You made me hopeful this is doable again! :smiley:

Pic and Testing For You

Dear Rumble,

I succeeded in doing what you appear to be trying to do using a new Third Person template project / My Character BP and the setup I show in picture below!

I am easily and accurately getting hit event locations/normals.

Do try my repro yourself and see what is going on in your specific case :slight_smile:

d96bd57af1619b1dac11b038b418079c10a60f05.jpeg