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

I can help you if you do some research for me, look through Texture.h and Texture2D.h in the source code, and tell me if you see any option to change the filtering to the option you want during runtime.

I am very busy so I need some of research on your end before I can get more involved with actual coding itself :slight_smile:

:heart:


**Research **

Thanks for sharing the additional info, helps me lock onto the faster :)

Texture2D and Texture2DDynamic both derive from UTexture, but that is their common base class, so you can't cast a Texture2DDynamic to Texture2D.

Because if you can do that, you can convert Texture2DDynamic -> Texture2D via a UTexture initialization.

I've looked through the 4.15 Engine source code and Texture2DDynamic is used in only a few places, and there doesn't seem to be a conversion to UTexture2D. 

The only use of Texture2DDynamic currently appears to be Download image -> Set Brush From Texture 2D dynamic.

Or it can be used with a Texture Parameter in a material shader.


I've figured out how to get the platform data from Texture2DDynamic

You have to use UTexture base class which returns a pointer to a pointer:



```


/**
	 * Textures that use the derived data cache must override  function and
	 * provide a pointer to the linked list of platform data.
	 */
	virtual FTexturePlatformData** GetRunningPlatformData() { return NULL; }


```



For anyone trying  at home make sure to dereference the ptr ptr carefully before trying to even think about access the ptr itself!


```


FTexturePlatformData** PtrPtr = T2D->GetRunningPlatformData();
if(!PtrPtr) return false;
FTexturePlatformData* PlatformDataPtr = *PtrPtr; //Check before dereferencing! ā™„ 

//Now check the ptr itself too
if(!PlatformDataPtr)
{
  return false;
}

//use the platform data


```



However the is that the platform data for a Texture2DDynamic does not appear to be valid because I guess Texture2DDynamic does not use derived data cache.

**So that means we need to use the FTextureSource itself, I think, to get the byte data.**

But I do not see how to get the byte data from FTextureSource where I will know what the color ordering is to convert to FLinearColor and I am out of  to research .

Community Assistance Requested

Anyone want to continue and finish it?

We need a second version of GetPixel data that accepts FTexture2DDyanamic

:heart:

New Victory Plugin Nodes, Community Contributions

Dear Community,

Iā€™ve uploaded a new build of Victory Plugin that has new nodes in it from 2 community members!

   @draquod

Draquod added RemoveFromStreamingLevels to compliment the existing nodes, thanks!

I also added Hide and Unload Streaming level.

Please note you can just set the bool parameters on UStreamingLevelKismet to show/hide and load/unload a streaming level via bShouldBeVisible and bShouldBeLoaded.

You get a UStreamingLevelKismet ptr when you use my Load Level Instance node which is now part of the main UE4 Engine release!


** RedBeard**

 has added many nodes to the Victory Plugin in  latest update!

Generic Array Sort

One of the most exciting nodes from is a Generic Array Sorting Node!

Handles:

FString
FText
FName
Int
Float
Bool


Here's a bunch with comments from :



```


/**
 *	Inserts child widget into panel widget at given location.
 *	NOTE: The child widgets "Construct" event will be fired again!
 *
 *       @param	Parent	- The panel to insert the child into.
 *       @param	Index	- Where to insert the new widget.
 *       @param	Content - The child widget to insert.
 *       @return slot assigned to content.
 */
static class UPanelSlot* **InsertChildAt**(class UWidget* Parent, int32 Index, UWidget* Content);

/** Flushes the current key state for target player controller. */
static void **FlushPressedKeys**(class APlayerController* PlayerController);

/** 
 *	Helper function to calculate vertical FOV from horizontal FOV and aspect ratio.
 *	Useful to for determining distance from camera fit in-game objects to the width of the screen.
 */
static float **HorizontalFOV**(float VerticalFOV, float AspectRatio);

/** 
 *	Helper function to calculate vertical FOV from horizontal FOV and aspect ratio.
 *	Useful to for determining distance from camera fit in-game objects to the height of the screen.
 */
static float **VerticalFOV**(float HorizontalFOV, float AspectRatio);

static FVector **GetVectorRelativeLocation**(FVector ParentLocation, FRotator ParentRotation, FVector ChildLocation);

static FVector **GetComponentRelativeLocation**(class USceneComponent* ParentComponent, class USceneComponent* ChildComponent);

static FVector **GetActorRelativeLocation**(class AActor* ParentActor, class AActor* ChildActor);

static FRotator **GetRotatorRelativeRotation**(FRotator ParentRotation, FRotator ChildRotation);

static FRotator **GetComponentRelativeRotation**(class USceneComponent* ParentComponent, class USceneComponent* ChildComponent);

static FRotator **GetActorRelativeRotation**(class AActor* ParentActor, class AActor* ChildActor);

static bool **StringIsEmpty**(const FString& Target);


```



