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 The_Shane View Post
    Silly me. I had forgotten to account for the elevation's negative range values. Works like a charm now!
    Wooho! Congrats The_Shane!

    Originally posted by Sahkan View Post
    Hey Rama! Is there any way to have a node that can fetch static meshes in obj format so i can apply the textures i already can fetch to them?
    It can be, fbx, obj, or w/e is comfortable. I think obj will be more simple to do, but again, i don't really have a clue.
    It will be really awesome to let players use their own modeled weapons, accessories, and in my game's case, build levels with their own meshes as decoration.

    With anything you'v already made ( textures, sounds, config ini ) I think the mesh fetching will make the game the ultimate moddable game.
    Allowing Developers to add new content after release has just become supported as of 4.8

    Allowing people who buy your game to add their own meshes is not supported because the fbx pipeline runs only on the Editor side of the engine, which we are not allowed to utilize in packaged games.

    I had done a lot of work during the UE4 Beta to remake 3ds max in UE4 (UE4 Max), using the procedural mesh component.

    Then you can even give people per-vertex creation capacity.

    The challenge for me was generating good uv mappings via in-game tools

    But so far, I dont think there's any legal way to utilize UE4's fbx importing pipeline in a packaged game.


    Originally posted by Tekoppar View Post
    Ohh those custom config nodes are sexy Rama, would it be possible to have custom .ini files in the future?
    Using my own systems entirely I could make a human-readible / editible file format which thus allows you to make custom .ini files yes.

    But why do you need lots of custom .ini files? What is your perceived or actual use case?



    Rama
    Last edited by Rama; 06-20-2015, 03:58 PM.
    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    ♥ Rama

    Comment


      Save String Array To File

      The previous String File IO could only save a single line of text, even if you put "\n" into your string

      So I've made a new node that lets you save multiple lines of text to file.

      Each FString of the array is on its own line in the file!

      See pic!

      Enjoy!

      Rama

      Click image for larger version

