Download

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

New Plugin Version, IsValidIndex crashfix

Dear Community,

I’ve posted a new version of my Victory BP Library where IsValidIndex no longer crashes.

Again please note the plugin is now on UE4 version 4.9.0**
**


**Latest plugin download on the UE4 Wiki: (15.22 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.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 clicking this link will not start a download instantly, it will just take you to the Media Fire file description.


**Note on Packaging Victory Plugin**

https://forums.unrealengine.com/showthread.php?3851-(39)-Rama-s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=368790&viewfull=1#post368790

Enjoy!

:)

Rama

Thing is, I was using Unreal 4.9.0 already.

I just downloaded your newest version, the one from today, and now I get the following error message:

Rebuilding them as the engine suggests does not work. It crashes on build/cannot be built.

Perhaps it’s important I mention I’m on Mac OSX. Are these Mac OSX compatible?

I’ve been using the BP library for a while and recently tried your engine plugin since I noticed it was updated for 4.9. Been playing around with the instanced mesh creation to test the limits and so far it is working great =D; Wish I had it installed sooner!

In the original instances I was using the node, everything was fine with the first fix.
Further usage caused crash :frowning:
Found the issue and fixed it, but before I get the chance to send it to Rama, he’s already sorted it and contacted me!

http://i0.kym-cdn.com/photos/images/original/000/168/578/3ONqv.gif

I guess I also fixed this once before for Linux dedicated server build and I completely forgot. Too much on the mind. I’m posting this in case it is useful for someone else.

I’d appreciate it if someone who has Mac OS can build the plugin from source code, and post it to me by PM. I can’t help folks with Mac OS otherwise :slight_smile:


@Parvan

Thank you for sharing your Linux research / confirmation of Stormwind's fixes!

Thank you again for your contributions Kris!

:slight_smile:



[QUOTE=Aesais;372221]
I've been using the BP library for a while and recently tried your engine plugin since I noticed it was updated for 4.9. Been playing around with the instanced mesh creation to test the limits and so far it is working great =D; Wish I had it installed sooner!
[/QUOTE]


Very nice to hear from you Aesais!

**Welcome to the UE4 Forums!**

:)

Rama

29133cff34e19b6d5f6450f26dd03f0fbc0104a7.jpeg

Get a Hard-drive accurate listing of all Save Game Objects!

Dear Community,

I’ve released a new node that gives you a hard-drive accurate listing of all save game files that you’ve created!

I am referring to UE4’s Save Object system!

You can now access a full listing in a developer build or in a packaged game, to know all the save files that have been saved!

These save files are stored in GameDir/Saved/SaveGames

26bed6e9726e2f5bd0c108371726fef9d0d800a1.jpeg


**Use Case: UMG Menu of All Save Games**

The best use case of this new BP node is to enable you to supply the end-user with a hard-drive accurate listing of all save game files currently residing in your game's saved/savegame directory!

Now you can enable users to "see" the contents of the device's harddrive through UMG!

UE4 Blueprint Save System?

If you did not know, you can use UE4’s save system like this:

  1. Create a new blueprint based on SaveGame
  2. Add your variables to the blueprint that you want to save the values of
  3. in level BP or some other blueprint, create a save game object, and set the values of that object
  4. Save this object to a Save Game Slot, as shown in my pictures
  5. You can load a save game object from a Slot name at any time!

6.** Now with my new Victory BP Library, you can obtain a full listing of all existing save games as stored on your computer’s hard disk! **

This let’s you know whether a file exists before you try to load it! You can also find out how many save files exist from within BP!


**Latest plugin download on the UE4 Wiki: (15.22 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.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 clicking this link will not start a download instantly, it will just take you to the Media Fire file description.


**Note on Packaging Victory Plugin**

https://forums.unrealengine.com/showthread.php?3851-(39)-Rama-s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=368790&viewfull=1#post368790

Enjoy!

:)

Rama

Dear Community,

4.9 Update:

As of 4.9 I removed the velocity correction code because changes to the engine made this correction unnecessary.

You still have this option for older plugin versions prior to 4.9.0 :slight_smile:


I've finally cracked the code of drawing accurate animated vertex positions for character meshes!

My node features a "velocity correction" system which causes the animated vertex positions to line up with your moving, animating character!

Now you can get the positions of the vertices of your character' mesh, as these vertices animate!

You can run this node in tick of your character, or in my case I use the level BP because my Victory BP Library nodes can be used anywhere!

