Download

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

Hee hee!

I wish more schools used UE4 to help people learn C++, it would be so much more interesting to visually see your coding unfold, and provides an inspiration to want to code more so you can make more game happen!

:slight_smile:

Rama

**Improved Get Vertex Locations of Static Mesh

Now works in Packaged Games**

560b4f2b24fb116ffc5c2ddfd4f04754501ad6c2.jpeg

My C++ Code For You

See my PhysX wiki for the basic build.cs setup:

Here is the code I wrote to get all of the transformed vertex positions using the Body Instance and PhysX code!

I am doing many safety checks to ensure the Body Instance data is valid before utilizing it, and the result is that now you can get accurate vertex locations in packaged games!



//~~~ PhysX ~~~
#include "PhysXIncludes.h"
#include "PhysicsPublic.h"		//For the ptou conversions
//~~~~~~~~~~~

//Get Transformed Vertex positions of any static mesh! -Rama
bool UVictoryBPFunctionLibrary::GetStaticMeshVertexLocations(UStaticMeshComponent* Comp, TArray<FVector>& VertexPositions)
{
	
	if(!Comp || !Comp->IsValidLowLevel()) 
	{
		return false;
	}
	//~~~~~~~~~~~~~~~~~~~~~~~
	
	//Component Transform
	FTransform RV_Transform = Comp->GetComponentTransform(); 
	
	//Body Setup valid?
	UBodySetup* BodySetup = Comp->GetBodySetup();
	
	if(!BodySetup || !BodySetup->IsValidLowLevel())
	{
		return false;
	}  
	
	//Get the Px Mesh!
	PxTriangleMesh* TriMesh = BodySetup->TriMesh;
	 
	if(!TriMesh) 
	{
		return false;
	}
	//~~~~~~~~~~~~~~~~
	
	//Number of vertices
	PxU32 VertexCount = TriMesh->getNbVertices();
	
	//Vertex array
	const PxVec3* Vertices = TriMesh->getVertices();
	
	//For each vertex, transform the position to match the component Transform 
	for(PxU32 v = 0; v < VertexCount; v++)
	{ 
		VertexPositions.Add(RV_Transform.TransformPosition(P2UVector(Vertices[v])));
	}
	
	return true;
} 



**Latest plugin download on the UE4 Wiki: (7.16 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip

Enjoy!

:)

Rama

There’s no way to know which engine version plugin is meant for on download page?
I need version that supports 4.8

I would like to request a function to get the total cost of a navmesh path and then return the vector of a point X cost along that path. I hope that made sense. Thanks for everything you are doing.

alright so this idea is for the Dynamic Level Generation, Right? so you don’t run into everything and get stuck. If so, may I use this?

I list more recent engine version update times here:

Plugin Release Dates and UE4 Engine Versions

For 4.8 try going back a ways

You should consider upgrading btw, lots of great stuff in 4.9 :slight_smile:

Rama

Okay I"ve written this down :slight_smile:

Not sure I understand how your question relates to displaying verticies, and yes you are welcome to use my plugin, just please credit me somewhere appropriate

:slight_smile:

Rama

UPDATE ~ More Victory BP Nodes accepted into the Engine!

Dear Community,

I am happy to say that the 3 nodes below were accepted into the Engine, and will hopefully be in 4.11 !


**Two-Way Conversion Now!**

I've added 3 new nodes to my Victory BP library that enable you to convert Vectors, Rotators, and Colors **back from string data** into the original primitive variable types!

String Data Validity Check

I supply a bool to let you know if the string data was solid or not and was able to be converted properly.

Like on Twitter:

Github Submission to the Engine
https://github.com/EpicGames/UnrealEngine/pull/1795


**Latest plugin download on the UE4 Wiki: (7.16 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip

Not using the latest engine version? Check out my wiki section on which plugin release dates go with which engine version!

**Plugin Release Dates and UE4 Engine Versions**
https://wiki.unrealengine.com/Rama%27s_Vertex_Snap_Editor_Plugin#Plugin_Release_Dates_and_UE4_Engine_Versions

Victory Plugin Binaries for Packaged Games


**Victory Plugin on Media Fire**

**If your browser is not updating the Wiki download page** to the most recent version, you can use my alternative Media Fire download link!

Please note the mediafire version includes both the editor and packaged game binaries in the same file ♥ Rama

https://www.mediafire.com/?ieovbd5l9d7yub2

Donations

Donations can be sent to me via:
http://lightningfitness.org/donate/

Enjoy!

:slight_smile:

Rama

PS: Please note my mediafire link has changed, please use above link to get most recent version :slight_smile:

My main engine version is the newest, but some of my old projects are on older versions and I can’t open them without correct plugin.

Hey, have you thought about adding support for android/iOs interstitial ads?

Thanks for the idea! You are finding the current ad nodes in UE4 are not sufficient?

Rama

Destroy Individual Destructible Mesh pieces After Fracture!

Dear Community,

This node is sufficiently cutting-edge that I decided to make a video of it!

This node allows you to destroy individual pieces of a destructible mesh after it has been fractured!

Enjoy the video!

Rama

**Latest plugin download on the UE4 Wiki: (7.16 mb) **

Not using the latest engine version? Check out my wiki section on which plugin release dates go with which engine version!

Plugin Release Dates and UE4 Engine Versions


**Victory Plugin Binaries for Packaged Games**

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

Victory Plugin on Media Fire

If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!

Please note the mediafire version includes both the editor and packaged game binaries in the same file :heart: Rama


**Donations**

Donations can be sent to me via:
http://lightningfitness.org/donate/

Enjoy!

:)

Rama

