Download

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

Hi there!

What is the benefit of this function / BP node?

Any sort of pictoral example?

Thanks!

Rama

Yes I can surely do that, but can you be specific about what you want this node for?

If you just want to store data you should use a BP of the GameInstance class, or you can use the globally accessible Game Data object that I describe in my wiki here, already implemented by Epic for storing data in a UObject format:

https://wiki.unrealengine.com/Global_Data_Access,_Data_Storage_Class_Accessible_From_Any_CPP_or_BP_Class_During_Runtime!

:slight_smile:

Rama

I don’t have a pictorial example, but it allows you to update any Texture2D surface with new color data at runtime in a threaded manner (the render command puts it into the rendering thread, so the game thread won’t hitch). I use it myself for updating a Texture2D with large amounts image data from disk so it won’t hitch/pause the game thread.

It could be useful for a lot of things, like doing a live painting application (would need to figure out UV raycasting, though, to know where to put the color data when the user presses), bullet holes/slashes on skinned meshes (again needs UVs tho), or any number of things.

Oh that does sound neat!

Well if you’d like, you could download my latest plugin version, add the relevant code to the specifications that you know are correct, and then you could pm me when ready!

Have fun today!

Rama

Absolutely :slight_smile: I’ll get that sorted.

One other thing that the command can be useful for is to easily create an RTS fog of war (I go over this a bit here).

I’d love to help sort out raycasting against UVs, especially for skinned characters, as that’d give the ability to do dynamic, location-accurate decals (not Decals as in the object, just updated texture colors) on skinned meshes when combined with the texture update method. That would be great for doing damage from cuts or even projectiles and have them show up in the right spot. If done right you could even update normals or other maps to change how the material looks for those areas that were updated.

Okay great, let me know when the BP code is tested and ready to go!

Regarding the matter of ray casting against UVs , I don’t have the time at the moment to look deep into this, so if you find out any leads on this let me know! Might require some engine modifications :slight_smile:

Rama

**Rama Victory BP Library Nodes

Get Current Operating System Time

Get Milliseconds/Seconds/Minutes/Hours Passed Since Previous Recorded Time!**


**Real Use Case**

I used these two nodes with a client just last night to help them make a game where they could record the amount of real world time that has passed since someone last played their game!

So their goal was to know exactly how many hours minutes and seconds have passed since  a player logged of their game last!

It was really easy actually thanks to my Get OS Time nodes!

**Here are the steps:**

1. make a new save object with a simple String variable

2. when saving the object, use my Get OS Time node and use the return value

3. When loading, use my Get Time Passed Since Last Recorded Time node!

That was it!

Here's a picture for reference!

