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 Rama View Post
    Hi there!

    Yes you definitely need to compile my template yourself, because you also cannot add code to it unless you compile it yourself!

    You need Visual Studio Express 2013 for Desktop.

    https://www.visualstudio.com/en-us/p...xpress-vs.aspx

    Make sure to get the "Community" edition or the one that says "For Windows Desktop"

    Install that, and then you can use VS to compile.

    The only alternative to a C++ plugin would be to make a BP Library asset that you share with people.

    Enjoy!



    Rama

    30+ New Nodes!
    PS: I recently released 30+ new nodes for Math, 3D Geometric Analysis, and Physics!
    I reinstalled my Visual Studio 2013, with the VS 2013 Ultimate for desktop, but how do I compile VictoryAI manually?
    Marketplace Assets

    Advanced Mobile Input: Marketplace Page | Support Thread ――― Easy Input Remapping: Marketplace Page | Support Thread
    Multiplayer Blueprint Chat System: Marketplace Page | Support Thread ――― Closing Credits System: Marketplace Page | Support Thread
    Minesweeper Template: Marketplace Page | Support Thread ――― Maze Creator: Marketplace Page | Support Thread

    Comment


      Originally posted by Jamendxman3 View Post
      I reinstalled my Visual Studio 2013, with the VS 2013 Ultimate for desktop, but how do I compile VictoryAI manually?
      Hi there!

      So step 1 is to turn your project into a project that has source code: (or see my note below!)

      1. Create a new empty actor class in the editor via File->add code to project
      2. Now you can close the editor and navigate to the folder containing your .uproject.
      3. make sure you are storing my plugin template inside a folder called "Plugins" that is in this same directory as your .uproject
      4. if you dont see a .sln file you can right click on your .uproject and select Generate VS Files
      5. open the .sln that is created and build your project! ("build" from top menu bar)

      Because your project is now setup to have source code, the Unreal Build Tool (UBT) will detect the plugin template and compile it along with the source code for your project.

      Now you can proceed with modifying my plugin template, and then just keep recompiling your main project .sln file!

      Please note, you can use any project to do this process, so you could even create a new C++ project that is really just to compile the plugin, and then use the plugin with your BP-only project.



      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


        Can you please make the next node to be a node that enable you to use external audio files like you did with the texture node ?
        Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

        Comment


          Originally posted by Sahkan View Post
          Can you please make the next node to be a node that enable you to use external audio files like you did with the texture node ?
          Sounds cool but I can think a few possible problems, such as UE4 only supports .wav.

          What would be the use case though? curious

          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


            Originally posted by TK-Master View Post
            Sounds cool but I can think a few possible problems, such as UE4 only supports .wav.

            What would be the use case though? curious
            Well, if users could place their own texture packs, why not matching sounds as well?
            Marketplace Assets

            Advanced Mobile Input: Marketplace Page | Support Thread ――― Easy Input Remapping: Marketplace Page | Support Thread
            Multiplayer Blueprint Chat System: Marketplace Page | Support Thread ――― Closing Credits System: Marketplace Page | Support Thread
            Minesweeper Template: Marketplace Page | Support Thread ――― Maze Creator: Marketplace Page | Support Thread

            Comment


              Originally posted by TK-Master View Post
              Sounds cool but I can think a few possible problems, such as UE4 only supports .wav.

              What would be the use case though? curious
              I Want to give the user the ability to replace audio files for certain actions, like a shooting sound for example.
              So the user can replace fire.wav with an other fire.wav and the game will play the current file.
              Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

              Comment


                Hey Rama,

                thanks a lot for this great plugin!
                Could the "Victory Save Pixels" node be extended in a way that it outputs a new Texture2d without saving the file to disk first?

                edit: actually, get the pixels of a Texture2d, manipulate, and create a new Texture2d
                Last edited by Ben_Cykyria; 05-07-2015, 01:25 PM.
                VR Shooter Guns - Arcade Shooter for Vive
                Unreal Meetup Franken - Unreal Engine 4 Meetup
                Hands for VR: Basic - For Vive and Oculus [Marketplace]
                Hands for VR: SciFi - For HTC Vive and Oculus Touch [Marketplace]

                Comment


                  Load .Wav From File and play it!

                  Originally posted by Sahkan View Post
                  I Want to give the user the ability to replace audio files for certain actions, like a shooting sound for example.
                  So the user can replace fire.wav with an other fire.wav and the game will play the current file.
                  Dear Sahkan,

                  I already have these nodes for loading audios from file!

                  Does this give you want?

                  PlaySoundAttachedFromFile
                  PlaySoundAtLocationFromFile
                  GetSoundWaveFromFile


                  Code:
                  /** Contributed by UE4 forum member n00854180t! Plays a sound from file, attached to and following the specified component. This is a fire and forget sound. Replication is also not handled at this point.
                  * @param FilePath - Path to sound file to play
                  * @param AttachComponent - Component to attach to.
                  * @param AttachPointName - Optional named point within the AttachComponent to play the sound at
                  * @param Location - Depending on the value of Location Type this is either a relative offset from the attach component/point or an absolute world position that will be translated to a relative offset
                  * @param LocationType - Specifies whether Location is a relative offset or an absolute world position
                  * @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
                  * @param VolumeMultiplier - Volume multiplier
                  * @param PitchMultiplier - PitchMultiplier
                  * @param AttenuationSettings - Override attenuation settings package to play sound with
                  */ 
                  UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (VolumeMultiplier = "1.0", PitchMultiplier = "1.0", AdvancedDisplay = "2", UnsafeDuringActorConstruction = "true"))
                  static class UAudioComponent* PlaySoundAttachedFromFile(const FString& FilePath, class USceneComponent* AttachToComponent, FName AttachPointName = NAME_None, FVector Location = FVector(ForceInit), EAttachLocation::Type LocationType = EAttachLocation::SnapToTarget, bool bStopWhenAttachedToDestroyed = false, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, class USoundAttenuation* AttenuationSettings = NULL);
                  
                  /** Contributed by UE4 forum member n00854180t! Plays a sound at the given location. This is a fire and forget sound and does not travel with any actor. Replication is also not handled at this point.
                  * @param FilePath - Path to sound file to play
                  * @param Location - World position to play sound at
                  * @param World - The World in which the sound is to be played
                  * @param VolumeMultiplier - Volume multiplier
                  * @param PitchMultiplier - PitchMultiplier
                  * @param AttenuationSettings - Override attenuation settings package to play sound with
                  */
                  UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject", VolumeMultiplier = "1.0", PitchMultiplier = "1.0", AdvancedDisplay = "3", UnsafeDuringActorConstruction = "true"))
                  static void PlaySoundAtLocationFromFile(UObject* WorldContextObject, const FString& FilePath, FVector Location, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, class USoundAttenuation* AttenuationSettings = NULL);
                  
                  /** Contributed by UE4 forum member n00854180t! Creates a USoundWave* from file path.
                  * Read .ogg header file and refresh USoundWave metadata.
                  * @param FilePath		path to file to create sound wave from
                  */
                  UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary")
                  static class USoundWave* GetSoundWaveFromFile(const FString& FilePath);
                  Enjoy!

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


                    Originally posted by Rama View Post
                    Load .Wav From File To USoundWave*



                    Dear Sahkan,

                    I already have these nodes for loading audios from file!

                    Does this give you want?

                    PlaySoundAttachedFromFile
                    PlaySoundAtLocationFromFile
                    GetSoundWaveFromFile


                    Code:
                    /** Contributed by UE4 forum member n00854180t! Plays a sound from file, attached to and following the specified component. This is a fire and forget sound. Replication is also not handled at this point.
                    * @param FilePath - Path to sound file to play
                    * @param AttachComponent - Component to attach to.
                    * @param AttachPointName - Optional named point within the AttachComponent to play the sound at
                    * @param Location - Depending on the value of Location Type this is either a relative offset from the attach component/point or an absolute world position that will be translated to a relative offset
                    * @param LocationType - Specifies whether Location is a relative offset or an absolute world position
                    * @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
                    * @param VolumeMultiplier - Volume multiplier
                    * @param PitchMultiplier - PitchMultiplier
                    * @param AttenuationSettings - Override attenuation settings package to play sound with
                    */ 
                    UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (VolumeMultiplier = "1.0", PitchMultiplier = "1.0", AdvancedDisplay = "2", UnsafeDuringActorConstruction = "true"))
                    static class UAudioComponent* PlaySoundAttachedFromFile(const FString& FilePath, class USceneComponent* AttachToComponent, FName AttachPointName = NAME_None, FVector Location = FVector(ForceInit), EAttachLocation::Type LocationType = EAttachLocation::SnapToTarget, bool bStopWhenAttachedToDestroyed = false, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, class USoundAttenuation* AttenuationSettings = NULL);
                    
                    /** Contributed by UE4 forum member n00854180t! Plays a sound at the given location. This is a fire and forget sound and does not travel with any actor. Replication is also not handled at this point.
                    * @param FilePath - Path to sound file to play
                    * @param Location - World position to play sound at
                    * @param World - The World in which the sound is to be played
                    * @param VolumeMultiplier - Volume multiplier
                    * @param PitchMultiplier - PitchMultiplier
                    * @param AttenuationSettings - Override attenuation settings package to play sound with
                    */
                    UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject", VolumeMultiplier = "1.0", PitchMultiplier = "1.0", AdvancedDisplay = "3", UnsafeDuringActorConstruction = "true"))
                    static void PlaySoundAtLocationFromFile(UObject* WorldContextObject, const FString& FilePath, FVector Location, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, class USoundAttenuation* AttenuationSettings = NULL);
                    
                    /** Contributed by UE4 forum member n00854180t! Creates a USoundWave* from file path.
                    * Read .ogg header file and refresh USoundWave metadata.
                    * @param FilePath		path to file to create sound wave from
                    */
                    UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary")
                    static class USoundWave* GetSoundWaveFromFile(const FString& FilePath);
                    Enjoy!

                    Rama
                    Holy **** ! you are a god ! Thanks XD
                    Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

                    Comment


                      Rama,Can you tell us how do you make the VictoryAI plugin template?

                      Comment


                        Originally posted by btengelh View Post
                        Hey Rama,

                        thanks a lot for this great plugin!
                        Could the "Victory Save Pixels" node be extended in a way that it outputs a new Texture2d without saving the file to disk first?

                        edit: actually, get the pixels of a Texture2d, manipulate, and create a new Texture2d
                        When I have some time I can work on this yes

                        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


                          TMaps, Mapping Two Data Types Together In BP!

                          Click image for larger version

Name:	AddComponent.jpg
Views:	3
Size:	96.3 KB
ID:	1076057

                          Rama's Blueprints TMap Solution!

                          I've now made a BP TMap solution!

                          TMap is a data structure that is not yet exposed to BP, but I've made a component-based solution for you so that you can use TMaps in BP!

                          ~~~

                          What's a TMap?

                          Really it's name is "Map" and T is the class specifier in C++, but I tend to call them TMaps since Map is a rather generic word.

                          A TMap is a data structure based on Key,Value pairs, where for any Key there is only one Value.

                          This allows internal data structure look up times that are much faster than a regular dynamic array.

                          This also allows for the association of dissimilar data types in a way that you organize.

                          For example, you can map a set of integers to a set of Vectors, so that each integer is related to exactly one vector.

                          Or, as I provide you with in my plugin, you can relate a String to an Actor!

                          This means you can look up an Actor reference via a simple string input!

                          Or you can look up Vector data based on String data!

                          The primary use of TMaps is for efficient lookup of data, which dynamic arrays simply cannot do because there is no guarantee or assumption with dynamic arrays of anything like a key,value where each key has only 1 value.

                          The rules of TMaps allow for efficient look up to speed up your game flow!

                          ~~~

                          Actor Component

                          My solution is component-based, which means you can have per-instance TMap data for your game's actors!

                          You simply add my Victory TMap Component to any actor you want!

                          I used the My Character blueprint in my own tests!!!

                          You can use literally any actor you want, or make a new actor BP whose only role is to house the TMap Component

                          ~~~

                          Supported Types

                          Click image for larger version

