Download

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

Woohoo!

Wow this is really neat grizfb75!

Thanks for sharing your research and BP development with us!

Thanks for the pics!

:heart:

Rama

Packaged Build Upload For You

Dear Community,

I’ve released a 4.7.6 version of my plugin that contains the static lib that is needed for packaged games!

If you’ve had any issues packaging my plugin please try the May 29th 2015 build, which is 7.8mb


**More Info**

For more info, you can see this Answerhub post and my solutiion, as confirmed by the original poster.

**Anserhub**
https://answers.unrealengine.com/questions/234322/project-still-not-packaging-with-plugins-after-add.html#answer-235265

Download Link (7.8mb)

UE4 Wiki, Plugin Download Page

:slight_smile:

Rama

Stupid question, does this plugin auto update through UE4?

Hello Rama, I’m wondering whether or not the Victory Plugin needs these nodes?:

•Round vector to nearest multiple of wildcard, for example: round the x, y, and z’s to nearest multiple of 50.
•Round float to wildcard decimal places.

Maybe once marketplace plugins are released that can happen!

:slight_smile:

Great to hear from you Jamendxman3!

Round vector as you are saying was added by TK-Master! It’s called Grid Snap:

Internal Thread Link to Grid Snap


Being able to round a float to an arbitrary number of decimal places would indeed be useful!

I will work on that node soon as I can :)

Great suggestion!

Rama

Get Static Mesh Vertex Locations Using PhysX

560b4f2b24fb116ffc5c2ddfd4f04754501ad6c2.jpeg


**Works in Packaged Games by using PhysX coding!**

**C++ Source Code For You! ♥ Rama**



```


bool UVictoryBPFunctionLibrary::GetStaticMeshVertexLocations(UStaticMeshComponent* Comp, TArray<FVector>& VertexPositions)
{
	VertexPositions.Empty();
	 
	if(!Comp || !Comp->IsValidLowLevel()) 
	{
		return false;
	}
	
	//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;
	}
	//~~~~~~~~~~~~~~~~
	
	//Component Transform
	FTransform RV_Transform = Comp->GetComponentTransform(); 
	
	//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;
} 


```


Download Link (7.8mb)

UE4 Wiki, Plugin Download Page

:slight_smile:

Rama

Alright, well to save you the trouble, I’ll write you a short piece of code for rounding decimal places so you have to think less:


float FloatForRound = 3.14159265
int DecimalsToKeep = 5

FloatForRound = (int)(FloatForRound * 10^DecimalsToKeep) / 10^DecimalsToKeep

Obviously this doesn’t round to nearest at the end, but you get the point in case you didn’t automatically know what to do.

Made a minimap with your Save Pixels node:

On the Save Pixels node, can you add an output for a texture2d object?

Also, the way your node pulls data from the array does not line up with my data structure. I basically need to be able to rotate it 90 degrees and then flip it horizontally. Would it be possible to add some orientation manipulation capabilities to the node or another node? Basically need the simple rotate options that MS Paint has: Rotate 90 Counter, Rotate 90 Clockwise, Flip Horizontal, and Flip Vertical.

The same options would be useful for your Load Texture nodes as well.

Oh dont worry, I already have the code I need, just have to write the node and update my plugin :slight_smile:

Thanks though!

:slight_smile:

Rama

Oooh nice! Thanks for sharing!

Yes a “rotate image pixels” node sounds like fun, gonna take me a bit of time to do it, but it’s a great idea!

:slight_smile:

Rama

100+ Extra BP Nodes For You!

No c++ required!

No compile required!

Download and plug in!

**Latest plugin download is here: (about 8 mb) **

:slight_smile:

Rama

Rama I call on your superpowers for blueprint nodes to ask for a node I think would be very useful (I’ve been trying to do it myself but I’m just not good enough with c++ yet) Download image from url to either save to file or output Texture2D (or both) It would help me very much in a project.
And btw thank you for your awesome plugin I’ve been using it a lot ^^

wow that’s quite the request! I’m gonna process some of my other node requests and get to that one soon as I can :slight_smile:

Rama

Get Float As String With Precision Using Epic’s FText Helpers

8972b9ac2a0bda258dccf2e561750858aa4c6454.jpeg

Dear Community,

I’ve updated my Get Float As String With Precision node to

  1. Be pure (no exec chain)

  2. Utilize Epic’s FText C++ code to leverage all of their hard work on float decimal precision.

  3. Add bool to make the leading 0 optional, so 0.5 could be shown as 0.5 or .5 depending on your preferences!