Hi, i found problem in “Load String Array from file”. Patch cant read string if there is characters inside like āšģķīļūņžē e.c.
Is there any way how to fix that?

[QUOTE=dabulina;454436]
Hi, i found problem in “Load String Array from file”. Patch cant read string if there is characters inside like āšģķīļūņžē e.c.
Is there any way how to fix that?

Hi there, thanks for the video! Explains the issue very clearly :slight_smile:

Under the hood I am using Epic’s function:

FFileHelper::LoadANSITextFileToStrings

I presume the characters you are entering are not getting converted correctly within this function.

I could try using a different function, which seems like it would support your character set better:



/**
	 * Load a text file to an FString.
	 * Supports all combination of ANSI/Unicode files and platforms.
	 * @param Result string representation of the loaded file
	 * @param Filename name of the file to load
	 * @param VerifyFlags flags controlling the hash verification behavior ( see EHashOptions )
	 */
	static bool LoadFileToString( FString& Result, const TCHAR* Filename, uint32 VerifyFlags=0 );


However it only loads to a single string, I would need to parse the file myself into an array.

I can work on doing this at my next availability :slight_smile:

Rama

New Nodes for Mathematical Planes! Create Plane, PointDistanceToPlane, and IsPointInPlane!

Dear Community,

I’ve added some new nodes to make working with Planes (math structure) easier in Blueprints!

Using my new Create Plane BP node you will find it very easy to construct planes for use with Draw Debug Plane and Project Point to Plane, etc!

I’ve also given you a very easy coplanarity test via IsPointOnPlane!

Enjoy!

Rama

b1a0a5de5ae62c95931410b090e45b726d42942a.jpeg


**Latest plugin download on the UE4 Wiki: (7.16 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip

**Plugin Release Dates and UE4 Engine Versions**
https://wiki.unrealengine.com/Rama%27s_Vertex_Snap_Editor_Plugin#Plugin_Release_Dates_and_UE4_Engine_Versions

Victory Plugin Binaries for Packaged Games


**Victory Plugin on Media Fire**
https://www.mediafire.com/?ieovbd5l9d7yub2

Please note the mediafire version includes both the editor and packaged game binaries in the same file ♥ Rama

Donations

Donations can be sent to me via:
http://lightningfitness.org/donate/

Enjoy!

:slight_smile:

Rama

Hey Rama! I love your work. But I have a problem, I’ve gone back to using UE4.7.2, and found that Victory was deleted when I installed new versions of UE4. So I downloaded Victory again to put back into 4.7.2 and activated it, but now the project I was working on won’t open, as the “modules are missing or built with a different engine version” and there is no line in any config file referencing Victory at all, I may have used a Victory blueprint node, but no matter what I do I can’t open my project! I’ve looked at the release date for 4.7.2 and downloaded Victory from https://wiki.unrealengine.com/File:VictoryPlugin.zip that matches the date, but it still is wrong.

Welcome to the forums Scruffy!

I would recommend you use 4.10 engine version with my latest plugin release, so that you can open the project, and then find the nodes. Is there a reason you have to stay on 4.7.2 ?

Good luck!

Rama

**Get Closest Actor Of Class In Radius of Location

Get Closest Actor of Class In Radius of Actor**

These nodes are great for use with AI calculations!


**Latest plugin download on the UE4 Wiki: (7.91 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip

:)

Rama

First of all, absolutely love this plug-in, has made my life sooo much easier!
Just wanted to mention something with the Real World Time nodes. The Get Current OSTime node return string doesn’t include milliseconds, yet if I append the return string to include .<milliseconds> the Get Time Passed Since Previous Time node accepts it and works as intended, outputting the time passed in milliseconds. Was it intentional to not include milliseconds in the Get Current OSTime? If so, might be worth mentioning how to include it manually in the description since it took me longer than I’d like to admit to figure out that this was the problem.

Hi Rama, just to let you know the plugin you made for me has now seen action on TV! So thanks for that. A small question - does your ip node get the ip on the local network or the internet? (I need to get the local one)

Thanks again!

Hi there!

Welcome to the forums!

The UE4 function itself declares that it does not return milliseconds:



/**
	 * Returns the string representation of this date using a default format.
	 *
	 * The returned string has the following format:
	 *		yyyy.mm.dd-hh.mm.ss
	 *
	 * @return String representation.
	 * @see Parse, ToIso8601
	 */
	CORE_API FString ToString() const;


Yet, as you say, the parsing function which takes the string accepts it if milliseconds are added onto the end.

For the sake of the node itself it makes more sense if the string includes the milliseconds :slight_smile:

BP node Update

So I’ve updated my BP node!



FString UVictoryBPFunctionLibrary::RealWorldTime__GetCurrentOSTime( 
	int32& MilliSeconds,
	int32& Seconds, 
	int32& Minutes, 
	int32& Hours12,
	int32& Hours24,
	int32& Day,
	int32& Month,
	int32& Year
){
	const FDateTime Now = FDateTime::Now();
	
	MilliSeconds = 		Now.GetMillisecond( );
	Seconds = 			Now.GetSecond( );
	Minutes = 				Now.GetMinute( );
	Hours12 = 			Now.GetHour12( );
	Hours24 = 			Now.GetHour( ); //24
	Day = 					Now.GetDay( );
	Month = 				Now.GetMonth( );
	Year = 				Now.GetYear( );
	 
	//MS are not included in FDateTime::ToString(), so adding it
	//The Parse function accepts if MS are present.
	FString NowWithMS = Now.ToString();
	NowWithMS += "." + FString::FromInt(MilliSeconds);
	return NowWithMS;
}


It will be in my next release :slight_smile:

Rama