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

Hee hee!

I can confirm having problems with a static mesh attached to a socket wobbling after initiating ragdoll. To be clear is not a drag or a delay in location update, but a severe jittery wobble/bouncing over the place.

I’d recommend you do the following:

  1. make a 3rd person BP only project, with no sample content (save almost a gb of extra stuff)

  2. bring in your weapon asset

  3. set up the attachment the way you like, on begin play in character BP

  4. activate ragdoll on key press

  5. zip project and submit to Epic on the answerhub, demonstrating the problem

Your zipped project should only be a few mb as long as you dont include sample content!

Once you do I can comment in your answerhub post.


**My Repro**

I used a resized cube made into a bar and attached to third person character skeleton on begin play using two methos (1) weapon as actor, (2) weapon as component of the character.

In both cases there was severe wobbling/jittering/skipping after activating ragdoll and once the character hit the ground

(3) I made sure collision was turned off for the weapon mesh.

♥

Live as of 4/27/15

Dear Community,

I’ve created a new node that allows you to save a Linear Color array to disk as a PNG image!

So you can draw transparency using the Alpha channel of the Linear Color!

For those who have not used Linear Color much, it has 4 floats (R G B A) and so saving to PNG and supporting transparency is easy!


**Bonus ~ I create target directory for you!**

My node will create the directory you are trying to save to if it does not already exist!

 can be very helpful if you delete your whole generated image folder at once!

Absolute File Paths

node receives absolute file paths, you can use my Path nodes to get various absolute paths that are relative to your project directory!

Victory BP Library Path Nodes (link inside thread)


**Error String**

I provide you with an Error string to help narrow down the reason the node returned false, if it does! 

Even more debugging info for you!

**The most common error will be that your array size does not equal Width x Height** that you inputted into the node.

Solution:

**You can avoid  by using variables for Width and Height** and multiplying them together and using that as the  for the for loop where you initialize the image to black (see picture above)!

If you use my method, make sure the for loop first index is 1 not 0 !

Post Your BP-Generated Images!

Feel free to post images you create using node!


**My C++ Code For You!**

Here's the entire C++ code for my node! 

If you use it please credit me somewhere appropriate!



```


bool UVictoryBPFunctionLibrary::Victory_SavePixels(const FString& FullFilePath,int32 Width, int32 Height, const TArray<FLinearColor>& ImagePixels, FString& ErrorString)
{
	if(FullFilePath.Len() < 1) 
	{
		ErrorString = "No file path";
		return false;
	}
	//~~~~~~~~~~~~~~~~~
	
	//Ensure target directory exists, 
	//		_or can be created!_ <3 
	FString NewAbsoluteFolderPath = FPaths::GetPath(FullFilePath);
	FPaths::NormalizeDirectoryName(NewAbsoluteFolderPath);
	if(!VCreateDirectory(NewAbsoluteFolderPath)) 
	{
		ErrorString = "Folder could not be created, check read/write permissions~ " + NewAbsoluteFolderPath;
		return false;
	}
	
	//Create FColor version
	TArray<FColor> ColorArray;
	for(const FLinearColor& Each : ImagePixels)
	{
		ColorArray.Add(Each);
	}
	 
	if(ColorArray.Num() != Width * Height) 
	{
		ErrorString = "Error ~ height x width is not equal to the total pixel array length!";
		return false;
	}
	  
	//Remove any supplied file extension and/or add accurate one
	FString FinalFilename = FPaths::GetBaseFilename(FullFilePath, false) + ".png";  //false = dont remove path

	//~~~
	
	TArray<uint8> CompressedPNG;
	FImageUtils::CompressImageArray( 
		Width, 
		Height, 
		ColorArray, 
		CompressedPNG
	);
	    
	ErrorString = "Success! or if returning false, the saving of file to disk did not succeed for File IO reasons";
	return FFileHelper::SaveArrayToFile(CompressedPNG, *FinalFilename);
}


```



**Latest plugin download on the UE4 Wiki: (7.92 mb) **


**Victory Plugin on Media Fire**

If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!

Please note clicking  link will not start a download instantly, it will just take you to the Media Fire file description.

https://www.mediafire.com/?g6uf9kt5ueb2upj

Enjoy!

:)

Oh I’ve got an awesome idea for what you might be able to use that node + another one of your nodes for.

