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 DasMatze View Post
    I'm having a problem with the save 2d capture as image nodes. This is my setup in a construction script...
    That is probably causing the problem.
    Try moving it to an event after begin play and separate the calls.
    Rule#21: Be polite, be professional, but have a plan to kill everyone you meet.

    Comment


      Thanks for the suggestion, Kris. I tried that but it still crashes. Ah well, it's not so important. It isn't part of the gameplay, it's just for me to make some icons.

      Comment


        Originally posted by Rama View Post
        I've finally cracked the code of drawing accurate animated vertex positions for character meshes!
        Dear Rama, say the true please, did you came to us from future? To save our lives?

        You doing unbelievable stuff!

        Thank you!

        Comment


          Two questions, 1 - Is this plugin compatible with mac? and 2 - When will it be compatible with 4.8?

          Comment


            Originally posted by mcgillchris View Post
            Two questions, 1 - Is this plugin compatible with mac? and 2 - When will it be compatible with 4.8?
            It works with 4.8 on PC I know. Can't speak to the mac side.

            Also, Rama: Just wanted to thank you again for all the work you put into this! You gotta set up a Patreon or something so we can keep you fed
            Trevor Lee

            Comment


              Originally posted by RoadStar View Post
              Dear Rama, say the true please, did you came to us from future? To save our lives?

              You doing unbelievable stuff!

              Thank you!
              Hee hee! Seems as though you figured me out!

              Though more than one of us came from the Future!

              If you are reading this, then you likely came from the Future too!!



              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 Hyperloop View Post
                Also, Rama: Just wanted to thank you again for all the work you put into this! You gotta set up a Patreon or something so we can keep you fed
                Aww thanks Hyperloop!

                I'm gonna think about that!

                In the meantime, anyone can send me a donation via my lighting fitness website!

                ~~~

                Victory BP Library Donations Page

                If my plugin has benefitted you and you'd like to send me a donation, you can do so via the link below:

                Victory BP Library Donations
                http://lightningfitness.org/donate/



                Rama
                Last edited by Rama; 07-29-2015, 09:09 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,
                  is there a way to use relative paths instead of an absolute path at the "Load String Array From File" function?
                  I can't get it to work.

                  Thank you!

                  Edit: I should read the other posts thanks.

                  Edit2: Could you make more Array Load and Save file functions? Like, for floats?
                  Last edited by KrautPotato; 08-01-2015, 10:09 AM.
                  @CarstenZarbock - Follow me on Twitter, thank you

                  Comment


                    Originally posted by KrautPotato View Post
                    Edit2: Could you make more Array Load and Save file functions? Like, for floats?
                    I will add that to my list

                    Have fun today!



                    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


                      Project File Paths For Saving and Loading in BP

                      Click image for larger version

Name:	Paths.jpg
Views:	6
Size:	78.2 KB
ID:	1083049

                      Victory Absolute Paths!
                      Live as of March 3rd 2015 build

                      Get the File Path to your project .exe, your project root directory, and more!

                      These paths are dynamically updated even if you move the entire project to a new location on your computer!

                      All these nodes are fully compatible with packaged builds and return absolute paths!

                      These nodes also work in Development/Editor builds!

                      ~~~

                      More Power For You in BP

                      Now you can easily create your own folders/files, relative to the project root directory or your project's .exe!

                      Please note that in editor builds, the .exe returns your UE4Editor.exe location, but in packaged games it returns your game's .exe

                      Click image for larger version

Name:	Paths2.jpg
Views:	7
Size:	298.6 KB
ID:	1083048

                      ~~~

                      Recommendation:

                      I recommend using the Project Game directory for most of your relative path needs! This works the same in Editor and packaged builds!

                      You can also get your Saved and Logs folders for your project in both packaged and editor builds!

                      ~~~

                      Download

                      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; 08-04-2015, 09:20 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


                        Get Your IP Address From In-Game via BP Node

                        BP Node to Get Your Computer's IP Address!

                        Dear Community,

                        I've finally succeeded at implementing a node that many have been trying to implement since the Beta!

                        This is a BP node that gets the IP address of your computer!

                        My node relies on http://api.ipify.org, a free and easy way to get your current IP address.

                        Because this node involves an HTTP request I can't make it a static library node, so I instead made a VictoryPC class that contains only this functionality.

                        You can easily re-parent your current player controller blueprint to use my plugin VictoryPC class!

                        File->Reparent

                        and if you are not using a PC already, make sure to go to World Settings and use my VictoryPC as your player controller!

                        As long as my Victory BP Library is an active plugin for you, then this VictoryPC class will show up!

                        ~~~

                        Celebration!

                        Yay!

                        Now we can all get the IP address of the local computer for use with multiplayer games or webserver activities!

                        Enjoy!

                        Rama

                        ~~~

                        Pic

                        Here's the setup you should create in your Blueprinted version of my VictoryPC!

                        Click image for larger version

