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

Dear Community,


:star2: Newest Awesome :star2:

(In Complimentary (no cost) Victory Plugin!)

Now You Can Get the Text Output (STDOUT or STDERR) from any .exe program, straight into Unreal Engine!

is the output of :zap: a video compression commandline tool (Handbrake), :zap: launched by your UE game & delivered straight into the Unreal Engine Viewport!

:zap: :rose: Using only 3 Blueprints nodes! :rose: :zap:

Full Details and UE4 C++ Code


MIT Software License for The Victory Plugin ~ License

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!

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

Because 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.27 For OS

4.27 (win32, win64 only)

**4.26 **(win32, win64, editor, dev packaged, and shipping)

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

  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: **VictoryPlugin13

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

**4.15: ** VictoryPlugin15

**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

**4.22: **https://www.mediafire.com/file/87hgn…in422.zip/file

4.23: https://www.mediafire.com/file/2jedu…gin23.zip/file

4.24: https://www.mediafire.com/file/rqg11…ory24.zip/file

4.25: https://www.mediafire.com/file/pgrps…gin25.zip/file

4.26: VictoryPlugin26

4.27 VictoryPlugin27
~

Donations can be sent to me via:

:heart:

~

Github Repository

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

Github Link

~

Download Link

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

Just get the most recent version :slight_smile:

~

Entire Source Code For You!

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

:heart:

~

Victory BP Library Copyright Permissions

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 “”

:slight_smile:

~

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]((39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required! - Blueprint - Epic Developer Community Forums) ~ Retrieve your local current, milliseconds, seconds, minutes, hours, day, month, year!

Get Since Previous Recorded]((39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required! - Blueprint - Epic Developer Community Forums) ~ Retrieve the difference in since your chosen previous! You can record down to the sub-millisecond level, and up to hours!

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

You can store as many moments in as you want using my above node, the 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 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.

https://www./e-3irWhYzMU

~

Pictures

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

Get Recently Rendered / Not Rendered Actors

](filedata/fetch?id=1134322&d=1504063719)

Get Character Bone Current Locations

](filedata/fetch?id=1134318&d=1504063727)

Trace for Closest Socket

](filedata/fetch?id=1134319&d=1504063724)

Victory Ragdoll System, Including Follow Camera

](filedata/fetch?id=1134320&d=1504063713)

Trace Data With Skeletal Mesh

](filedata/fetch?id=1134321&d=1504063721)

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!

https://d3ar1piqh1oeli.cloudfront.net/0/0b/Victorybpplugin.jpg/800px-Victorybpplugin.jpg

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

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


**Current List of Functions (48 Nodes Total)**



**~~~ Recently Added ~~~**


**~~~ Frame Rate / Graphics Options ~~~**

**Set  Frame Rate

Set Frame Rate To Be Unbound!**


**4 New Nodes**

** of Float Array

 of Int Array

Min of Float Array

Min of Int Array**

[https://forums.unrealengine.com/show...ll=1#post77775](https://forums.unrealengine.com/showthread.php?3851-(39)--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=77775&viewfull=1#post77775)

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

Get 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) **
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  the bone locations on the Character. The Character's Mesh component must be valid for  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  currently rendered actors. You can choose what interval is recent enough, I default to 0.01 seconds.

**~ Get Array of Currently NOT Rendered Actors **Detailed Info and Pics)** - Retrieve array for use with foreach loop, iterating over  currently NOT rendered actors. You can choose what 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  BP Library,  is a Blueprint version of the same core c++ code as Shootergame uses. With  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  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  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 /Actor Name As String ** - Get the name of any actor, component, or anything at , as a String.

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

**~ 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  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  node. Note that you only call  node ONCE. If you call while character is in ragdoll it will not work correctly :) So I call  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.  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  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.
21 Likes

Wow good work! I didnt even know we could provide a Blueprint library. Where/How did you find out about ?

1 Like

Whiting told me about it back in the Beta!

It’s super useful and let’s you share nodes with others, or have a set of global BP nodes for use in your own project!


**Wiki tutorial on Blueprint Node Library**

https://wiki.unrealengine.com/Blueprint_Function_Library,_Create_Your_Own_to_Share_With_Others

:)
2 Likes

Thanks !

Always enjoy your many community contributions

1 Like

Hee hee!

:slight_smile:

1 Like

Awesome! Looking forward to more!

1 Like

Can help me with making some kind of blending between ragdoll and some animations? Like you can see on video here( Watch after 0:30) :

2 Likes

Hee hee!

Um, it looks the same as my video, as far as I can tell.

From animation state the character is blending into ragdoll, but never blending out, only restarting.