Download Links

4.15 Build (HTML5, 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
  5. HTML5 Development
  6. HTML5 Shipping <~~~~~~ NEW!

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


**Prior Engine Versions**

**4.12: **http://www.mediafire.com/download/g441k2815r5b045/VictoryPlugin12.zip

**4.11: **http://www.mediafire.com/download/jp91b9atphm2obt/VictoryPlugin11.zip

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

**4.14: ** http://www.mediafire.com/file/7915cuk19c3nbfw/VictoryPlugin14.zip

Donations can be sent to me via:

:heart:

Fix For Blueprint Nativization Error, Enjoy!

Dear Community,

The in these quotes below has now been addressed!

In the latest 4.15 build that is now live at link:

4.15 Build (HTML5, win32, win64, editor, dev packaged, and shipping)

The BP Nativization has been addressed!

Please try the latest build and see if it works for you!

:heart:

It works fine now. Thanks very much :slight_smile:

Thanks . :smiley:

Is there a to add node for unloading level instance?

Yes or No, is still Awesome! Thanks!

Hi , maybe you missed the question I posted on 04-10-2017. I see you have released a new version of your awesome plug-in.

4.15 Build

VictoryBPFunctionLibrary.cpp
line 4651
RawColorArray NULL
Exception thrown at 0x000007FEDF347110 (UE4Editor-Core.dll) in UE4Editor.exe: 0xC0000005: Access violation reading location 0x0000000000000002.

not work Victory_GetPixelFromT2D in 4.15 Build

Victory_GetPixelsArrayFromT2D

PixelArray.Add(RawColorArray[x * TextureWidth + y]); -> PixelArray.Add(RawColorArray[y * TextureWidth + x]);

Hi, Everybody. Everything ok ? I hope yes.

So, I just install the UE 4.16. Iā€™m loving it, but I need rebuild my Victory Plugin Plugin to run into UE 4.16. How can I make it ? Somebody it has a tutorial ?

Thank You

Hi,

I downloaded the latest version of the plugin and get an error that looks very much like Sarlackā€™s problem. I get an error when packaging to win64, using 4.15.1.
The packaging fails when nativization is enabled for blueprints that use pluginā€™s nodes.


...\epic games\ue_4.15\engine\source\runtime\umg\public\Components/SlateWrapperTypes.h(10): fatal error C1083: Cannot open include file: 'SlateWrapperTypes.generated.h': No such file or directory

looks very similar to Sarlackā€™s problem, which it seems got solved with the latest plugin version.
Thank you very much :slight_smile: Your plugin is love, your plugin is life

Another nativization?

I wonder if we can solve it the same wayā€¦

Iā€™ve got problem. My UE version 15.2, I try latest build which made for UE 15.1. Iā€™ve extracted folder and place it on Engine/Plugins/Runtime I can see it available in the Plugin management and Iā€™ve enabled it but there are no any new blueprint function.

My machine is MAC is it relates ?

Oh, now I know I have to add Mac to WhitelistPlatforms list

I actually still canā€™t package with nativization enabled. It errors on the Array_Sort and TEnumAsByte, but Iā€™m not sure if these are related to the victory plugin or not. I am using the Sort function from the Victory plugin.

Hi, Iā€™m having issues installing the plugin. Your installation instructions say to do the following:

However, I feel like is oversimplified because I see posts about installing plugins and they mention compiling C++ code, messing with the .uproject files, and messing with .ini files. The plugin does not appear in the plugins list. Iā€™m using 4.15, if it matters.

Hee hee!

Thanks for the message @BlackHawk17 !

:heart:

These nodes is currently in the plugin now!

Also you donā€™t really need to use the nodes

**Just drag off from the kismet level instance ptr and set ShouldBeLoaded to false :slight_smile:
**

is one of the only parts of the engine that works way, where you can just set a bool that the engine auto checks each tick, rather than having to call a function

:slight_smile: