Download

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

Rama, did you maybe considered creating custom UK2Node classes for all those TMaps and TPairs nodes? it would allow you to make all those nodes more type universal

e119ebd14907cb51fda463c9627e2c0c489bcc64.jpeg

Three New Nodes From Kris!

**Save Image To Disk From Capture Component 2D

Save Image To Disk From Capture Actor

Load Image By Extension**


**Note on Using the Save Image Nodes**

For the Save Capture Component 2D Image to Disk node, make sure to specify the image format you want **by including the appropriate extension, such such as .bmp, .jpg, .png**

If you are having trouble getting the image to save, try a different extension :)

Save Thumbnails / Snapshots from Capture Components!

Quoting Kris:

"You can see the result in the following picture.
Each of the thumnails are generated via a custom scene capture component, saved and loaded as required:


(Picture is from Kris’s project called Ground Branch, http://www.groundbranch.com/ )

I’m passing them into a material to remove the background (green screening) and then using set brush material.

Should save people some time."


**Thanks for the new nodes Kris!**

Being able to save screenshots from a CaptureComponent2D in Blueprints is so very useful!

:)

**UE4 Wiki, Plugin Download Page**
https://wiki.unrealengine.com/File:VictoryPlugin.zip

♥

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


UE4 Wiki, Plugin Download Page

Enjoy!

:slight_smile:

Rama

Hey Rama,

thanks for this awesome work. I just downloaded your plugin.
But somehow is the BP GetRenderedActors not working. I thought I could use that one to detect all the actors my player can see. But even if the objects are clearly out of the players field of view, they are still listed as visible.
Am I missunderstanding something here?

Cheers Pascal

**Get Rendered Actors

Get Not Rendered Actors!**

f81539eec02c5f2dffbbab898d8bb84c8d134836.jpeg

You’re understanding is correct, I have now fixed my BP nodes, Get Rendered Actors, and Get Not Rendered Actors, to work correctly in 4.6.1!

Get my latest download and enjoy!

I’ve tested these node as now working correctly.

They will indeed tell you when actors are not being rendered by the engine, such as when you are facing the other way while in-game :slight_smile:

You can use my Get Rendered Actors node to find out the entire set of actors that have components that are currently being rendered by the engine!


**MinRecentTime**

You can use MinRecentTime to adjust what qualifies as "Recent enough"

So if you use MinRecentTime = 2, my nodes will return all actors that were rendered within the past 2 seconds.

The default is really small because you generally just want to know which actors are currently being rendered, with no margin for "relatively recent."

Download (6.5mb)

UE4 Wiki, Plugin Download Page

Enjoy!

Rama

Rama,

I have a simple mind. What is the proper way to use Get Rendered Actors or Get Not Renders Actors to cause an event on Character dropping from the screen. Should I use the ForEachLoop into a Contains Item to do boolean logic off my Character being found in Get Not Rendered? Do I need the ForEachLoop?

I’ll play around with it tonight, just doing some reading now.

Thanks!

Heyy awaiting release for 4.7 :rolleyes:

Downloading 4.7 now, and off to the store to buy food in the meantime :slight_smile:

Rama

Woo! Let us know what you get from the store :stuck_out_tongue:

Victory BP Library is Upgraded to 4.7

Dear Community,

My Victory BP Library plugin is now upgraded to 4.7!

The only substantial change I had to make was for my sound volume node.

Here’s the old and the new code.



bool UVictoryBPFunctionLibrary::VictorySoundVolumeChange(USoundClass* SoundClassObject, float NewVolume)
 {
	if(!SoundClassObject) 
	{
		return false;
	}
	
	SoundClassObject->Properties.Volume = NewVolume;
	return true; 
	   
	 /*
	FAudioDevice* Device = GEngine->GetAudioDevice();
	if (!Device || !SoundClassObject)
	{
		return false;
	}
	    
	bool bFound = Device->SoundClasses.Contains(SoundClassObject);
	if(bFound)
	{ 
		Device->SetClassVolume(SoundClassObject, NewVolume);
		return true;
	}
	return false;
	*/
	
	/*
		bool SetBaseSoundMix( class USoundMix* SoundMix );
	
	*/
 }



**Known Issue**

Undo/Redo in my Vertex Snap Editor feature is not working correctly in 4.7, if someone investigates this and fixes it let me know! 

I will get to it as soon as I can. Rest of Vertex Snap Editor works great in 4.7 !

Rama

PS:


[QUOTE=KitatusStudios;228687]
Woo! Let us know what you get from the store :P
[/QUOTE]


It was too cold out, so I did the 4.7 upgrade instead !

:)

Rama, I just installed 4.7 and created your Get Rendered Actors/Not Rendered Actors exactly and I am not seeing any strings being printed to the screen.

Can you double check on your machine that these work on 4.7?

Edit: Nevermind, I reloaded UE4 a second time and now it’s working.

Rama, when I try build my project with your plugin for Android I received below error during compilation Rama’s Plugin:



