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

New BP Node!

BloomPostProcess.jpg

node sets the bloom intensity of any PP volume!

node was contributed by community member !

UE4 Wiki, Plugin Download Page

Enjoy!

Waoooo ! I love you :rolleyes:
I am looking for a bundle like that since a long !
It’s wonderful to share your work =)
I have not yet test your library, but i have already a request :smiley:

I’m interest to have a node to control the mass.
As you can see in my answer in thread : Change Mass using Blueprints

##############
Here’s what I know :
We want to have an with a Mass exactly = 1.00000 Kg
I take a mesh and set Physical properties :

  • Simulate Physics = true
  • Enable Gravity = false (we are in empty space)
  • Linear damping = 0.0
    —> at step, my has a Mass in Kg = 2198.014 :frowning:
    If i understand well, the Mass is calculated automatically depending on my shape mesh. Ok, so i will try to simulate a point with no shape in my calculation. To do that i use a Physical Material for my mesh :
  • Density = 1.0 (g/m3 = water density for example –> it’s the default value)
    —> at step, my has a Mass in Kg = 2198.014 (no change, perfect!)
    Now I know my density = 1.0 so the engine seems to know the volume of my (i would like to get optionaly !) because mass[Kg] = density[g/cm3] x volume[cm3]

** calculation is so complicated, i just want to be able to set manually the mass of my !!!**
In fact, there is a value in the physical material which cause problem and seems to be use by the engine for the calculation :

  • Raise Mass to Power = 0.75 by default
    If I set Raise Mass to Power = 0.0 —> my has Mass in Kg = 1.001 :frowning: WHY !!! :confused:
    ##############

Do you know how engine calculate the mass ? what values and calculations are used ? I would like understand if it’s possible!! :stuck_out_tongue:
Maybe you can overpass the engine calculation to be able to “Set Mass” precisely with a node ! and verify if the “Get mass” node -included in UE4- returns the same value…

https://dl.dropboxusercontent.com/u/21672921/_FORUM/ue4-mass.jpg

Thanks a lot ! :wink:

Awesome progress ! I hope epic will fix that bug that we can’t pack games with plugins in the next version.

Super cool new nodes, yay!

Hee hee!

:slight_smile:

**Get Screen Resolutions
**
Now works in packaged games!

You can use with your UMG menus!

It gathers data specific to the end user’s display adapter, including available refresh rates :slight_smile:

old but has nice in-game pic

actual!

UE4 Wiki, Plugin Download Page

Hi there! Nice colors in your post! :slight_smile:

You shouldn’t be setting the mass directly, what I can do easily is give you a node to set the mass scale of any primitive component / static mesh / skeletal mesh.

By playing with the mass scale on a per- basis you can get the to have the effective movement/physics that you want in game.

If you are doing some kind of 3d weight scale game and you actually need 1 kg every, it will require much more effort on my part :slight_smile:

Mass scale is easy and universally useful!


**Mass to Power 0 = 1**


[QUOTE=martoof;205376]

In fact, there is a value in the physical material which cause  problem and seems to be use by the engine for the calculation :
- Raise Mass to Power = 0.75 by default
If I set Raise Mass to Power = 0.0   --->   my  has Mass in Kg = 1.001 :(  WHY !!!! :confused:[/COLOR]
##############

[/QUOTE]


**If you raise anything to the power of 0, the value is 1! **

**Conceptual proof:**

 is because power implies Self-Multiplication, (x^2 = x * x), and the only thing you can multiply any number by and get itself  is 1.  So 1 is  Eternal Constant when it comes to exponential math, anything to 0 power is the same, constant, unchanged Origin of  exponential math.  numbers to the 0 power trace back to the same single point, the number 1, so  is Origin. And 0 represent the concept of Origin!


**Conventional Proof:**


```


                 X^y
 x^0 = x^(y-y) = --- = 1
                 x^y    


```




**So um, is that  you need then? A phys mat with power to 0?**


Mass scale as a BP node would be much more useful to more people and gives you fine tuned control on a per- basis, and does not require phys-mats to be set anywhere :)

what do you mean “Now work in packed games” ? What does it take to work in a pack game ? Is it possible to pack a game with of the nodes from the plugin ?

Do I need a 4.7 to get it to work with packed games? Great work btw, everytime I open thread, I find nodes I never knew I couldn’t live without :slight_smile:

I’m having some problems with Get Rendered Actors and Get Not Rendered Actors. If an actor is rendered once, then it will always be considered rendered, even off screen.

I have it so when I press F, it stores an array with the rendered actors, it also clears the old array if used again. I then have it print the name of it on screen. So I start the game and when I press F it prints nothing, after I look at the actor it prints that actor’s name, but if I look away it still prints that actor. The problem is also in Not Rendered Actors, I start the game and it prints the actor’s name, I look at it and it prints nothing, then I look away and still prints nothing. I’ve been using the default 0.01 seconds to check for rendered actors, but it seems to ignore that since it’s always considered rendered even with 0 seconds. Am I just not using correctly?

Hey , a quick question. Is the code included in the download completely free to use for any and 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.

As of 4.6.1, a code-based project is required to package the game, but a BP-only project can use the plugin during development.

is going to be fixed by Epic soon :slight_smile:



[QUOTE=Pampers;206799]
Do I need a 4.7 to get it to work with packed games? Great work btw, everytime I open  thread, I find nodes I never knew I couldn't live without :)
[/QUOTE]


