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

    Hello! Loving the plugin!

    I'm a forum newbie so I don't know if this is ok to ask, but what version should this be running on? I'm on 4.11.2 and it works fine except that it crashes now after a given time of simulation (usually around 2 minutes) seemingly having to do with the animation somehow. Everything worked great before the plugin but now it gives me these load errors:

    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_SkeletalControlBase
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_TwoBoneIK
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_RotationMultiplier
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_ModifyBone
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_CopyBone
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_SpringBone
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named AnimNode_BlendSpace
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named ESlateCheckBoxState
    [2016.05.21-20.00.58:031][ 0]LoadErrors:Error: Error ActiveClassRedirects contains a collision with multiple redirectors for old class named InstancedFoliageSettings

    Keep up the great work!

    Comment


      Originally posted by John Alcatraz View Post
      The error we talked about was this:

      1>[...]\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(10): fatal error C1083: File (Include) can't be opened: "Developer/ImageWrapper/Public/Interfaces/IImageWrapper.h": No such file or directory

      So there you see in which line the include happens

      But I would guess Rama has already fixed this bug now. Do you still get it?
      I did make this fix, it was in my official 4.11 release

      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 Harcarik View Post
        If so, ->
        I would like to request tool i saw in CryEngine.
        CE editor has this super useful trick called 'Quick Rotate'. What it does is, no matter what type of transform gizmo is currently selected (move, rotate, scale), pressing button will rotate currently selected mesh along world's Z axis (or the one that points up) in predetermined degrees (usually 45) without switching to rotate gizmo. Seems like small thing but it is super useful when you try it few times.
        Imagine you are placing framed paintings on the wall. You drag one from the CB, move it close to the wall and because luck would have it, painting is facing wrong way. Without selecting any other tool, just tap 'Quick Rotate' shortcut few times and picture is oriented as is should. Works perfectly if you are populating world with assets, no breaks in the flow, just move, quick rotate, select next one and so on. In the CE editor you can setup shortcuts for all axis but in my experience only Z axis is most used.

        If not - >
        I still love your work and i just want to say thanks!
        H.
        This sounds pretty great and easy to do!

        One thing I am confused about though with quick rotate, using painting example, your walls wont always be along world grid, so rotating 45 might never line up with your wall, are you sure you dont want some rotate relative to your current camera facing? tracing into world to find surface normal and rotate relative to that, in increments, could also work.

        Keep in mind mind we have opportunity to design a new editor feature here so we might as well think about it before proceeding.

        Any thoughts?

        Now its just about finding the right key to use in the editor, with my Vertex Snap plugin

        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 florianbepunkt View Post
          Hi Rama, can we make suggestions for future addons to the library? I would love to see a node that returns all blueprint classes (as an array for example) that are children of a specified blueprint class (not only the spawned objects). I found this post on the AnswerHub but it says it's currently not possible in Blueprint: https://answers.unrealengine.com/que...sses-that.html

          Edit: Another suggestion (if this is possible) would be nodes for animation blueprints that returns the current state of a state machine.

          Second Edit: I did a rather quick and dirty approach of this myself - https://forums.unrealengine.com/show...899#post533899
          Great to hear you did your own impl, what was your use case? What did you need this for?

          I can do a version for Victory BP library but I'm rather curious what the context is

          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


            Easily convert UMG Text Input from user to float!

            Dear Community,

            While I was trying to convert numbers inputted into Editable Text Blocks in UMG, I ran into the following:

            1. user enters 10000
            2. I convert Text input to string, and then to float, and get 10000
            3. user enters 10,000, I do the above but I get 10 in code instead.

            10?!!!

            I was highly confused

            Well turns out that when FString gets 10,000 which is converted that way by FText, then comma truncates the FString conversion to float and I end up with 10.

            This would be compounded by culture setting where user is inclined to enter 10.000,00


            So!

            I hereby present you with nodes that convert from FText to Float and Int, with Culture support!

            See pics!

            ~~~

            Culture Support

            As you can see in my pics I support both 10,000.99 and 10.000,99.

            If anyone has other versions like 10'000.99 that they need support for, let me know!

            The option to switch is hidden by default for convenience, just like for print string and FText to number conversions.

            Enjoy!

            Click image for larger version

Name:	TextToNum.jpg
Views:	2
Size:	209.0 KB
ID:	1106739

            Click image for larger version

Name:	TextToNum2.jpg
Views:	2
Size:	184.8 KB
ID:	1106740

            Click image for larger version