Alrighty then, glad it’s not my computer being faulty or something, anywaaaaays… How did you attach your sword to your ragdoll, if i may ask? ^^ I’m posting the “bug” right now btw.

Love your new node .

I have 2 questions…
I posted one of them before, but I wanted to post again with an example to see if anyone can help me out.

I’m using (version 4.7 btw)
First off, I can’t seem to get the “Server Travel” to work correctly. I mentioned before the widget will appear, it’ll be animating… but as soon as the server travel is called, the animation stops, and doesn’t continue until the next level is finished loading.
Here is my test example:

My second questions deals with using the random functions that are in the plugin. No matter what configuration I attempt, whenever I make a packaged build each I run, my random outputs the same sequence of numbers.
It’s my understanding that the regular random functions in BPs have these issues in packaged builds as well, I was hoping the plugin ones would work, but in either case my output is the same random every.
Am I using correctly?

Thanks for any help, I do enjoy some of the other features in the plugin!

for president 2016! Haha but seriously you’re amazing. I’m enjoying some of your recent additions like linear color array <3

Yeah, I have not used them in a long while but that looks correct. Unfortunately the official rand functions and my functions both package same sequence. You can change by creating a new seed, generator and distribution after a certain number of random numbers or some other way of changing the system to create a new sequence. by something like modifying the seed by some algorithm and redistributing or your own solution ^_^. remember new distributions are fairly cheap but new engine/generators are fairly costly so only do that if absolutely necessary. If doesn’t work let me know i’ll be happy to help you.

Hmm, so you’re saying I should swap my functions over to random from seed… then find other methods to generate new seed numbers as needed?
It’s a shame that in editor the regular random functions work fine, but as soon as you make a packaged build, random becomes 100% predicitable.

Example: I have a simple name generator that takes one piece from a first name array and another from a last name array. Running from editor it’s always random output, but a packaged build, 100% of the it gives me exactly the same output of generated names.

Referring to Victory BP node:

Wow That is truly impressive!** Great work Tekoppar and thanks for sharing!** (click on the link to see great video!)



[QUOTE=SaxonRah;319649]
for president 2016! Haha but seriously you're amazing. I'm enjoying some of your recent additions like linear color array &lt;3

[/QUOTE]


So nice to hear from you SaxonRah, and thanks for those randomization nodes!

:)

Get Console Variable Value, Int / Float Supported!

Dear Community,

Here are two new nodes that let you get the value of any config variables that you might also want to adjust from the console / via “Run Console Command”

If you look in DefaultEngine.ini, any of the int/float variables there can be retrieved by these nodes!

Many thanks to for contributing these nodes!


**Latest plugin download on the UE4 Wiki: (7.93 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip

Victory Plugin on Media Fire

If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!

Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.

Enjoy!

:slight_smile:

Thanks a lot for the console output node and thanks for including it :slight_smile:

Could you also make node being able to save the image not only to a PNG but also to a Texture2D which can be used in the game? :rolleyes:

I’ll mess around with that today, ill see what i can come up with.

What you should do actually is write a function that returns the date and then use that to seed your random number generator way you should get random numbers no matter what because the seed is always changing.

Woo, I know there’s a C++ plugin for Voronoi that uses Fortune’s Algorithm, but Calcs Closest Point to Source Point + SavePixels(if I want an image) made it soo easy to build a component for Voronoi diagrams! :slight_smile:

Hi,

Does the latest version now work on 4.7 or 4.8?

Thank you

Work with 4.8 without problems.

You can use to get current utc.

is a Formatted Stamp in an FString (also other examples for CrrentDateAndTime)

stuff should be of use to help get random values from the generators that are not ‘baked in’

Hello,

I am interested in better understanding how the “Visibility Get Rendered Actors” node works. I am attempting to use it to get the actors seen by my camera, but it only outputs emitter actors, whereas I am most interested in static mesh actors. Am I misunderstanding the intended usage of node? If question should be asked in a different place, please let me know. Thanks!

Hi, !

First of , you’re my star! You doing really priceless job!

Can I ask you only one thing? Could tell me please, why I am getting error? Are you compiling from different source?

Thank you in advance!

It’s quite strange for me, especially because Unreal Engine code contains similar code.

For example, KismetArrayLibrary.h:

(bool)RESULT_PARAM = (FoundIndex >= 0);

Thank you so much for Plugin!