So that would mean the answer is “Yes!”

Great to hear from you Alex3D!

1 Like

Well, I guess you didn’t spot the diferences. rsss On that video, the guy made when the character goes into ragdoll, it is a mix between ragdoll and animation. And make it more realistic. Your video shows blending from animation into Ragdoll. But ragdoll alone is not that natural. So, if we could mix 50 % ragdoll with 50% animation, that would be better.
Take another look at the video. The guy shows Blending from animation to just radgoll, then he shows blending from animation to a mix of 50 % ragdoll with 50% animation.

Glad to be here. :slight_smile:

1 Like

ooooh I see now, I did not get that far in the video!

Yea that’s neat!

I will have to look into doing partial ragdoll more at some pt in future :slight_smile:

1 Like

Hello ,
So I am no coder…but I am learning Blueprint and wanted to ask you … do I need C++ in order to create a mix or blend between a Ragdoll/Animation setup or can it be solely in Blueprint?

1 Like

Good to see your plugins back ! :slight_smile: Are you going to recompile and reupload them for every new engine version in the future?
Thanks again for sharing!

1 Like

Thanks a lot for sharing , is very generous and awesome.

I’m glad Alex3D brought up Ragdoll Blending or whatever you want to call it(Procedural Animation?). That’s a I’ve wanted since I saw some old video of Motionbuilder(Overgrowth is pretty cool too) doing it that added kinds of subtle natural bounce to animations and proper foot placement much like IK does. If you decide to implement it, I’d request the ability to control the blend amount per bone. Lots of possibilities.

1 Like

is so cool! Thanks so much for supporting the UE4 community!

If we’re ever in the same city I’d love to buy you lunch!

Please feel free to private message me with your contact details.

1 Like

Thanks , nice set of functions. I am also working on a function library, but it isn’t as complete as yours, my functions are more basic.

Oh so nice of you! I’m finding amazing how close the Epic team is getting to us, small developers. Even more amazing is to see Mark Rein and around here, answering forum topics of little mortals like us :cool:

1 Like

is what really has me excited for UE4 are the function libraries (via plugins especially). I could see these type of things doing well in the marketplace. I’ll need to start designing more of my functions like , very modular, and beneficial for .

Thanks

1 Like

Yup I will be keeping the Victory Blueprint Library updated, though remember I am including the entire source code, so anyone can rebuild my plugin if they feel I am not fast enough :slight_smile:

Great to hear from you !


Ragdoll + Animation Blend

Wow lot of interest in ! I will check it out.

For those who want to poke about, check out **primitivecomponent.h**, there are these functions:



```

/**
	 *	'Wake' physics simulation for a single body.
	 *	@param	BoneName	If a SkeletalMeshComponent, name of body to wake. 'None' indicates root body.
	 */
	UFUNCTION(BlueprintCallable, Category="Physics")
	void WakeRigidBody(FName BoneName = NAME_None);

```





```

	/** 
	 *	Force a single body back to sleep. 
	 *	@param	BoneName	If a SkeletalMeshComponent, name of body to put to sleep. 'None' indicates root body.
	 */
	UFUNCTION(BlueprintCallable, Category="Physics")
	void PutRigidBodyToSleep(FName BoneName = NAME_None);

```





```

/**
	 *	Force  bodies in  component to sleep.
	 */
	virtual void PutAllRigidBodiesToSleep();

```


	


```

	/**
	 *	Returns if a single body is currently awake and simulating.
	 *	@param	BoneName	If a SkeletalMeshComponent, name of body to return wakeful state from. 'None' indicates root body.
	 */
	bool RigidBodyIsAwake(FName BoneName = NAME_None);

```


	


```

	/**
	 *	Returns if any body in  component is currently awake and simulating.
	 */
	virtual bool IsAnyRigidBodyAwake();

```
1 Like

Great to hear from you Mark Rein!

I did PM you :slight_smile:

Thank you for your life’s work / UE4!

UE4 is so much fun!

1 Like

Hey ,

Thanks for so many great contributions so far!

I’ve tried to adapt your BP Ragdoll functions for use on character death, but the location/rotation are tripping me up - instead of respawning at a spawn point, the character is brought to the location of their ragdoll/death. Any ideas on how to circumvent that?

1 Like

I am making a node for , in a general purpose way.

For those wanting to do immediately on their own:


If you have a reference to the player start you want to use, you can

1. end ragdoll
2. set actor location to the location of the player start
3. set actor rotation to the rotation of the player start

I could design a node to do , but you'd still have to Get the Location and Rotation of the player start, so its really not that much of a shortcut :)

:)



PS: click on the playerstart in the world, then open the graph and you can add reference
2 Likes