Name:	VictoryTMap.jpg
Views:	3
Size:	246.8 KB
ID:	1076058

                          Supported TMap Functions

                          Click image for larger version

Name:	VictoryTMap2.jpg
Views:	3
Size:	207.5 KB
ID:	1076059

                          Click image for larger version

Name:	IsValidCheckOnGet.jpg
Views:	3
Size:	186.2 KB
ID:	1076060

                          ~~~

                          Additional TMap Combinations

                          If you find that you cannot use my existing set of TMap Combinations to fulfill your game's needs, let me know by posting in this thread and I can add additional TMaps to the component.

                          ~~~

                          Per Instance

                          Remember that what I providing you with is a component-based solution, so you can add this TMap data to as many actors in your game as you want, and have per-instance variations in the data contained therein!

                          ~~~

                          Most Recent Plugin Download From UE4 Wiki
                          https://wiki.unrealengine.com/File:VictoryPlugin.zip




                          Rama
                          Last edited by Rama; 05-09-2015, 10:34 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


                            Anybody know how to hack this into 4.8 preview? :P - Testing it, it doesn't seem to be a simple drag and drop, Which was the case in 4.6 > 4.7.
                            KITATUS
                            "Information shouldn't be behind a paywall, It should be free for all!"

                            Comment


                              I tried the "get sound wav from file" and it didn't work for me.
                              While "get texture from file" worked great, trying to get the wav files the exact same way and it gives me nulls.
                              Did someone try that node already?

                              Edit: Oh i see now. they files supposed to be in .ogg format, it wasn't that obvious though :\
                              Last edited by Sahkan; 05-12-2015, 01:52 PM.
                              Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare

                              Comment


                                Thank you Rama, and everybody who ever contributed for this great Plugin, it's really awesome.

                                I have a question and a request:

                                In January you wrote on answerhub that it will be possible "very soon" to package BP only projects - is there any new information?

                                I really would love to see Apply Multiple Damage & Event Multiple Damage nodes. Similar to the current ones, but instead of a float as base damage it would carry a float array, so it may affect various attributes at once with different intensity - e.g. Life, Mana, Stamina. In addition it may also have a bool array and another float array for "is DoT (damage over time)" and "DoT (damage over time) duration". The Bool array is not really necessary, but it may be a bit more comfortable to work with.
                                Last edited by aWinter; 05-11-2015, 09:12 PM.

                                Comment

                                Working...
                                X