![OSUpdate.jpg|1280x960](upload://b5ScGykuHpKI4gWMZuhiUcM40db.jpeg)

Enjoy!

Rama

[COLOR="#0000FF"]Draw Thick Circle With Axis Control[/COLOR]

New node for you!

With this node you can draw circles!

And you can control their thickness, as well as how many points make up the circle!

You can also have axis control!

So you can draw circles horizontally, vertically, at angles, any way you like, with convenient BP node inputs!

See pics!

af68277ba636b7e04fc6af9b982616b2340402e4.jpeg

DrawThickCircle4.jpg

Rama

Sorry for the late reply, i forgot i had commented here :slight_smile:

Thanks for the link, it might be useful in the (near) future.

I’m currently trying to think of a way to handle ‘upgrades’ for the player, i want to create a ‘upgrade tree’. Since each of the upgrades do different things i figured it would be best to create different BPs when necessary. However because i don’t know how many upgrades will have to be created i thought it would be better to use Object as a base class instead of Actor. If you know a better way of doing this please let me know, i’m still not sure if my way is a good way to go :slight_smile:

What I would do is make a BP Structure asset, and then put the skill tree vars there

And then you can use a Dynamic Array of your BP Structure type!

right click->Blueprint->Structure

So now you have a custom data structure that you can easily copy/paste/replace/break, and yet you can have as many as you want due to the dynamic array!

Rama

New BP Node

Get Player Unique Net ID

While working with a client earlier today in Blueprints I came to realize that the essential variable, PlayerID, present in the PlayerState class, is not exposed to Blueprints!

I’ve submitted a pull request to have Epic address this, but in the meantime, I’ve also given you a BP node that gets you this very important variable!

You can use the PlayerID to uniquely identify players in a networked game using Blueprints!

This is an essential variable that lets you assign values to each unit to tell each player who owns which unit :slight_smile:


**Using it**

In your game mode in the post login, when you receive the player, you can then use my node to obtain that player's Net ID, and assign that unique ID wherever you like as an ID variable.

Make sure to replicate the variables that are storing the unique Net ID so all players on all machines know who owns which units!

![PlayerID.jpg|1034x633](upload://fnybdEiCFWxQiaSrLdayyxiwgbb.jpeg)


Have fun!

Rama

That’s what i started out with, but i soon realised that most (if not all) upgrades will do different things so using one class + structs would make things really messy. For example, one upgrade might be a short boost in health, while another upgrade will permanently increase health regeneration, yet another one allows faster movement speed in certain areas. What i’m currently doing is spawning an upgrade that receives a notification when bought together with the buying playercontroller so it can do whatever it does.
I figured it would be easier to use different BPs for the upgrades so it’s easier to keep track of what a certain upgrade does and where things might be going wrong.

ooooh

yea the big complication with my suggestion is that you cant add functions to Structures in BP, but you can in C++

So I can do everything I can do in a class in a USTRUCT in c++, but not so in BP, yet, maybe Epic will fix this at some point!

Once you can make BPs of UObjects I’d recommend going the Uboject route

having an Actor BP for every upgrade is pretty intense :slight_smile:

Rama

Get Screen Resolutions Now Works in Packaged Game

My Get Screen Resolution Nodes works in packaged games now!

In 4.3 the core function in C++ was not working in BP, but now it is! Epic fixed it!

Enjoy getting the screen resolutions of the end user’s hardware in your game now!

It is obtained from the user’s display adapter directly! No guessing or preset values!

:slight_smile:

d4117a7a04ee5f316cbeae35c6e681739e2c00f8.jpeg

https://wiki.unrealengine.com/File:VictoryPlugin.zip

Rama

I did not know there is a structure BP until this thread. Good Info.

Anyway Rama, a dumb question, I just need overwrite the last plugin with the latest plugin?

Will existing Victory nodes (using previous version of your plugin) need reconnecting, or jut work out of the box?

I used a few of your plugin like OS clock/Time & some others I forgot.

If you download the latest version of my plugin you will only be getting new nodes and your previous ones will still work!

top secret: my latest download already has a get vertices of static mesh node that I"ve not yet ahem officially publically announced yet

Thanks Rama.

Now, we only need a function node that make coffee…

Blueprint Node to access Vertex information of static meshes / collision blocks

Hi Rama,

I am currently working on my graduate thesis on fire propagation. My thesis explores what I have coined “material based fire propagation”; fire reacts and spreads differently when interacting with different surfaces. In the process, I am hoping to build an intelligent fire system. As a first step, I need to be able to access the vertices of a mesh so that i can propagate emitters along those vertices. What I have achieved so far is to be able to propagate along spline meshes. This is because of blueprint nodes available to calculate number of points along a spline, point locations along a spline and so on. But there are no blueprints available to do similar things with other types of meshes (e.g. static meshes). I am aware of other threads where you had posted codes to help people integrate it into their work. One such example, being “https://forums.unrealengine.com/showthread.php?8856-Accessing-Vertex-Positions-of-static-mesh”. However, when I tried to do the same with the codes posted, I keep getting compile errors which points to some default unreal api header files. Being primarily a texture artist and designer, I have difficulty trying to get codes to work and I am very rusty with c++. Would it be possible to help me out with blueprint nodes that can calculate and access vertex information of static meshes please? I am sure other artists and designers would benefit from mesh “vertex info access” blueprint nodes.

Thanx,
CatchPhyre

Hey Rama,

I think I got your victory plug-in to work. I am gonna play with it to see what it can do :). Thanks alot for the plug-in!!!

Cheers,
CatchPhyre

Thx for the plugin Rama!