![AnimatedVertexLocations2.jpg|1280x960](upload://7R9xFuIwIbZiD46nmLHl54K8r57.jpeg)

My C++ Code For You

Here’s the C++ magic that I used to get the character’s animated vertex positions to line up even while moving, jumping, and falling!

Please note this node can also be used with non-pawns / non-characters, any SkeletalMeshComponent will work!



bool UVictoryBPFunctionLibrary::AnimatedVertex__GetAnimatedVertexLocations(
	USkeletalMeshComponent* Mesh, 
	TArray<FVector>& Locations,
	bool PerformPawnVelocityCorrection
){
	if(!Mesh || !Mesh->SkeletalMesh)  
	{
		return false;
	}

	//~~~~~~~~~~~~~
	Locations.Empty(); 
	//~~~~~~~~~~~~~
	 
	Mesh->ComputeSkinnedPositions(Locations);
	
	FTransform ToWorld = Mesh->GetComponentTransform();
	FVector WorldLocation = ToWorld.GetLocation();
	
	**//Pawn Velocity Correction**
	UPawnMovementComponent* MovementComp = nullptr;
	if(PerformPawnVelocityCorrection)
	{
		APawn* Pawn = Cast<APawn>(Mesh->GetOwner());
		MovementComp = (Pawn) ? Pawn->GetMovementComponent() : NULL;
	}
	bool DoVelocityCorrection = PerformPawnVelocityCorrection && MovementComp;
	**//Pawn Velocity Correction**
	 
	for(FVector& Each : Locations)
	{
		Each = WorldLocation + ToWorld.TransformVector(Each);
		if(DoVelocityCorrection)
		{
			**Each += MovementComp->Velocity * FApp::GetDeltaTime();**
		} 
	} 
	
	return true;
}



**Latest plugin download on the UE4 Wiki: (15.22 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.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 clicking this link will not start a download instantly, it will just take you to the Media Fire file description.


**Note on Packaging Victory Plugin**

https://forums.unrealengine.com/showthread.php?3851-(39)-Rama-s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=368790&viewfull=1#post368790

Enjoy!

:)

Rama

Could you tell me how I can do that, please? Thanks, Rama - all looks very neat from what I can see!

EDIT:
As in, I’m having trouble compiling even a clean project, so I’m not sure I know what I’m doing. ^^’

If anyone knows how to build a plugin for UE4 from source code using Xcode, any help would be appreciated. The documentation is… lacking. It just says “build it. It will work”. It doesn’t work.

It would be great if someone using Mac OS could assist Shrooblord with this :slight_smile:

Rama

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 on the UE4 Wiki: (15.22 mb) **


**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 clicking this link will not start a download instantly, it will just take you to the Media Fire file description.

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

Note on Packaging Victory Plugin

Enjoy!

:slight_smile:

Rama

Hi Rama

your plugin only work packing for win32 or wi64?
How can i pack my game for Android or Html 5?

I have tried everything you listed except for HTML5 and they all work. It’s been a while since I’ve tried Win32 or Android. I can confirm Linux works with the fixes I wrote about in this thread.

I create a new project in C ++ put the plugin inside of folder the Unreal 4.9 and the project also, create a simple actor with the node “Texture 2D Load From File” compile x64 works but for others give error, if I delete the node it compiles ok

Hey rama, found a bug with the newest version (Sep 4th download) and I have tested it in 2 different projects. If you get the Create Object function and cast from it, it will crash PIE with: Fatal error: [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.9\Engine\Source\Runtime\CoreUObject\Private\Templates\Casts.cpp] [Line: 11] (insert cast line here). Engine: 4.9.1

Is there a way to have a node that let’s you use an obj file just like we can do with textures from external folders? ( With a UV so I can use the “GetTextureFromPath” node to apply texture to it using dynamic material instance ).
It can be an awesome addition to my game’s MapBuilder.

Create Object is Deprecated, Use Construct Object From Class (4.9)

In 4.9 my Create Obj node is obsolete, as Epic has finally (yay!) added this node:

"
In Blueprints, you can now spawn baser object types (not just actors/components). The Construct Object From Class node takes a class and creates a new object of that type, similar to Spawn Actor From Class (except for types that are not an actor).

The “Outer” input will serve as the new object’s owner, which controls the lifetime of the created object.
For actor classes, you’ll still use the Spawn Actor From Class node. And for widgets, you’ll use the Create Widget node. In a future release we may try to combine these different features.
"


**Deprecation Messages in BP Libraries**

I am going to add a deprecation warning to my current node.

For anyone who is curious how to do this, here's the .h code for my CreateObject node with deprecation. warning



```


UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (**DeprecatedFunction**, **DeprecationMessage**="Epic has introduced Construct Object as of 4.9.0, I recommend you use that instead! -Rama", HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject"))
	static UObject* CreateObject(UObject* WorldContextObject, UClass* TheObjectClass);


```


:)

Rama

Please dont put my plugin at the engine level, just put it at the project level :slight_smile:

I’ve had no trouble compiling for win32 using Texture2D Load From File, but I have not tested HTML5 / mac due to my own personal time limitations (I am doing all this Victory BP Library stuff without monetary compensation of any kind).

:slight_smile:

Rama

Can you explain more what you mean? What is the exact use case / functionality you want?

:slight_smile:

Rama

Powerful Victory BP Node for Physics / Collision Analysis!

Dear Community,

I’ve just released two new nodes to help you with all of your** collsion surface distance checks**!

These nodes let you easily tell how far a given point is from the actual PhysX surface of any UE4 game object with collision / primitive component!

I’ve even given you a node that let’s you directly check the distance between the physical surfaces of two objects!

See pics!

These nodes work with Characters and Skeletal Mesh actors that have physics assets!


**Distance Between Surfaces Of Two Objects**

![SurfaceDistanceBetweenBP.jpg|1275x712](upload://ywRLLph4drEwZXiZR6GnrLeasFk.jpeg)

World Point Distance To Collision Of Any Object

42686311a9773f2c63184ad34db5dc74c22ddbb9.jpeg


**My C++ For You**

Here's the C++ code for my algorithm to get the distance between the colliding surfaces of any two objects!



```


float UVictoryBPFunctionLibrary::GetDistanceBetweenComponentSurfaces(UPrimitiveComponent* CollisionComponent1, UPrimitiveComponent* CollisionComponent2, FVector& PointOnSurface1, FVector& PointOnSurface2)
{
	if(!CollisionComponent1 || !CollisionComponent2) 
        {
            return -1;
        } 

        //Closest Point on 2 to 1
	CollisionComponent2->GetDistanceToCollision(CollisionComponent1->GetComponentLocation(), PointOnSurface2);
  
	//Closest Point on 1 to closest point on surface of 2
	return CollisionComponent1->GetDistanceToCollision(PointOnSurface2, PointOnSurface1);
}

_


```



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


**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 clicking this link will not start a download instantly, it will just take you to the Media Fire file description.

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

Note on Packaging Victory Plugin

Enjoy!

:slight_smile:

Rama