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

    Originally posted by RhythmScript View Post
    Did you know that you're my hero, Rama?

    I see from the picture that we can also map two or more keys to the same action, so that's just like bonus points for me.

    Epic should be paying you for this, man.

    Now I have an options menu to finish.
    Hee hee!

    Yay!



    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


      Click image for larger version

Name:	HasSubstring.jpg
Views:	1
Size:	189.5 KB
ID:	1082133
      (as of 6/11/15)

      Dear Community,

      I've made a new BP node for you!

      HasSubstring compliments the functionality of FindSubstring.

      FinsSubstring requires more inputs and returns an index within the source string.

      My node, HasSubstring, requires only 1 input and only returns whether or not the supplied substring is in the source string.

      I use the C++ version of HasSubstring all the time so I felt you would all enjoy having it in BP as well!

      ~~~

      Example Usage ~ Search Feature

      If you wanted to make a string-based search feature, that iterated over the contents of a list of UMG Texts, you can take the user's supplied search string and use my HasSubstring node to find all the UMG Text widgets that contain the user's supplied search string.

      ~~~

      Latest plugin download on the UE4 Wiki: (7.94 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.

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

      Enjoy!



      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
        I'm sorry but if you are using nVidia Branches of the Unreal Engine you need to talk to them about why Flex.h can't be found.

        The public PhysX includes are working for people on every OS for the main branch.

        Ask them and feel free to let me know what they say!





        Rama
        But this only happens when I put your plugin into the Plugins folder of my project, when I remove your plugin from my project it compiles fine again. But I will ask in the Gameworks integration thread and report back if I hear anything.

        UPDATE:
        Here is the answer from GalaxyMan2015 on the GameWorks thread:

        I believe Rama's plugins have PhysX integrations right? If this is the case, then you will need to add FLEX to the DependencyModuleNames of the Build.cs of Rama's plugin, I had to do this myself for my project as I have some PhysX integration stuff, and it was complaining it couldn't find Flex.h until I added FLEX to the module list.

        And this worked for me!!!
        Last edited by Number47; 07-22-2015, 03:03 AM. Reason: UPDATE

        Comment


          Hi,

          I've tried using Rama's plugin and when I ran into some packaging issues I decided to remove it (it was a time sensitive project and we couldn't spend the time debugging). When I disabled it, the project became corrupted. (on 4.7.6, 4.8.1, and 4.8.2).

          The game was a c++ project; on disabling the plugin, the visual studio part of the project was completely removed (as in, no longer in the VS project explorer - only the UE4 engine part of the VS project, and the files missing in the game folder) - even the compile option in the game editor was gone. It reduced it to a blueprint only project - which could not be cooked/packaged. I re-enabled the plugin and while I regained the visual studio part, the c++ would no longer compile; the editor would not even load, and I ended up having to delete the game and start over from a skeleton backup.

          I would not recommend this plug in - this cost our group a lot of money.

          Comment


            Hello,

            May i ask if the plugin is compatible with 4.9?

            Thank you!

            Comment


              Originally posted by Number47 View Post
              But this only happens when I put your plugin into the Plugins folder of my project, when I remove your plugin from my project it compiles fine again. But I will ask in the Gameworks integration thread and report back if I hear anything.

              UPDATE:
              Here is the answer from GalaxyMan2015 on the GameWorks thread:

              I believe Rama's plugins have PhysX integrations right? If this is the case, then you will need to add FLEX to the DependencyModuleNames of the Build.cs of Rama's plugin, I had to do this myself for my project as I have some PhysX integration stuff, and it was complaining it couldn't find Flex.h until I added FLEX to the module list.

              And this worked for me!!!
              Woohoo! Thanks for sharing this solution Number47!

              ~~~

              The Nvidia Branch Build Solution

              Again for anyone not clear on the solution, if you are using Nvidia branches of UE4, go to

              YourProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/VictoryBPLibrary.Build.cs

              And make sure FLEX is added as a dependencY!

              Code:
              PublicDependencyModuleNames.AddRange(
              			new string[] { 
              				"Core", 
              				"CoreUObject", 
              				"Engine", 
              				"InputCore",
              				
              				"RHI",
              				"RenderCore",
              				 
              				"HTTP",
              				"UMG", "Slate", "SlateCore",
              				
              				"ImageWrapper",
              				
              				"PhysX", "APEX", "FLEX"   //<~~~~~~ 
              			}
              		);
              Originally posted by Roccinio View Post
              Hello,

              May i ask if the plugin is compatible with 4.9?

              Thank you!
              I will make it 4.9 compatible when 4.9 is officially released

              Have fun today everyone!



              Rama
              Last edited by Rama; 07-24-2015, 01:28 AM.
              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


                Massive New Collision Surface Distance Analysis Tools

                Click image for larger version

Name:	SurfaceDistanceBetween.jpg
Views:	4
Size:	137.9 KB
ID:	1082373

                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

                Click image for larger version

Name:	SurfaceDistanceBetweenBP.jpg
Views:	5
Size:	220.6 KB
ID:	1082374

                ~~~

                World Point Distance To Collision Of Any Object

                Click image for larger version

Name:	ClosestPointToCollision.jpg
Views:	5
Size:	221.4 KB
ID:	1082375

                Click image for larger version

Name:	ClosestPointToCollisionBP.jpg
Views:	5
Size:	292.0 KB
ID:	1082376

                ~~~

                My C++ For You

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

                Code:
                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: (7.99 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.

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

                Enjoy!



                Rama
                Last edited by Rama; 07-24-2015, 01:36 AM.
                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


                  New distance node looks awesome!
                  Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

                  Comment


                    OOO Distance Nodes!

                    Is there a limit to the distance in which the precision of this is effected? For example, I have a real scale galaxy (converted to unit scale "Example: 1 mile = 0.001 unreal units"). Would the precision be effected in a scenario like this?

                    Thanks again for another awesome contribution!
                    Portfolio
                    UE3 - Advanced FX Masterclass Part 1 DVD
                    UE3 - Advanced FX Masterclass Part 2 DVD

                    Comment


                      Originally posted by JBaldwin View Post
                      OOO Distance Nodes!

                      Is there a limit to the distance in which the precision of this is effected? For example, I have a real scale galaxy (converted to unit scale "Example: 1 mile = 0.001 unreal units"). Would the precision be effected in a scenario like this?

                      Thanks again for another awesome contribution!
                      You're welcome Jeremy!

                      The only limit I think you'll have is the fact that the value being returned from the engine is a single precision float, here's a reference on what sort of accuracy you can expect:

                      "
                      If you want an accuracy of +/-0.0005 (about 2^-11), the maximum size that the number can be is 2^13 (8192). Any larger than this and the distance between floating point numbers is greater than 0.0005.
                      "
                      http://stackoverflow.com/questions/8...floating-point

                      ~~~

                      UE4 is using the PhysX engine under the hood to do the distance calculation:

                      Code:
                      PxGeometryQuery::pointDistance
                      So I do think your only limit is the accuracy of a single precision float.

                      ~~~

                      Summary:

                      If you have two surface points to check the distance between that are more than 8192 units apart, your accuracy is limited to 0.00005 and gets smaller as the distance between the points gets bigger.

                      If your planets or the bodies you want to measure collision for are more than 10,000,000 unreal world units apart, you can expect the accuracy to be dropping in terms of precision down to 0.001 (1 mile you are saying).

                      If you need measurements more accurate than 1 mile, you'll need to measure bodies that are more like 5,000,000 or 1,000,000 unreal in-game units apart.

                      How far apart are the planets or the bodies you want to measure in your UE4 Galaxy?



                      Rama
                      Last edited by Rama; 07-24-2015, 04:12 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


                        Hi again Rama, I very much enjoy your plugin now that it is working in the NVIDIA branch, I was wondering if it would be possible to extend the vertex snap to include snapping blueprint actors in the level as well? As I understand, the vertex snap is for static meshes only right? Would it be hard to make the vertex snap work in the blueprint editor, since positioning components in the blueprint editor is a pain. Thanks again for the plugin.

                        Comment


                          Originally posted by Number47 View Post
                          Hi again Rama, I very much enjoy your plugin now that it is working in the NVIDIA branch, I was wondering if it would be possible to extend the vertex snap to include snapping blueprint actors in the level as well? As I understand, the vertex snap is for static meshes only right? Would it be hard to make the vertex snap work in the blueprint editor, since positioning components in the blueprint editor is a pain. Thanks again for the plugin.
                          "Would it be hard to make the vertex snap work in the blueprint editor, since positioning components in the blueprint editor is a pain."

                          Yes that would be quite a challenge since the code for blueprint editor viewport is on the Editor side.

                          I implemented my Vertex Snap editor by creating my own editor mode for the level viewport, a functionality and method that Epic encouraged and has provided a code path for.

                          Modifying the existing code of the blueprint editor viewport to receive new keyboard and mouse inputs would probably be hard to do without a custom engine build, which then prevents me from offering the vertex snap feature as a plugin.

                          It's quite doable of course, question is whether it can be done without requiring a custom engine build

                          If I get time and find anyway to modify the blueprint editor viewport code in a plugin fashion I'll let you know!

                          I am glad you are enjoying my Victory plugin!



                          Rama

                          PS:

                          My Latest Node Release ~ Get Distance Between Two Collision Surfaces!
                          https://forums.unrealengine.com/show...l=1#post339236
                          Last edited by Rama; 07-24-2015, 05:10 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


                            Animated Vertex Positions With Movement Velocity Correction

                            Click image for larger version

Name:	AnimatedVertexLocations3.jpg
Views:	4
Size:	159.2 KB
ID:	1082589

                            Click image for larger version

Name:	AnimatedVertexLocations.jpg
Views:	3
Size:	260.8 KB
ID:	1082588

                            Dear Community,

                            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!

                            Click image for larger version

Name:	AnimatedVertexLocations2.jpg
Views:	4
Size:	290.3 KB
ID:	1082590

                            ~~~

                            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!

                            Code:
                            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: (7.99 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.

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

                            Enjoy!



                            Rama
                            Last edited by Rama; 07-27-2015, 01:04 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


                              ```Nice!```
                              Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

                              Comment


                                Hi!

                                First of all, thank you for these wonderful additions!

                                I'm having a problem with the save 2d capture as image nodes. This is my setup in a construction script:


                                When I activate it, UE4 (4.8) crashes 90% of the time. Capture every frame is turned off. It worked only one time so far and I didn't make any changes.

                                Edit: Crashes with only one of those nodes as well, in case someone might suggest trying that.
                                Attached Files
                                Last edited by DasMatze; 07-27-2015, 04:33 PM.

                                Comment

                                Working...
                                X