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

  • (39) Rama's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

    Dear Community,

    I've decided to create my own C++ Blueprint Function Library of any functions that I've written that think you will find useful!

    A Blueprint Function Library is a set of blueprint nodes that you can access from any blueprint, any time!

    These are functions you can call from AnimBlueprints, Character blueprints, level blueprints, anywhere!

    Because this is a plugin, you dont have to do any code compiling and can use my BP nodes in a content-only project!

    ~~~

    Download Links

    4.22 (win32, win64, editor, dev packaged, and shipping)
    https://www.mediafire.com/file/87hgn...in422.zip/file

    ♥ Please note I now use the UE4 Marketplace C++ Plugin Standard when packaging Victory plugin for you ♥

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

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

    ~~~

    Prior Engine Versions

    4.11: http://www.mediafire.com/download/jp...ryPlugin11.zip

    4.12: http://www.mediafire.com/download/g4...ryPlugin12.zip

    4.13: https://www.mediafire.com/?7kt9fepwa1pgs0y

    4.14: http://www.mediafire.com/file/7915cu...ryPlugin14.zip

    4.15: https://www.mediafire.com/?6nne04gd74emnzu

    4.16: http://www.mediafire.com/file/ieovbd...ryPlugin16.zip

    4.17: https://www.mediafire.com/file/ocm8o...ryPlugin17.zip

    4.18: http://www.mediafire.com/file/8slx62...ryPlugin18.zip

    4/19: http://www.mediafire.com/file/org12p...ryPlugin19.zip

    4.20: http://www.mediafire.com/file/advi8v...gin20.zip/file

    4.21: https://www.mediafire.com/file/ryxdp...gin21.zip/file

    ~~~


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



    Rama

    ~~~

    Github Repository

    If you'd like to contribute code to my Victory Plugin you can do so here!

    Github Link
    https://github.com/EverNewJoy/VictoryPlugin

    ~~~

    Download Link

    Epic Wiki Link
    https://wiki.unrealengine.com/Rama%2...lugin_Download

    Just get the most recent version

    ~~~

    Entire Source Code For You!

    I am including the entire source code for the plugin and the actual nodes in the download!



    Rama

    ~~~

    Victory BP Library Copyright Permissions

    Originally posted by DennisSoemers View Post
    Hey Rama, a quick question. Is the code included in the download completely free to use for any and all purposes? I don't believe it contains any document that describes permissions as to what it's allowed to be used for? And yes, I realize touching the code is not strictly necessary, but in some cases I would prefer to just use the C++ code directly instead of the blueprints.
    Yes the code is free to use anywhere you want!

    I only request that you mention me in the credits for your game in the way that feels most appropriate to you, thereby honoring my contributions.

    I prefer to be mentioned as simply "Rama"



    Rama

    ~~~

    Video Installation Instructions

    Video Guide to Installing Victory Plugin

    By Sahkan


    Here's a guide to installing my Victory Plugin, thanks for making it Sahkan!




    ~~~

    Update:

    Blueprint Nodes Now Work in Shipping Builds

    Special thanks to Lion for sending me an updated version of my plugin code that works with shipping builds!

    The vertex editor mode is still there, but the BP Nodes portion is a separate module now and will compile when my nodes are included in a packaged game.

    thanks Lion!

    ~~~

    Newest Nodes!

    Get Controller ID ~ takes in player controller and gives the ULocalPlayer's ControllerID

    Get Player State PlayerID ~ returns the replicated unique PlayerID for the supplied Player Controller!

    Get Current Operating System Time ~ Retrieve your local current time, milliseconds, seconds, minutes, hours, day, month, year!

    Get Time Since Previous Recorded Time ~ Retrieve the difference in time since your chosen previous time! You can record down to the sub-millisecond level, and up to hours!

    Get Difference Between Any Two Times ~ With this node you can compare any two times that you've recorded using my node above!

    You can store as many moments in time as you want using my above node, the time is recorded as string that I can parse back into actual DateTime struct data!


    Get Supported Screen Resolutions for End User's Current Display Adapter
    https://forums.unrealengine.com/show...ll=1#post26535

    Get Current OS Platform (Win,Mac,Linux,PS4,XboxOne,Android,iOs,HTML5, etc)
    https://forums.unrealengine.com/show...ll=1#post59742

    ~~~

    Video of my BP Rag Doll System With Follow Camera

    Included in these BP nodes is a set of nodes to enable you to activate/deactivate ragdoll any time you want, WITH a built-in follow camera during ragdoll!

    Here is a video of exactly what I am providing in these nodes, I used these nodes to make the video.



    ~~~

    Pictures

    Here are some pics of a few of the nodes I am giving you below!

    Get Recently Rendered / Not Rendered Actors
    Click image for larger version  Name:	renderedactorshappy.jpg Views:	1 Size:	150.2 KB ID:	1134322

    Get Character Bone Current Locations
    Click image for larger version  Name:	characterbonelocations.jpg Views:	2 Size:	169.5 KB ID:	1134318

    Trace for Closest Socket
    Click image for larger version  Name:	picofclosestsocket.jpg Views:	2 Size:	238.0 KB ID:	1134319

    Victory Ragdoll System, Including Follow Camera
    Click image for larger version  Name:	ragdollgraph.jpg Views:	3 Size:	265.6 KB ID:	1134320

    Trace Data With Skeletal Mesh
    Click image for larger version  Name:	tracedata_from_mesh_and_getskelmesh.jpg Views:	2 Size:	212.0 KB ID:	1134321


    5 More Pictures, Enjoy!
    https://forums.unrealengine.com/show...ll=1#post26153


    ~~~

    Installation

    1. put the .zip contents in a folder in your main directory where your .uproject is, called "Plugins" (name most be precise)

    2. open editor and go to window->plugins

    3. make sure my Victory Plugin is checked off as being active

    4. restart editor

    5. go to a blueprint, turn off context sensitive, look up "Victory" and you should see a lot of new blueprint nodes / functions!



    6. If you want to use the vertex snapping feature as well, please see installation instructions here:

    https://wiki.unrealengine.com/Rama%2...n#Installation

    ~~~

    Current List of Functions (48 Nodes Total)



    ~~~ Recently Added ~~~


    ~~~ Frame Rate / Graphics Options ~~~

    Set Max Frame Rate

    Set Frame Rate To Be Unbound!



    4 New Nodes

    Max of Float Array

    Max of Int Array

    Min of Float Array

    Min of Int Array


    https://forums.unrealengine.com/show...ll=1#post77775

    ~~~

    Get Current Operating System Time
    https://forums.unrealengine.com/show...ll=1#post65910

    Get Time Since Previous Record Timed
    https://forums.unrealengine.com/show...ll=1#post65910

    Get Difference Between Any Two Recorded OS Times
    https://forums.unrealengine.com/show...ll=1#post65920


    Get Supported Screen Resolutions for End User's Current Display Adapter
    https://forums.unrealengine.com/show...ll=1#post26535

    Combine Strings ~ Combine two strings with optional separator and labels
    https://forums.unrealengine.com/show...ll=1#post26535

    Clone Static Mesh Actor (during game time)
    https://forums.unrealengine.com/show...ll=1#post26262

    Teleport Actor to Actor
    https://forums.unrealengine.com/show...ll=1#post25769


    ~~~ File IO ~~~

    ~ SaveStringTextToFile - Save human-readable text to a file of your choosing.



    ~~~ ViewPort & Mouse Cursor ~~~

    The Set/Get Mouse Position nodes work directly with the player's viewport, and do not require access to the HUD canvas.

    ~ Set Mouse Position - SET the mouse position to any values of your choosing!
    ~ Get Mouse Position - Get the current mouse position, will be consistent with results of SET Mouse Position

    ~ Get Center Of Viewport - Obtain the coordinates of the center of the viewport! Works in PIE as well as standalone game instances

    ~~~

    ~~~ Traces ~~~

    TraceData - Calculates the Start and End for a new Trace for use with any trace node of your choosing!

    ~ TraceData Get Trace Data From Character Socket - You pick the rotation, and only need to supply the actor (really a character, but casted internally for your convenience), and a socket name, and a trace length. Optionally you can draw the trace data as a thick 3D line so you can visualize what the actual trace will do

    ~ TraceData Get TraceData From Skeletal Mesh Socket - You pick the rotation, and only need to supply the Skeletal Mesh Component, a socket name, and a trace length. Optionally you can draw the trace data as a thick 3D line so you can visualize what the actual trace will do


    ~ Trace For Character Mesh, Closest Bone Pass in just 3 simple variables, Trace Start, Trace End, and the Trace Owner. Get Back: Hit Location, Hit Normal, Name of Closest Bone to the impact, the location of that Bone, and the Actor/Character that was hit.

    ~ Trace For Character Mesh, Closest Socket: Pass in just 3 simple variables, Trace Start, Trace End, and the Trace Owner. Get Back: Hit Location, Hit Normal, Name of Closest Socket to the impact, the location of that Socket, and the Actor/Character that was hit.


    ~ Get Character's Mesh Component Retrieve the Mesh component of a character, IsValid let's you know whether the return value is valid or not, so do a branch to check

    ~ Get Bone Locations Returns an array of all the bone locations on the Character. The Character's Mesh component must be valid for this to work. Returns false if the operation could not occur.


    ~~~ Closest Point to Source Point Calculation ~~~

    ~ Closest Point to Source Point : Takes in an array of points and finds which one was closest to the source point. Returns: what the minimum distance was, as well as the vector that was closest to Source.


    ~~~ Rendering ~~~


    ~ Freeze Game Render

    ~ UnFreeze Game Render

    ~ Game Window is the Foreground window in the OS: - works in PIE and Standalone game instances

    You can combine the above to freeze the game render whenever the game window is not the foreground in the OS !

    ~ Get Array of Currently Rendered Actors - Retrieve array for use with foreach loop, iterating over all currently rendered actors. You can choose what time interval is recent enough, I default to 0.01 seconds.

    ~ Get Array of Currently NOT Rendered Actors Detailed Info and Pics[/URL])
    - Retrieve array for use with foreach loop, iterating over all currently NOT rendered actors. You can choose what time interval is recent enough, I default to 0.01 seconds.


    ~~~ Aim Offsets ~~~


    ~ Aim Offsets, For Use With Blend Spaces in probable range of -90,90 to 90,90

    ~ GetAimOffsets - Original Inspiration for this BP Library, This is a Blueprint version of the same core c++ code as Shootergame uses. With this function you can create a blendspace using 9 animations for the nine directions to create an equivalent of the UE3 Aim Node. You plug the results of this function straight into your Aim Blendspace. See Shootergame example for exact details.

    ~ GetAimOffsetsFromRotation - Instead of assuming you want to get the character's aim based on the controller, you can use this version to supply the rotation in world space that you want the character to aim to.


    ~~~ 3D Drawing ~~~


    ~ Drawing 3D Lines of Chosen Thickness


    ~ Thick3DLineBetweenActors - Draw a 3D line of your chosen thickness and duration between two Actors! You can use the BP color pick to pick line color!

    ~ Thick3DLineFromCharacterSocket - Draw a 3D line of your chosen thickness and duration from a specified Character Mesh Socket to your chosen destination. You can use the BP color pick to pick line color!

    ~ Thick3DLineFromSocket - Same as above, but you can use any mesh of your choosing.


    ~~~ Misc ~~

    ~ Get Object/Actor Name As String - Get the name of any actor, component, or anything at all, as a String.

    Identify whether game logic is running in Editor,PIE,or Game World!

    [B]~ Set Scene Component Mobility

    Convenience
    ~ GetControllerRotation - Get the Character's controller's rotation, fast way to get PlayerController or AIController rotation!

    Conversions

    ~ RotatorToVector
    ~ VectorToRotator



    ~~~ Misc 2: Colors and Math ~~~


    ~ Change Hue

    ~ Change Saturation

    ~ Get Float As String With Precision - Get a float as a string with your chosen precision, the re-precisioned float is rounded appropriately. Enjoy!

    ~ GetSocketLocalTransform - Accessor to this c++ function for your convenience, enjoy


    ~~~ My Fully Toggle-able Ragdoll Physics System ~~~


    Below is the entire graph using my nodes to toggle ragdoll physics mode with the press of a button, while also causing the camera to stay up to date with the position of the ragdoll as it flies around!

    See video above!

    ~ Initialize Victory Rag Doll - you need to have two variables in your blueprint to store the output of this node. Note that you only call this node ONCE. If you call while character is in ragdoll it will not work correctly So I call this at game start with EventReceiveBeginPlay. The output is in relative Character space, not world space so once it is obtained once it is always correct.

    ~ Is In Rag Doll - Very useful for creating a Rag doll toggle system

    ~ Enter Rag Doll - The supplied actor is converted to a Character for your convenience, returns false if operation could not occur. Checks whether the character has a physics asset for you.

    ~ Leave Rag Doll - Here is where you use the output from Initialize Victory Rag Doll to restore the character to proper orientation. This part took me a while to figure out!

    ~ Update Character Camera - My gift to you, causes the camera to stay up to date with the ragdoll as it moves around, but does so SMOOTHLY. Took me a while to get this just right. You can adjust the interpolation speed / how fast the camera keeps up with the ragdoll. The offset determines how high above the ragdoll the camera tries to stay.
    Last edited by Rama; 04-04-2019, 03:53 PM.

  • replied
    Originally posted by inedible.red View Post
    "capture component 2d save image" is not saving alpha in PNG and it's crashing using BMP
    Well i tried using it in BP and it worked just fine.
    Now i'm trying to do the same thing in c++ with the exact same data and like i said i can't event build the project because of missing includes in my own plugin but located at Victorys Plugin.

    Leave a comment:


  • replied
    "capture component 2d save image" is not saving alpha in PNG and it's crashing using BMP

    Leave a comment:


  • replied
    Originally posted by inedible.red View Post
    Why is this not on the marketplace ?
    Because there is another package already available that does similar things...its also free. There is another BP only package that tried to get on the MP but was denied for that reason.

    teak

    Leave a comment:


  • replied
    Why is this not on the marketplace ?

    Leave a comment:


  • replied
    Hey,

    i'm currently using a self-made plugin combined with the victory plugin in 4.21 in c++.
    I have made custom dependencys adding victory plugin to my self-made plugin .uplugin & .build.cs, so i can use the CaptureComponent2D_SaveImage() function.

    Editor is starting fine out of VS17, but if i now try to build the project, i'll always get an "C1083: include cound't be opend: "AIController.h" No such file or directory.

    I can change the import to "Runtime/AIModule/Classes/AIController.h", but then there are a couple of includes missing in "AIController.h"

    Anybody got an idea why this is happening?
    Do i have to change every import path manually?
    Last edited by MarlinAtRevis3d; 07-11-2019, 05:38 AM.

    Leave a comment:


  • replied
    Originally posted by teak421 View Post

    I went back a few pages and I couldn't find anything posted by you... (maybe further back), so apologies if you already put forward what is not working... Anyway, are you using the "get pixel rgb from texture" node or are you not using it but it is preventing you from creating a shipping build and if it was removed, the problem would be solved?

    teak
    Other people have posted this issue 2 times already, so I didn't want to post it a third time.

    The node itself works fine in the editor, but in the shipping build it always returns 0 and I have no idea why.

    I was using it to determine blocked paths on a minimap and it would be a great artistic way to draw special points on a map that has influence on the gameplay, but it doesn't work in shipping.

    I'm using a different method now by just filling an array with coordinates (more time consuming and less awesome).
    Last edited by Blue669; 07-05-2019, 04:51 AM.

    Leave a comment:


  • replied
    Has anybody noticed a performance impact when using the "LoadTexture2DFromFileExtension" Node? I've done a bunch of profiles of texture srteaming, GPU and CPU profilers and it seems to have little to no impact on performance compared to either other actors with dynamic materials, or completely static actors with a standard material instance.

    Leave a comment:


  • replied
    Just popping in to say thank you!
    Was able to write to and read from logs quite easily thanks to this thread and all contributors here.
    Last edited by NotSoAccurateNo1; 06-26-2019, 05:29 PM.

    Leave a comment:


  • replied
    Originally posted by Blue669 View Post

    You should know as well as I do that it's not so easy to just go into somone's source code and fix / add features yourself.

    The point that Rama has stopped working on this is not an isolated issue. It goes through the whole marketplace as well, because many items there are now useless because the creator isn't getting as much out of it anymore to give a **** about it and stop working on it. It's a shame. I can't afford pushing updates of my games back because some marketplace dev doesn't update his plugins anymore. But ultimately it made me stop using any 3rd party plug-ins for good. In the specific case of this plugin, many very valuable things from this have already been adapted into the official UE4 build, so there is less and less reason to keep using it.

    Maybe that's why Rama gave up on it.
    And just to be clear - I think Rama is a great guy who's dedication to his work is commendable. I fully understand why he would eventually abandon his older work like this, because there is just nothing in it for him anymore to keep working on it.

    PS: Please fix the "get pixel rgb from texture" node, it's broken in shipping build
    I went back a few pages and I couldn't find anything posted by you... (maybe further back), so apologies if you already put forward what is not working... Anyway, are you using the "get pixel rgb from texture" node or are you not using it but it is preventing you from creating a shipping build and if it was removed, the problem would be solved?

    teak

    Leave a comment:


  • replied
    Originally posted by teak421 View Post

    This is free plugin...he has to earn a living...so, maybe he's working on paid stuff...you can review the source code yourself to see if you can fix / add features.

    teak
    You should know as well as I do that it's not so easy to just go into somone's source code and fix / add features yourself.

    The point that Rama has stopped working on this is not an isolated issue. It goes through the whole marketplace as well, because many items there are now useless because the creator isn't getting as much out of it anymore to give a **** about it and stop working on it. It's a shame. I can't afford pushing updates of my games back because some marketplace dev doesn't update his plugins anymore. But ultimately it made me stop using any 3rd party plug-ins for good. In the specific case of this plugin, many very valuable things from this have already been adapted into the official UE4 build, so there is less and less reason to keep using it.

    Maybe that's why Rama gave up on it.
    And just to be clear - I think Rama is a great guy who's dedication to his work is commendable. I fully understand why he would eventually abandon his older work like this, because there is just nothing in it for him anymore to keep working on it.

    PS: Please fix the "get pixel rgb from texture" node, it's broken in shipping build
    Last edited by Blue669; 06-21-2019, 04:12 AM.

    Leave a comment:


  • replied
    Originally posted by Bob3DGames View Post
    Still getting error "LogPluginManager: Warning: Plugin 'VictoryBPLibrary' is not compatible with the current engine version (4.22.0)" when trying to open engine version 4.22.2.
    You've most likely already checked...but...have you opened the .uplugin file in a text editor and make sure that the version is set to 4.22.0?

    teak

    Leave a comment:


  • replied
    Originally posted by Blue669 View Post
    No point in writing here anymore. Several nodes are broken in shipping as well. Rama has stopped giving a ****.
    This is free plugin...he has to earn a living...so, maybe he's working on paid stuff...you can review the source code yourself to see if you can fix / add features.

    teak

    Leave a comment:


  • replied
    No point in writing here anymore. Several nodes are broken in shipping as well. Rama has stopped giving a ****.

    Leave a comment:


  • replied
    Hi all, and thanks Rama for such a great plugin!

    I wondered if anyone would have some advice: I installed the plugin for 4.22 like two weeks ago, I had some doubts but it even works for 4.00.2!
    What I needed was a way to move and rename a screenshot, so I discovered the 'Screen Shots Rename Move Most Recent' node, which is perfect and does just that!

    Playing with it for some time, linking it to my other nodes, it works well! Except when I package my project as Develoment or Shipping, then the node won't work. Actually it will half work because it still manages to create a folder following a custom naming, but won't manage to rename and move the screenshot.

    So I investigated some things, I tought it may have to do with the default Screenshots folder maybe. The node knows whatever default Screenshots folder I use while I'm in Unreal - but I guess it's lost at runtime and can't seem to see any other folder than the 'default' default folder, which would be something like C:\Users\(User name)\AppData\Local\(Project Name)\Saved\Screenshots\WindowsNoEditor

    But even that 'default folder' will stay empty -- I manage to create new folders inside, but no screenshot goes there in the first place, so no screenshot is moved either.

    An other question for those who know would be, where exactly is the Screenshots folder location at Runtime?
    Maybe I forgot something, does anyone know if I'm doing something wrong?

    Thanks all!
    Attached Files

    Leave a comment:

Working...
X