Name:	TextToNum3.jpg
Views:	2
Size:	152.7 KB
ID:	1106741

            ~~~

            C++ Code

            Here is the C++ code for these nodes!

            Please note the FText's are always passed by const reference for efficiency reasons.

            Also note that my internal FString formatting code uses ReplaceInline which avoids creating a copy of the string just to replace the symbols, and is thus much more efficient code.

            Code:
            UFUNCTION(BlueprintPure, Category = "VictoryBPLibrary")
            static bool Text_IsNumeric(const FText& Text)
            {
            	return Text.IsNumeric();
            }
              
            UFUNCTION(BlueprintPure, Category = "VictoryBPLibrary", meta=(AdvancedDisplay = "1"))
            static float Text_ToFloat(const FText& Text, bool UseDotForThousands=false)
            {  
            	//because commas lead to string number being truncated, FText 10,000 becomes 10 for FString
            	FString StrFloat = Text.ToString();
            	TextNumFormat(StrFloat,UseDotForThousands);
            	return FCString::Atof(*StrFloat); 
            }  
            
            UFUNCTION(BlueprintPure, Category = "VictoryBPLibrary", meta=(AdvancedDisplay = "1"))
            static int32 Text_ToInt(const FText& Text, bool UseDotForThousands=false)
            {   
            	//because commas lead to string number being truncated, FText 10,000 becomes 10 for FString
            	FString StrInt = Text.ToString();
            	TextNumFormat(StrInt,UseDotForThousands);
            	return FCString::Atoi(*StrInt);
            }
              
            static void TextNumFormat(FString& StrNum, bool UseDotForThousands)
            {
            	//10.000.000,997
            	if(UseDotForThousands)
            	{
            		StrNum.ReplaceInline(TEXT("."),TEXT(""));	//no dots as they truncate
            		StrNum.ReplaceInline(TEXT(","),TEXT("."));	//commas become decimal
            	}
            	
            	//10,000,000.997
            	else
            	{
            		StrNum.ReplaceInline(TEXT(","),TEXT(""));  //decimal can stay, commas would truncate so remove
            	}
            }
            New Download (29mb, Media Fire)
            https://www.mediafire.com/?ieovbd5l9d7yub2

            Please note my downloads also include these packaged binaries:

            1. Win64 Development
            2. Win32 Shipping
            3. HTML5 Development

            Please see my instructions for Packaging UE4 Plugins With Your Game.

            Donations can be sent to me via:
            http://lightningfitness.org/donate/



            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
              Great to hear you did your own impl, what was your use case? What did you need this for?

              I can do a version for Victory BP library but I'm rather curious what the context is

              Rama
              I work on a character controller. To keep things modular and self contained each motion (Walk/Run/Pivot, Jump, Idle, etc.) is a child class from a MotionBaseClass that provides basic functonality (activate motion, deactivate motion, etc.).

              Plan was that I have a node that gathers all motion child classes available and feed them to my CharacterBP, so I don't have to maintain a manual list of these motions. That's why I wrote this node. But this approach has its own caveats so I might use a manual list of motions after all..

              Cheers,
              Florian
              Last edited by florianbepunkt; 05-22-2016, 05:57 AM.

              Comment


                Originally posted by Rama View Post
                This sounds pretty great and easy to do!

                One thing I am confused about though with quick rotate, using painting example, your walls wont always be along world grid, so rotating 45 might never line up with your wall, are you sure you dont want some rotate relative to your current camera facing? tracing into world to find surface normal and rotate relative to that, in increments, could also work.

                Keep in mind mind we have opportunity to design a new editor feature here so we might as well think about it before proceeding.

                Any thoughts?

                Now its just about finding the right key to use in the editor, with my Vertex Snap plugin

                Rama

                Hi, i am really really glad you like this idea
                Tracing and finding surface angle would be incredible boost in some situations. In scenario with framed painting it would help a lot, but if you are trying to arrange something like boxes on the floor in the center of the room, then what would happen? How far would trace go? Maybe it could get grid snaping as a base value.

                I was thinking same thing about camera's angle as an 'anchor' for object's quick rotation. In my experience camera is rarely oriented exactly the way we need, so it may end up with rotating object 45° from camera's random 27.56242°. Unpredictable, but it may be helpful if user wants random angle just to break from 45° without changing any settings.

                Both ideas are very nice but may not work in all scenarios. Is there a chance to add those as a 'modifiers'? Let's say 'V' would just rotate the object, Ctr+V would use camera's angle and Alt+V would trace for surface. And maybe Ctr+Alt+V* to rotate along object's Z axis?

                *Shift key is reserved for moving camera with the moved object so it may be necessary use combos like this.

                Thanks for considering this idea
                H.
                Last edited by Harcarik; 05-22-2016, 09:05 AM.

                Comment


                  Hi , thanks for your work you are awesome.

                  Im Trying to use Load Level Instance node to align level2 to level1. The problem is that i cant align level to an actor location of level1(Door). i think that location of level is local , so how can i align one level before instance it? Actors of level can be static? should i make add level2 to persistent level1 like streaming levels?

                  Thanks for your time and sorry for my bad english.

                  Comment


                    After of use Load Level Instance in play editor mode , when i try to save : Click image for larger version