Hee hee! Glad you like my various BP node offerings!

I will have to look into that, I am just using Epic’s function internally, so perhaps there is something going on with the function itself, send me a PM if I haven’t gotten to within 2 weeks or so.

Giving Me Credit for Victory BP Library

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:

Thanks, good to know is possible at at the moment, i guess i will just wait for 4.7 and in the meanwhile release game footage videos when there are new stuff to show off.

Yea! Epic has been telling me that getting plugins working in BP only packaged games is very high priority for them :slight_smile:

**New Release!

’ Suite of Custom Config Section BP Nodes!**

Using my new suite of BP nodes, you can create as many of your own custom config file sections as you want!

You can both create and retrieve ini variables with any name and fundamental type that you want!


**Supported Types:**

Bool
Int
Float
Rotator
Vector
Color
String

Why Use a Config Var?

Config vars have several benefits

  1. Persistent data storage without using a SaveGame struct or GameInstance, store simple quantities of data and player customization way! Data is stored between level loads and even after the current instance of the game is shut down.

So in way config vars have greater persistence than the GameInstance class!

  1. Player-Driven Customization, Players of your game can tweak the config vars that you make available for them on their hard disk, by editing the .ini file directly, just like AAA games! is the most significant advantage of using config files, and their real core purpose. :slight_smile:

  2. Simplicity, simpler to use than the BP SaveSystem (which is quite wonderful by the way), but not quite as powerful in that you can only store basic data types, not UObjects and Actors.

  3. **Organization, **you can create as many config header sections as you want using my nodes, organizing your custom settings way!


**Game.ini**

 of your custom created config vars and sections are stored in:

**Saved/Config/Windows/Game.ini**

Players can navigate to  location on their harddrive to edit your ini files just like any AAA game would allow!

Here's what my **Game.ini** file looks like after running some tests!



```


[DebugWindows]
ConsoleWidth=160
ConsoleHeight=4000
ConsoleX=-32000
ConsoleY=-32000

[/Script/UnrealEd.ProjectPackagingSettings]
BuildConfiguration=PPBC_Development
StagingDirectory=(Path="E:/MYPROJECT_DELETE")
FullRebuild=True
ForDistribution=False
UsePakFile=True
UseOBB_InAPK=False
CulturesToStage=en

[Victory]
BoolVar=True
VectorVar=X=1.000 Y=2.000 Z=9000.123
StrVar=Yay For Custom Config Vars!!!
FloatVar=234.000000


```



**Now you have fully featured ability to use config variables entirely in BP!**



PS: Here's example usage!

![Usage.jpg|1280x960](upload://vJ8VyiQCZXj6G59JXlBNDrMdZow.jpeg)

Thanks the config nodes looks awesome and is great how you can make variables accessible by the user, especially for an indie developer, instead of investing on a fancy options screen i can let the user use the config file and invest my in the real important stuff.

**New Node: Load Texture 2D From File!

JPG, PNG, BMP, ICO, EXR, and ICNS are Supported File Formats !**

With node you can load a Texture 2D from a file during runtime!

I output for you the width and height of the loaded image!

Now you can easily create Texture 2D’s from image files in Blueprints, during runtime!

Enjoy!

PS: Make sure to include the file extension when you use node!


**C++ Code For You**

Here is the core C++ function involved, entire source is in the download! I wrote my own Enum for the file formats.



```


UTexture2D* UVictoryBPFunctionLibrary::Victory_LoadTexture2D_FromFile(const FString& FullFilePath,EJoyImageFormats ImageFormat, bool& IsValid,int32& Width, int32& Height)
{
	IsValid = false;
	UTexture2D* LoadedT2D = NULL;
	
	IImageWrapperModule& ImageWrapperModule = FModuleManager::LoadModuleChecked<IImageWrapperModule>(FName("ImageWrapper"));
	
	IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper(GetJoyImageFormat(ImageFormat));
 
	//Load From File
	TArray<uint8> RawFileData;
	if (!FFileHelper::LoadFileToArray(RawFileData, * FullFilePath)) 
	{
		return NULL;
	}
	
	  
	//Create T2D!
	if (ImageWrapper.IsValid() && ImageWrapper->SetCompressed(RawFileData.GetData(), RawFileData.Num()))
	{ 
		const TArray<uint8>* UncompressedBGRA = NULL;
		if (ImageWrapper->GetRaw(ERGBFormat::BGRA, 8, UncompressedBGRA))
		{
			LoadedT2D = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_B8G8R8A8);
			
			//Valid?
			if (!LoadedT2D) 
			{
				return NULL;
			}
			
			//Out!
			Width = ImageWrapper->GetWidth();
			Height = ImageWrapper->GetHeight();
			 
			//Copy!
			void* TextureData = LoadedT2D->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
			FMemory::Memcpy(TextureData, UncompressedBGRA->GetData(), UncompressedBGRA->Num());
			LoadedT2D->PlatformData->Mips[0].BulkData.Unlock();

			//Update!
			LoadedT2D->UpdateResource();
		}
	}
	 
	// Success!
	IsValid = true;
	return LoadedT2D;
}


```



Download Link (6.5mb)

UE4 Wiki, Plugin Download Page

You never cease to amaze !
Fantastic addition :slight_smile:

Yeah, i cant find words to appreciate his awesomeness anymore, so yeah…

Thanks ! :slight_smile: