• News

• Industries

• Learning & Support

• Community

• Marketplace

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

Get Static Mesh Vertex Locations Using PhysX

``````
**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++)
{
}

return true;
}

```

``````

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.

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

Thanks though!

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!

Rama

100+ Extra BP Nodes For You!

No c++ required!

No compile required!

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

Rama

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

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();
}

```

``````

Enjoy!

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.

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

Rama

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!

``````
**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!

``````
**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);

if (!Request->ProcessRequest())
{
return false;
}

return true;
}

void AVictoryPC::HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
}

```

``````

Enjoy!

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!

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

4.8 Released! (6/10/15)

Dear Community,

I’ve completed the Victory Plugin upgrade to 4.8 !

This is the 6/10/15 build of the plugin that you can download from the Epic Wiki!

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

Enjoy!

Rama

@Nsmonia ~ Thanks for sharing!

I simply removed my VictoryGameMode class since Epic's new changes make it unnecessary.

If anyone has an issue because of this, (can't load a BP from removed C++ class), use [Nsomnia's version](https://mega.co.nz/#!DxtExJJC!tcs6I1mRpjffU0xb3wNRcuBicgZvOnSyTGBRrWlljYo) and then you can reparent back to regular GameMode.

Again if this is an issue for anyone just let me know :)``````

Thanks rama, was scared I was going to ruin my project if I started developing in 4.8 using my half-baked fix. bows down Your speed is explanatory.

Hi Rama,

I don’t think your newest version made it to the wiki - your last upload was on the 7th, for the HTTP patch I assume. Here’s a screenshot:

http://puu.sh/ikm5N/a8c3951679.png

What am I doing wrong? Q_Q

Unfortunately I can’t build my project with Rama’s June 10th Victory Plugin, but it works with Nsomnia’s quick fix. I also did reparent my own GameMode to the regular GameMode class. I wish I could copy the error log, but it dissappears as soon as the error message pops up telling me to try rebuilding from source.

``````

The following modules are missing or built with a different engine version:

UE4Editor-VictoryBPLibrary.dll

Would you like to rebuild them now?

``````

Same for me. I’ll have to stick to 4.7 for now.