Yay!


**My C++ Code For You!**

Here's how it works in C++ !



```


void UVictoryBPFunctionLibrary::StringConversion__GetFloatAsStringWithPrecision(float TheFloat, FString & FloatString, uint8 Precision, bool IncludeLeadingZero)
{ 
	FNumberFormattingOptions NumberFormat;					//Text.h
	NumberFormat.MinimumIntegralDigits = **(IncludeLeadingZero) ? 1 : 0;**
	NumberFormat.MaximumIntegralDigits = 10000;
	NumberFormat.MinimumFractionalDigits = **Precision;**
	NumberFormat.MaximumFractionalDigits = **Precision; **
	FloatString = FText::AsNumber(**TheFloat**, &NumberFormat).ToString();
}


```



**Latest plugin download is here: (about 8 mb) **

Enjoy!

:slight_smile:

Rama

Hi Rama,

Thanks a lot for your Lib. It’s great.
I have an issue with Capture 2D Save Image. I have an access violation in msvcr120.dll
I tried to stop capture every frame, add a boolean to prevent multiple save, but no way. Sometimes, it’s work but no always.

f04a75f1d55ac3c3cb06b7b3004ac5c359d63a46.png

This will save me some effort and BP space, thanks!

You’re welcome!

I have pm’ed the Victory Dev that made that node, will see what they say :slight_smile:

Rama

BP Node to Get Your Computer’s IP Address!

Dear Community,

I’ve finally succeeded at implementing a node that many have been trying to implement since the Beta!

This is a BP node that gets the IP address of your computer!

My node relies on http://api.ipify.org, a free and easy way to get your current IP address.

Because this node involves an HTTP request I can’t make it a static library node, so I instead made a VictoryPC class that contains only this functionality.

You can easily re-parent your current player controller blueprint to use my plugin VictoryPC class!

File->Reparent

and if you are not using a PC already, make sure to go to World Settings and use my VictoryPC as your player controller!

As long as my Victory BP Library is an active plugin for you, then this VictoryPC class will show up!

Download:


**Celebration!**

Yay!

Now we can all get the IP address of the local computer for use with multiplayer games or webserver activities!

Enjoy!

Rama

Pic

Here’s the setup you should create in your Blueprinted version of my VictoryPC!

2902549c08d489d31bb43f8a7049793370d4801e.jpeg


**C++ Source Code For You**

Here is the C++ source code I wrote just earlier today!



```


bool AVictoryPC::VictoryPC_GetMyIP_SendRequest()
{
	FHttpModule* Http = &FHttpModule::Get();
	
	if(!Http)
	{
		return false;
	}
	 
	if(!Http->IsHttpEnabled()) 
	{
		return false;
	} 
	//~~~~~~~~~~~~~~~~~~~
	
	FString TargetHost = "http://api.ipify.org";
	TSharedRef < IHttpRequest > Request = Http->CreateRequest(); 
	Request->SetVerb("GET");
	Request->SetURL(TargetHost);
	Request->SetHeader("User-Agent", "VictoryBPLibrary/1.0");
	Request->SetHeader("Content-Type" ,"text/html");
 
	Request->OnProcessRequestComplete().BindUObject(this, &AVictoryPC::HTTPOnResponseReceived);
	if (!Request->ProcessRequest())
	{
		return false;
	}
	  
	return true;
}
	
void AVictoryPC::HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
	this->VictoryPC_GetMyIP_DataReceived(Response->GetContentAsString());
}
 


```



**Latest plugin download is here: (about 8 mb) **

Enjoy!

:slight_smile:

Rama

4.8 In Progress

Please know that I am upgrading my Victory plugin to 4.8 as fast as I can, I will post again when I have finished!

:slight_smile:

Rama

In the meantime I have this working. I took the errors from the victorygamemode and just fixed them (meaning I just made the virual functions not overridable it was throwing an not-overridden error in the gamemode header). THIS IS NOT AN OFFICAL FIX, IT MIGHT CRASH, CORRUPT YOUR GAME OR OTHERWISE ITS SIMPLY A VERSION THAT WORKS IN 4.8 AND IN NO WAY AM I CONNECTED TO RAMA.

https://mega.co.nz/#!DxtExJJC!tcs6I1mRpjffU0xb3wNRcuBicgZvOnSyTGBRrWlljYo