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

HTML5 Emscripten export fails:


 LogPlayLevel:Display: UnrealBuildTool: C:/Program Files/Emscripten/clang/e1.25.0_64bit\llvm-link: link error in 'C:\Users\xxx\Desktop\game\Plugins\VictoryPlugin\Binaries\HTML5\CarCarCar-VictoryBPLibrary-Static.bc': Linking globals named '_ZN5physx28gUnifiedHeightfieldCollisionE': symbol multiply defined!
LogPlayLevel:Display: UnrealBuildTool: Traceback (most recent call last):
LogPlayLevel:Display: UnrealBuildTool:   File "C:\Program Files\Emscripten\emscripten\1.25.0\emcc", line 1167, in <module>
LogPlayLevel:Display: UnrealBuildTool:     shared.Building.link(linker_inputs, in_temp(target_basename + '.bc'), force_archive_contents=len([temp for i, temp in temp_files if not temp.endswith(STATICLIB_ENDINGS)]) == 0)
LogPlayLevel:Display: UnrealBuildTool:   File "C:\Program Files\Emscripten\emscripten\1.25.0	ools\shared.py", line 1330, in link
LogPlayLevel:Display: UnrealBuildTool:     assert os.path.exists(target) and (output is None or 'Could not open input file' not in output), 'Linking error: ' + output
LogPlayLevel:Display: UnrealBuildTool: AssertionError: Linking error:
LogPlayLevel:Display: UnrealBuildTool: -------- End Detailed Actions Stats -----------------------------------------------------------
LogPlayLevel:Display: UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: C:\Users\xxx\Desktop\game\Binaries\HTML5\CarCarCar.js

s

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

Three New Nodes From !

**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 :

"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 '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."


**Thanks for the new nodes !**

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

♥

**Improved Get Vertex Locations of Static Mesh

Now works in Packaged Games**

My C++ Code For You

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

Here is the code I wrote to get 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! -
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:

Hey ,

thanks for awesome work. I just downloaded your plugin.
But somehow is the BP GetRenderedActors not working. I thought I could use that one to detect 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

**Get Rendered Actors

Get Not Rendered Actors!**

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  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
https://wiki.unrealengine.com/File:VictoryPlugin.zip

Enjoy!

,

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:

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

Undo/Redo in my Vertex Snap Editor  is not working correctly in 4.7, if someone investigates  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 !



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 !

:)

, 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 and now it’s working.

, when I try build my project with your plugin for I received below error during compilation '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 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 ! 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 - Epic Developer Community Forums page?

Thanks!

If you review thread, in a few posts back, someone else figured out that you need to include 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 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:

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

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:

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:

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

Thanks ! 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!