Name:	IPGetMyIP.jpg
Views:	11
Size:	177.0 KB
ID:	1083211

                        ~~~

                        C++ Source Code For You

                        Here is the C++ source code I wrote just earlier today!

                        Code:
                        /** This node relies on http://api.ipify.org, so if this node ever stops working, check out http://api.ipify.org.  Returns false if the operation could not occur because HTTP module was not loaded or unable to process request. */
                        	UFUNCTION(BlueprintCallable, Category="Victory PC")
                        	bool VictoryPC_GetMyIP_SendRequest();
                        	
                        	/** Implement this event to receive your IP once the request is processed! This requires that your computer has a live internet connection */
                        	UFUNCTION(BlueprintImplementableEvent, Category = "Victory PC", meta = (DisplayName = "Victory PC ~ GetMyIP ~ Data Received!"))
                        	void VictoryPC_GetMyIP_DataReceived(const FString& YourIP);
                        	
                        	void HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);
                        Code:
                        bool AVictoryPC::VictoryPC_GetMyIP_SendRequest()
                        {
                        	FHttpModule* Http = &FHttpModule::Get();
                        	
                        	if(!Http)
                        	{
                        		return false;
                        	}
                        	 
                        	if(!Http->IsHttpEnabled()) 
                        	{
                        		return false;
                        	} 
                        	//~~~~~~~~~~~~~~~~~~~
                        	
                        	FString TargetHost = "http://api.ipify.org";
                        	TSharedRef < IHttpRequest > Request = Http->CreateRequest(); 
                        	Request->SetVerb("GET");
                        	Request->SetURL(TargetHost);
                        	Request->SetHeader("User-Agent", "VictoryBPLibrary/1.0");
                        	Request->SetHeader("Content-Type" ,"text/html");
                         
                        	Request->OnProcessRequestComplete().BindUObject(this, &AVictoryPC::HTTPOnResponseReceived);
                        	if (!Request->ProcessRequest())
                        	{
                        		return false;
                        	}
                        	  
                        	return true;
                        }
                        	
                        void AVictoryPC::HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
                        {
                        	this->VictoryPC_GetMyIP_DataReceived(Response->GetContentAsString());
                        }
                        ~~~

                        Latest plugin download on the UE4 Wiki: (8 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; 08-04-2015, 09:20 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


                          Originally posted by Rama View Post
                          "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
                          And what about snapping blueprint actors in the level, since in the current version you can only snap static meshes right?

                          Comment


                            Hi @Rama,

                            Thanks for the plugin!

                            I had to make a fix to get it building under Linux - the diff follows.

                            Have you considered putting your code on Github so people can send you pull requests for fixes/additions that you can easily decide to accept or not? If you are wlling, I offer to help set it up for you.

                            Code:
                            diff --git a/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp b/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
                            index 014cab1..6fe8e0e 100644
                            --- a/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
                            +++ b/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
                            @@ -2711,13 +2711,13 @@ AActor* UVictoryBPFunctionLibrary::Traces__CharacterMeshTrace___ClosestSocket(
                            
                                    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                    //Check All Bones Locations
                            -       for (int32 Itr = 0; Itr < SocketNames.Num(); Itr++ )
                            +       for (int32 SItr = 0; SItr < SocketNames.Num(); SItr++ )
                                    {
                                            //Is this a Bone not a socket?
                            -               if(SocketNames[Itr].Type == EComponentSocketType::Bone) continue;
                            +               if(SocketNames[SItr].Type == EComponentSocketType::Bone) continue;
                                            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            
                            -               CurLoc = AsCharacter->Mesh->GetSocketLocation(SocketNames[Itr].Name);
                            +               CurLoc = AsCharacter->Mesh->GetSocketLocation(SocketNames[SItr].Name);
                            
                                            //Dist
                                            CurDist = FVector::Dist(OutImpactPoint, CurLoc);
                            @@ -2725,7 +2725,7 @@ AActor* UVictoryBPFunctionLibrary::Traces__CharacterMeshTrace___ClosestSocket(
                                            //Min
                                            if (ClosestDistance < 0 || ClosestDistance >= CurDist)
                                            {
                            -                       ClosestVibe = Itr;
                            +                       ClosestVibe = SItr;
                                                    ClosestDistance = CurDist;
                                            }
                                    }
                            Now I need to see how to deal with the Dedicated Server build failing because VictoryBPLibrary depends on UElibPNG - the build error:

                            Code:
                            Building DescentServer...
                            Using clang version '3.5.0' (string), 3 (major), 5 (minor), 0 (patch)
                            Linux dedicated server is made to depend on UElibPNG. We want to avoid this, please correct module dependencies.
                            ERROR: Exception thrown while processing dependent modules of VictoryBPLibrary
                            Exception thrown while processing dependent modules of ImageWrapper
                            ERROR: Unable to instantiate instance of 'UElibPNG' object type from compiled assembly 'DescentServerModuleRules'.  Unreal Build Tool creates an instance of your module's 'Rules' object in order to find out about your module's requirements.  The CLR exception details may provide more information:  System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> ERROR: Linux dedicated server is made to depend on UElibPNG. We want to avoid this, please correct module dependencies.
                            Edit: I had to remove ImageWrapper as a dependency and ifdef out all code using it in the plugin to get DedicatedServer to build.
                            Last edited by Stormwind; 08-04-2015, 09:05 PM.
                            Descent: Underground |

                            Comment


                              Originally posted by Number47 View Post
                              And what about snapping blueprint actors in the level, since in the current version you can only snap static meshes right?
                              That would be grand yes, adding it to my to do list

                              Originally posted by Stormwind View Post
                              Hi @Rama,

                              Thanks for the plugin!

                              I had to make a fix to get it building under Linux - the diff follows.

                              Have you considered putting your code on Github so people can send you pull requests for fixes/additions that you can easily decide to accept or not? If you are wlling, I offer to help set it up for you.

                              Edit: I had to remove ImageWrapper as a dependency and ifdef out all code using it in the plugin to get DedicatedServer to build.
                              Dear Stormwind,

                              Thanks for your fixes and taking the time to share them!

                              Will PM you about github possibilities

                              Thanks again!



                              Rama
                              Last edited by Rama; 08-05-2015, 02:11 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


                                Load and Save Custom Game.ini Config File Variable Data!

                                Click image for larger version

Name:	ConfigMain.jpg
Views:	9
Size:	283.6 KB
ID:	1083275

                                Rama' Suite of Custom Config Section BP Nodes!

                                Using my new suite of BP nodes, you can create as many of your own custom config file sections as you want!

                                You can both create and retrieve ini variables with any name and fundamental type that you want!

                                ~~~

                                Supported Types:

                                Bool
                                Int
                                Float
                                Rotator
                                Vector
                                Color
                                String

                                ~~~

                                Why Use a Config Var?

                                Config vars have several benefits

                                1. Persistent data storage without using a SaveGame struct or GameInstance, store simple quantities of data and player customization this way! Data is stored between level loads and even after the current instance of the game is shut down.

                                So in this way config vars have greater persistence than the GameInstance class!

                                2. Player-Driven Customization, Players of your game can tweak the config vars that you make available for them on their hard disk, by editing the .ini file directly, just like AAA games! This is the most significant advantage of using config files, and their real core purpose.

                                3. Simplicity, simpler to use than the BP SaveSystem (which is quite wonderful by the way), but not quite as powerful in that you can only store basic data types, not UObjects and Actors.

                                4. Organization, you can create as many config header sections as you want using my nodes, organizing all your custom settings this way!

                                ~~~

                                Game.ini

                                All of your custom created config vars and sections are stored in:

                                Saved/Config/Windows/Game.ini

                                Players can navigate to this location on their harddrive to edit your ini files just like any AAA game would allow!

                                Here's what my Game.ini file looks like after running some tests!

                                Code:
                                [DebugWindows]
                                ConsoleWidth=160
                                ConsoleHeight=4000
                                ConsoleX=-32000
                                ConsoleY=-32000
                                
                                [/Script/UnrealEd.ProjectPackagingSettings]
                                BuildConfiguration=PPBC_Development
                                StagingDirectory=(Path="E:/MYPROJECT_DELETE")
                                FullRebuild=True
                                ForDistribution=False
                                UsePakFile=True
                                UseOBB_InAPK=False
                                CulturesToStage=en
                                
                                [Victory]
                                BoolVar=True
                                VectorVar=X=1.000 Y=2.000 Z=9000.123
                                StrVar=Yay For Custom Config Vars!!!
                                FloatVar=234.000000
                                Now you have fully featured ability to use config variables entirely in BP!

                                ~~~

                                Example Usage

                                Here's example usage!

                                Click image for larger version

Name:	Usage.jpg
Views:	9
Size:	247.3 KB
ID:	1083276

                                ~~~

                                Latest plugin download on the UE4 Wiki: (8 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; 08-05-2015, 04:43 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

                                Working...
                                X