Name:	SaveStringArrayToFile.jpg
Views:	3
Size:	188.3 KB
ID:	1080214

      ~~~

      Latest plugin download on the UE4 Wiki: (7.91 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
      UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

      ♥ Rama

      Comment


        Originally posted by Rama View Post
        Using my own systems entirely I could make a human-readible / editible file format which thus allows you to make custom .ini files yes.

        But why do you need lots of custom .ini files? What is your perceived or actual use case?



        Rama
        I just wanted something like your node above "File IO Save String Array to File" where we could specify our own file name, so instead of using the game.ini we could have our own ones.

        Comment


          Hey Rama, could you add a node like "Execute Console Command" with the addition that it has an output String which prints out the output? For example if I type "sg.ShadowQuality" in the console then the output I get is "sg.ShadowQuality = "3" LastSetBy: Console". I just want to know the 3, so the info how a certain console variable is set at the moment Would this be possible?
          Easy to use UMG Mini Map on the UE4 Marketplace.
          Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

          Comment


            Originally posted by Rama View Post
            Allowing Developers to add new content after release has just become supported as of 4.8

            Allowing people who buy your game to add their own meshes is not supported because the fbx pipeline runs only on the Editor side of the engine, which we are not allowed to utilize in packaged games.
            Hey Rama, wouldn't it be possible for other people to download UE4, make assets, cook them and THEN load the .uassets into the game (instead of importing the .fbx)?
            Unreal Meetup Franken - Unreal Engine 4 Meetup
            Hands for VR - Space HDRI Skyboxes [Marketplace]

            Comment


              Originally posted by btengelh View Post
              Hey Rama, wouldn't it be possible for other people to download UE4, make assets, cook them and THEN load the .uassets into the game (instead of importing the .fbx)?
              That is an awesome question! I wanna know that too!
              Maybe there is a certain certificate or base empty project that it need to be exported from.
              I don't mind including that project files as long as they don't contain any of the game assets in it.
              Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

              Comment


                I've followed Rama's instructions for installing this plug-in to the letter. In the editor, I get all the nodes and I can test it - it works fine.
                However, when I build the project for Windows, I get this error: Failed to open descriptor file '../../../mygame/mygame.uproject'

                When I uninstall the plug-in, I can build the project and play it fine.
                Any ideas how to fix this?

                Comment


                  I just upgraded to the 4.8 source version but now whenever I package the game, it says VictoryPlugin failed to load because the module could not be found. I am using the latest version of the plugin and this never happened before in the 4.7.6 source version. Any help would be appreciated.

                  Comment


                    Hi,
                    how can I use Rama's plugin in C++ code?

                    Comment


                      Originally posted by MissionMan View Post
                      I just upgraded to the 4.8 source version but now whenever I package the game, it says VictoryPlugin failed to load because the module could not be found. I am using the latest version of the plugin and this never happened before in the 4.7.6 source version. Any help would be appreciated.
                      Are you sure you get it when you pack and not when you build(compile) the project in visual studio?

                      Originally posted by kodmistrz View Post
                      Hi,
                      how can I use Rama's plugin in C++ code?
                      Add "VictoryBPLibrary" to the modules array in your projectName.Build.cs inside your source folder
                      (Example: C:\ProjectName\Source\ProjectName.Build.cs).
                      it Supposed to look something like this:

                      Code:
                              PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "VictoryBPLibrary", "UMG", "Slate", "SlateCore" ,"AIModule"});
                      And then when you want to use it, just add this header on the top of your cpp file:
                      Code:
                      #include "MyBlueprintFunctionLibrary.h"
                      Last edited by Sahkan; 06-22-2015, 09:08 PM.
                      Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

                      Comment


                        Originally posted by btengelh View Post
                        Hey Rama, wouldn't it be possible for other people to download UE4, make assets, cook them and THEN load the .uassets into the game (instead of importing the .fbx)?
                        Originally posted by Sahkan View Post
                        That is an awesome question! I wanna know that too!
                        Maybe there is a certain certificate or base empty project that it need to be exported from.
                        I don't mind including that project files as long as they don't contain any of the game assets in it.
                        Yes as of 4.8 they have added support for you to be able to add both patch content as well as DLC content! The point that is fuzzy for me is whether people wanting to add content will need the entire original project, which means the original Dev needs to be willing to share the entirety of their project (which doesnt seem likely for a commerical game).

                        Epic had mentioned "feature packs" in an earlier release, I wonder if feature packs can more easily be used in any project as opposed to patchs/DLC that are indended to extend some original project.

                        The question is whether feature packs can be used by a packaged game!

                        Originally posted by John Alcatraz View Post
                        Hey Rama, could you add a node like "Execute Console Command" with the addition that it has an output String which prints out the output? For example if I type "sg.ShadowQuality" in the console then the output I get is "sg.ShadowQuality = "3" LastSetBy: Console". I just want to know the 3, so the info how a certain console variable is set at the moment Would this be possible?
                        Very interesting request, I'll have to work on that!


                        Originally posted by Sahkan View Post
                        Add "VictoryBPLibrary" to the modules array in your projectName.Build.cs inside your source folder
                        @Sahkan,

                        Thanks for helping out with question answering!



                        Rama
                        Last edited by Rama; 06-22-2015, 09:59 PM.
                        UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                        ♥ Rama

                        Comment


                          Two AI Nodes For You

                          Get Closest Actor Of Class In Radius of Location

                          Get Closest Actor of Class In Radius of Actor



                          These nodes are great for use with AI calculations!


                          Click image for larger version

Name:	GetClosestActorClassInRadius2.jpg
Views:	3
Size:	169.1 KB
ID:	1080324

                          Click image for larger version