Name:	rama problem.png
Views:	1
Size:	100.9 KB
ID:	1106807

                    Comment


                      Regarding "Load Texture 2D from File" nodes of Victory Plugin

                      Dear Rama,

                      I hope you are doing well. First of all thank you for your contribution in unreal engine community.

                      I'm trying to set material onto object at run-time from texture, normal map, displacement map etc. located in the hard disk. To achieve this i need to create dynamic material instance and set the parameter to the material by loading the image file at run-time.

                      I'm creating material from texture & displacement map image file. These image files are loading from folder using Victory Plugin's "Victory Load Texture 2D from File" Node.

                      I'm creating the material instance dynamic of the "test material". Now I'm setting the texture and displacement parameter as shown in figure 4.
                      After creating material instance dynamic, I'm setting this material to the object.

                      figure[1] test material: http://imgur.com/PHlU0TA




                      figure[2] texture: http://imgur.com/6YmZ4ea



                      figure[3] displacement map: http://imgur.com/iGDYsrS



                      figure[4] Method: http://imgur.com/PQZ9C3a



                      Now here is the problem.

                      When I directly create material in material editor from texture and displacement map and set it onto object. It doesn't generate** moiré pattern.**

                      But when I run-time set the material onto object using figure [4]. It will generate moiré pattern.

                      Here are the sample screen shots of both.

                      figure[5]: Material Editor result: http://imgur.com/nKan9eK



                      figure[6]: Runtime result: http://imgur.com/ao2XnDk



                      I think the "Load Texture 2D from File" nodes is not calculating the Mip Map correctly.

                      I tried with following nodes but the result is same.
                      1> "Victory Load Texture 2D from File" (Created by you)
                      2> "Load Texture 2D from File by Extension" (Created by Kris)
                      3> "Victory Load Texture 2D from File Pixels" (Created by you)

                      http://imgur.com/MOZQLSu



                      I hope you will take this request into consideration. I would like to thank you in advance for your time and attention in this matter.
                      Should you have any further questions or concerns, please do not hesitate to contact me.

                      Regards,
                      manuganu

                      Comment


                        Hi Rama thanks for this great plugin!
                        I'm new on Unreal, so just BP programming for now. I need to load a texture from hdd and replace the old one at runtime, so your plugin it's perfect to do it but, there is a way to show the "open file dialog"? The target its just desktop, I did everything except this stupid dialog window to choose the file. I want to stay with bp and skip c++ if it's possible.

                        Another little question (cuz I'm new), I'm doing the project on PC but the target would be MAC, you plugin need a MAC version or just load the project on MAC?

                        Thanks,
                        Luciano

                        Comment


                          Originally posted by Ciano View Post
                          Hi Rama thanks for this great plugin!
                          I'm new on Unreal, so just BP programming for now. I need to load a texture from hdd and replace the old one at runtime, so your plugin it's perfect to do it but, there is a way to show the "open file dialog"? The target its just desktop, I did everything except this stupid dialog window to choose the file. I want to stay with bp and skip c++ if it's possible.

                          Another little question (cuz I'm new), I'm doing the project on PC but the target would be MAC, you plugin need a MAC version or just load the project on MAC?

                          Thanks,
                          Luciano
                          Welcome to the forums Luciano!

                          I will get to your questions as fast as I can, for your Mac question, you will need to use the Mac build that I sent out a little while ago, its a few posts back

                          Rama

                          Originally posted by Harcarik View Post
                          Hi, i am really really glad you like this idea
                          Tracing and finding surface angle would be incredible boost in some situations. In scenario with framed painting it would help a lot, but if you are trying to arrange something like boxes on the floor in the center of the room, then what would happen? How far would trace go? Maybe it could get grid snaping as a base value.

                          I was thinking same thing about camera's angle as an 'anchor' for object's quick rotation. In my experience camera is rarely oriented exactly the way we need, so it may end up with rotating object 45° from camera's random 27.56242°. Unpredictable, but it may be helpful if user wants random angle just to break from 45° without changing any settings.

                          Both ideas are very nice but may not work in all scenarios. Is there a chance to add those as a 'modifiers'? Let's say 'V' would just rotate the object, Ctr+V would use camera's angle and Alt+V would trace for surface. And maybe Ctr+Alt+V* to rotate along object's Z axis?

                          *Shift key is reserved for moving camera with the moved object so it may be necessary use combos like this.

                          Thanks for considering this idea
                          H.
                          The issue with tracing is that if you are facing straight ahead and the trace hits something far away, that is not related to what you are currently doing, you could get unexpected rotations.

                          It seems like the best combo is:

                          1. rotate to match surface normal via trace, so you could instantly align a picture with an angled wall surface

                          2. arbitrary rotation every 5 degrees if you dont use modifier key to do the traced version above. In this way, if your picture actor is rotated strangely relative to its own root, you would get the right surface normal angle and then press the arbitrary rotate key till like 90 or 45 or whatever is needed to get actual flush alignment with the wall.

                          With these two combinations I think any other situation can be dealt with, as you mention, relative to camera facing will always be a bit wonky without grid snap, but tracing gives that nice relative positioning that we want that does not care what the rotation of the wall surface or other objet is.

                          I will process this at my nearest convenience for the Vertex Snap Editor Plugin.



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


                            New BP Node ~ Does Material Have Parameter?

                            Dear Community,

                            In this new release:

                            1. I further improved the multi-HMD / VR device detection

                            2. I have a new node for you, Does Material Have Parameter!

                            You can supply any material, material interface, material instance constant, or material instance dynamic, and the parameter name, and my node will let you know if the parameter exists in your supplied material!

                            ~~~

                            What Is This For?

                            What you are getting with this node is the ability to supply any kind of material, constant or dynamic, and a parameter name, and find out of that parameter is present in the material graph!

                            This is very useful when you are trying to get/set the parameters of dynamic material instances, which allow you to change things like the color of character hair or clothing during runtime, such as for a Character Creation screen.

                            Chances are that not all materials you will have in your character will have every parameter, this node let's you find out which ones do and don't so you can adjust your UI accordingly.


                            Click image for larger version

Name:	DoesMaterialHaveParameter.jpg
Views:	1
Size:	141.4 KB
ID:	1106880

                            New Download (50.21mb, Media Fire)
                            https://www.mediafire.com/?ieovbd5l9d7yub2

                            Please note my downloads also include these packaged binaries:

                            1. Win64 Development
                            2. Win64 Shipping <~~~~~~ NEW!
                            3. Win32 Development
                            4. Win32 Shipping
                            4. HTML5 Development

                            Please see my instructions for Packaging UE4 Plugins With Your Game.

                            Donations can be sent to me via:
                            http://lightningfitness.org/donate/



                            Rama
                            Last edited by Rama; 05-24-2016, 01:57 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


                              Thanks Rama for your fast reply!
                              becouse I use also the VictoryUMG plugin (color wheel) I didn't see any Mac version maybe I missed some something? ...about the "open file dialog" there is any chance to do it with BluePrint or I have to go with c++ ?

                              In few words I'm doing a little demo where you can change the color of some parts of a model and load a custom texture from hdd to put on it as decal. I have done all the stuff but I miss the load from hdd part.

                              Anyway thanks for all your support.

                              Comment


                                Originally posted by Rama View Post
                                Welcome to the forums Luciano!

                                The issue with tracing is that if you are facing straight ahead and the trace hits something far away, that is not related to what you are currently doing, you could get unexpected rotations.

                                It seems like the best combo is:

                                1. rotate to match surface normal via trace, so you could instantly align a picture with an angled wall surface

                                2. arbitrary rotation every 5 degrees if you dont use modifier key to do the traced version above. In this way, if your picture actor is rotated strangely relative to its own root, you would get the right surface normal angle and then press the arbitrary rotate key till like 90 or 45 or whatever is needed to get actual flush alignment with the wall.

                                With these two combinations I think any other situation can be dealt with, as you mention, relative to camera facing will always be a bit wonky without grid snap, but tracing gives that nice relative positioning that we want that does not care what the rotation of the wall surface or other objet is.

                                I will process this at my nearest convenience for the Vertex Snap Editor Plugin.



                                Rama
                                Seeems awesome to me, can't wait for your nearest convenience event!
                                Thanks!!!
                                H.

                                Comment

                                Working...
                                X