[1/3] clang++.exe VictoryBPFunctionLibrary.cpp [armv7-es2]
LogPlayLevel: UnrealBuildTool: In file included from E:/Biblioteka/Dokumenty/Unreal Projects/gameDNAstudio/ChasingRobbers/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp:12:
LogPlayLevel: UnrealBuildTool: In file included from Runtime/Engine/Public\PhysXIncludes.h:19:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include\PxPhysicsAPI.h:49:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include/foundation/PxBounds3.h:38:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include\foundation/PxTransform.h:37:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include\foundation/PxQuat.h:39:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include\foundation/PxVec3.h:38:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include\foundation/PxMath.h:50:
LogPlayLevel: UnrealBuildTool: In file included from ThirdParty/PhysX/PhysX-3.3/include\foundation/PxIntrinsics.h:42:
LogPlayLevel: UnrealBuildTool: D:\Epic Games\4.7\Engine\Source\ThirdParty\PhysX\PhysX-3.3\include\foundation\unix\PxUnixIntrinsics.h(92,9) :  error: use of undeclared identifier 'isfinite'; did you mean 'isFinite'?
LogPlayLevel: UnrealBuildTool:                 return isfinite(a);
LogPlayLevel: UnrealBuildTool:                        ^~~~~~~~
LogPlayLevel: UnrealBuildTool:                        isFinite
LogPlayLevel: UnrealBuildTool: D:\Epic Games\4.7\Engine\Source\ThirdParty\PhysX\PhysX-3.3\include\foundation\unix\PxUnixIntrinsics.h(90,22) :  note: 'isFinite' declared here
LogPlayLevel: UnrealBuildTool:         PX_FORCE_INLINE bool isFinite(float a)
LogPlayLevel: UnrealBuildTool:                              ^
LogPlayLevel: UnrealBuildTool: D:\Epic Games\4.7\Engine\Source\ThirdParty\PhysX\PhysX-3.3\include\foundation\unix\PxUnixIntrinsics.h(98,9) :  error: use of undeclared identifier 'isfinite'; did you mean 'isFinite'?
LogPlayLevel: UnrealBuildTool:                 return isfinite(a);
LogPlayLevel: UnrealBuildTool:                        ^~~~~~~~
LogPlayLevel: UnrealBuildTool:                        isFinite
LogPlayLevel: UnrealBuildTool: D:\Epic Games\4.7\Engine\Source\ThirdParty\PhysX\PhysX-3.3\include\foundation\unix\PxUnixIntrinsics.h(90,22) :  note: 'isFinite' declared here
LogPlayLevel: UnrealBuildTool:         PX_FORCE_INLINE bool isFinite(float a)
LogPlayLevel: UnrealBuildTool:                              ^
LogPlayLevel: UnrealBuildTool: 2 errors generated.
LogPlayLevel: UnrealBuildTool: -------- End Detailed Actions Stats -----------------------------------------------------------

Could you help me?

Just downloaded this to play with in 4.7. Seems ok. But when I do a developmental build and run the program it tells me it can not find the victory plugin and then the game crashes.

Thanks for your hard work on the plugin Rama! I really enjoy it.

For some reason the plugin does not work on my project in a 4.6.1 to 4.7 upgrade. :confused:

It says could not be compiled from source. When I remove the plugin it works without issues. I tried the last three versions of the plugin. Any ideas?

Edit: I’m checking Visual Studio right now.

‘SetClassVolume’ : is not a member of ‘FAudioDevice’
‘ULocalPlayer::ControllerId’ : cannot access private member declared in class ‘ULocalPlayer’
‘IgnoreActors’ : is not a member of ‘FCollisionQueryParams’
error C2228: left of ‘.Empty’ must have class/struct/union

Is the new version on the A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums page?

Thanks!

If you review this thread, in a few posts back, someone else figured out that you need to include Android stuff in your .build.cs in order to compile my plugin for android

Here is that quote

If ed or someone else could provide their modified build.cs that would be great!

“‘SetClassVolume’ : is not a member of ‘FAudioDevice’”

That’s the old version you have!

In the newest version I fixed all those compiler errors :slight_smile:

I just downloaded my latest version here and verified those errors are indeed fixed now, so please get the latest here:

it says feb 21 for some odd reason, a date change in the wiki? but just get the topmost one, NOT the 24th one!

:slight_smile:

:slight_smile:

:slight_smile:

Rama

Make sure your project has at least 1 source code file! File -> add code to project -> actor / player controller

Until 4.8 or so you still need source code in your project to use my plugin in a packaged game :slight_smile:

Rama

Rama check your primate messages when you get a chance. I can’t figure out how to make Rendered Actor see my pawn. In the editor I call it Penguin, why cant it see (or not see) Penguin?

Thanks Rama! I had the wrong date. Silly me. I thought I tried the first one too. I tried the first three but I must have mixed them around. The date mismatch threw me.

I really enjoy your plugin!

Yay! I am glad you are enjoying it!

I’ve been putting practically a part-time job’s worth of effort into my Victory BP Library to give all of you more Power in BP!

:slight_smile:

Rama