Name:	GetClosestActorClassInRadius1.jpg
Views:	3
Size:	216.9 KB
ID:	1080325

                          ~~~

                          Latest plugin download on the UE4 Wiki: (7.91 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; 06-23-2015, 12:56 AM.
                          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                          ♥ Rama

                          Comment


                            Click image for larger version

Name:	TKIntro.jpg
Views:	4
Size:	307.4 KB
ID:	1080387

                            Live as of May 1st, 2015

                            Dear Community,

                            I have the May Celebration node release for you today!

                            Community member TK-Master has gifted us with over 30 new BP nodes for Math, Physics, and 3D Geometry calculations!

                            I highlighted my personal favorite nodes in green!

                            ~~~

                            UMG Anchor Conversion
                            Please note you can now convert UMG Anchor coordinates to other coordinate spaces!

                            ~~~

                            Snap To 3D Grid
                            You can use the Snap Node to snap any 3D space Vector to a grid size of your choosing!

                            So you could use this node to to regulate the position of an in-game 3D positioning tool (like for RTS Games!) to a grid of your choosing, while still accounting for rolling hills of landscapes and big vertical differences!

                            ~~~

                            Convert Physics Linear Velocity

                            Ever wonder how fast in Km/hr an in-game Unreal Engine physics ball was hurling through the air?

                            Ever want to know the meters/second speed of a falling physics-simulating box?

                            Or how about the miles/hour of your UE4 Physics Vehicle?

                            Well thanks to TK-Master's new node you can now easily convert the value that you get from GetPhysicsLinearVelocity of any physics-simulating body to a speed in the units of your choosing!

                            Here's is TK-Master's current list of available conversions!

                            Code:
                            /* Speed Units Enum. */
                            UENUM()
                            enum ESpeedUnit
                            {
                            	/* Centimeter / second (cm/s). This is default unreal velocity unit. */
                            	CentimeterPerSecond,
                            
                            	/* Foot / second (ft/s). */
                            	FootPerSecond,
                            
                            	/* Meter / second (m/s). */
                            	MeterPerSecond,
                            
                            	/* Meter / minute (m/min). */
                            	MeterPerMinute,
                            
                            	/* Kilometer / second (km/s). */
                            	KilometerPerSecond,
                            
                            	/* Kilometer / minute (km/min). */
                            	KilometerPerMinute,
                            
                            	/*Kilometer / hour (km/h). */
                            	KilometerPerHour,
                            
                            	/* Mile / hour (mph). */
                            	MilePerHour,
                            
                            	/* Knot (kn). Nautical mile per hour. */
                            	Knot,
                            
                            	/* Mach (speed of sound) (M) at standard atm. */
                            	Mach,
                            
                            	/* Speed of light. */
                            	SpeedOfLight,
                            
                            	/* Yard / second. */
                            	YardPerSecond
                            };
                            ~~~

                            BP Nodes for 3D Geometric Analysis!

                            Here are pics showing the complete list of the new 3D Geometry Nodes!

                            To see the full list, get the latest version of my plugin and type in "TK" and you will see all the 30+ new nodes available to you!

                            Click image for larger version

Name:	TKMathLong.jpg
Views:	5
Size:	276.3 KB
ID:	1080388

                            ~~~

                            Thank You!

                            Thank you TK-Master for your contribution!

                            These nodes are going to be extremely useful for a lot of people !

                            ~~~

                            Latest plugin download on the UE4 Wiki: (7.91 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
                            UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                            ♥ Rama

                            Comment


                              Get All Bones Below Bone

                              (6/23/15)

                              Click image for larger version

Name:	GetAllBonesNamesBelowBone.jpg
Views:	2
Size:	214.7 KB
ID:	1080400

                              Click image for larger version

Name:	GetAllBonesNamesBelowBone2.jpg
Views:	1
Size:	101.4 KB
ID:	1080401

                              This node returns all the bones that are below the given bone in the Skeleton bone hierarchy!

                              ~~~

                              My C++ Code For You!

                              I used a recursive function to traverse the skeleton tree and get all child bones, starting from the Starting Bone!

                              Code:
                              static int32 GetChildBones(const FReferenceSkeleton& ReferenceSkeleton, int32 ParentBoneIndex, TArray<int32> & Children)
                              { 
                              	Children.Empty();
                              
                              	const int32 NumBones = ReferenceSkeleton.GetNum();
                              	for(int32 ChildIndex=ParentBoneIndex+1; ChildIndex<NumBones; ChildIndex++)
                              	{
                              		if ( ParentBoneIndex == ReferenceSkeleton.GetParentIndex(ChildIndex) )
                              		{
                              			Children.Add(ChildIndex);
                              		}
                              	}
                              
                              	return Children.Num();
                              }
                              static void GetChildBoneNames_Recursive(USkeletalMeshComponent* SkeletalMeshComp, int32 ParentBoneIndex, TArray<FName>& ChildBoneNames)
                              {	
                              	TArray<int32> BoneIndicies;  
                              	GetChildBones(SkeletalMeshComp->SkeletalMesh->RefSkeleton, ParentBoneIndex, BoneIndicies);
                              	   
                              	if(BoneIndicies.Num() < 1)
                              	{
                              		//Stops the recursive skeleton search
                              		return;
                              	}
                              	 
                              	for(const int32& BoneIndex : BoneIndicies)
                              	{
                              		FName ChildBoneName = SkeletalMeshComp->GetBoneName(BoneIndex);
                              		ChildBoneNames.Add(ChildBoneName);
                              		 
                              		//Recursion
                              		GetChildBoneNames_Recursive(SkeletalMeshComp, BoneIndex,ChildBoneNames);
                              	}
                              }
                              
                              int32 UVictoryBPFunctionLibrary::GetAllBoneNamesBelowBone( USkeletalMeshComponent* SkeletalMeshComp, FName StartingBoneName,  TArray<FName>& BoneNames )
                              {
                              	BoneNames.Empty();
                              	
                              	if(!SkeletalMeshComp || !SkeletalMeshComp->SkeletalMesh)
                              	{
                              		return -1;
                              		//~~~~
                              	}
                              	 
                              	int32 StartingBoneIndex = SkeletalMeshComp->GetBoneIndex(StartingBoneName);
                              	 
                              	//Recursive
                              	GetChildBoneNames_Recursive(SkeletalMeshComp, StartingBoneIndex, BoneNames);
                              	     
                              	return BoneNames.Num();
                              }
                              ~~~

                              Latest plugin download on the UE4 Wiki: (7.92 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; 06-23-2015, 08:31 PM.
                              UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                              ♥ Rama

                              Comment


                                Originally posted by Rama View Post

                                Originally posted by John Alcatraz View Post
                                Hey Rama, could you add a node like "Execute Console Command" with the addition that it has an output String which prints out the output? For example if I type "sg.ShadowQuality" in the console then the output I get is "sg.ShadowQuality = "3" LastSetBy: Console". I just want to know the 3, so the info how a certain console variable is set at the moment Would this be possible?
                                Very interesting request, I'll have to work on that!
                                I had included a function to read console variables on my post with the math functions

                                float UMathFunctionLibrary::GetConsoleVariableFloat(FString VariableName)
                                {
                                static const auto CVar = IConsoleManager::Get().FindTConsoleVariableDataFloat(*VariableName);

                                if (CVar != 0)
                                {
                                //return CVar->GetValueOnGameThread();
                                return CVar->GetValueOnAnyThread();
                                }
                                return 0.f;
                                }

                                int32 UMathFunctionLibrary::GetConsoleVariableInt(FString VariableName)
                                {
                                static const auto CVar = IConsoleManager::Get().FindTConsoleVariableDataInt(*VariableName);

                                if (CVar != 0)
                                {
                                return CVar->GetValueOnGameThread();
                                }
                                return 0;
                                }
                                This would allow you to read the current value of sg.ShadowQuality for example, is that what you meant John Alcatraz?

                                I don't know if it works in a packaged game though, a better method might be required.

                                4.10 Update! -> [Community Project] WIP Weather & Ocean Water Shader
                                WIP Interactive Water Shader, WIP 2D Water Sim
                                WIP FFT Ocean w/ Foam, Quad-tree Infinite Ocean LOD

                                Comment

                                Working...
                                X