Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    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
    =========
    My Tutorials:
    Basic knowledge about Classes and UObject environment and stuff like that

    Comment


      Click image for larger version

Name:	Kris_SaveImageFromCaptureComp.jpg
Views:	1
Size:	184.1 KB
ID:	1066828

      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:

      Click image for larger version

Name:	Kris_CaptureThumbnailFromCaptureComp.jpg
Views:	1
Size:	218.2 KB
ID:	1066829
      (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
      Last edited by Rama; 02-20-2015, 08:03 PM.
      100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

      UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

      Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

      Comment


        Improved Get Vertex Locations of Static Mesh

        Now works in Packaged Games


        Click image for larger version

Name:	VertexPositions.jpg
Views:	15
Size:	176.5 KB
ID:	1066954

        Click image for larger version

Name:	VertexLocationsV2.jpg
Views:	4
Size:	187.3 KB
ID:	1066955

        My C++ Code For You

        See my PhysX wiki for the basic build.cs setup:
        https://wiki.unrealengine.com/PhysX,...o_Your_Project

        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!

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

        Enjoy!



        Rama
        Last edited by Rama; 02-22-2015, 04:59 PM.
        100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

        UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

        Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

        Comment


          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

          Comment


            Get Rendered Actors

            Get Not Rendered Actors!


            Click image for larger version

Name:	GetRenderedActors.jpg
Views:	1
Size:	160.7 KB
ID:	1067026

            Originally posted by meiwen View Post
            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.

            Cheers Pascal
            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

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


            Enjoy!

            Rama
            Last edited by Rama; 02-23-2015, 11:45 PM.
            100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

            UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

            Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

            Comment


              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!

              Comment


                Heyy awaiting release for 4.7
                Easy to use UMG Mini Map on the UE4 Marketplace.
                Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

                Comment


                  Originally posted by John Alcatraz View Post
                  Heyy awaiting release for 4.7
                  Downloading 4.7 now, and off to the store to buy food in the meantime

                  Rama
                  100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                  UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                  Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                  Comment


                    Originally posted by Rama View Post
                    Downloading 4.7 now, and off to the store to buy food in the meantime

                    Rama
                    Woo! Let us know what you get from the store :P
                    KITATUS
                    "Information shouldn't be behind a paywall, It should be free for all!"

                    Comment


                      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.

                      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:

                      Originally posted by KitatusStudios View Post
                      Woo! Let us know what you get from the store :P
                      It was too cold out, so I did the 4.7 upgrade instead !

                      Last edited by Rama; 02-24-2015, 09:07 PM.
                      100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                      UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                      Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                      Comment


                        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.
                        Last edited by Sanborn; 02-24-2015, 11:22 PM.

                        Comment


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

                          Code:
                          [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?

                          Comment


                            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.
                            Acclivity Game Studios. Making a BP FPS, Tutorial Series on Blog : On Unreal Wiki : Twitch

                            Comment


                              Originally posted by Rama View Post
                              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.

                              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:



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


                              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.

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

                              Thanks!
                              Last edited by Parvan; 02-25-2015, 08:06 PM.

                              Metahusk: A 501(c)(3) Creative Development Cooperative
                              Projects | Forums | Repositories | Nonprofit | Donate

                              Comment


                                Originally posted by kodmistrz View Post
                                Rama, when I try build my project with your plugin for Android I received below error during compilation Rama's Plugin:

                                Code:
                                [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?
                                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

                                Originally posted by Eduard Gotwig View Post
                                You simply dont ship the binaries (dll) for Android, or iOS, or linux or mac ;P
                                So i had to rebuild the solution, and compile to the targets (android, ios, etc.) in shipping mode.
                                Now it works.
                                Thanks.

                                Greetings, Ed
                                If ed or someone else could provide their modified build.cs that would be great!
                                100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                                UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                                Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                                Comment

                                Working...
                                X