Download

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

Hey Rama, you are awesome :cool:

Hee hee! Rawr!

Thanks!

“and it actually helped me to feel more welcome in this community!”

Yaaay! That has always been my goal! Glad to have you here Dakraid!

Hee hee! Blushes

Very nice to hear from you all!

:slight_smile:

Rama

In the first page it is still says : “Current Engine Version: 4.7 Full Release”
You may want to fix it :stuck_out_tongue:

Btw it still fails when I’m trying to pack a 32bit shipping release.

Maybe this is because the plugin has in it’s 64bit folder the extra files:

While the 32 bit folder has only:

?

Hey Rama,
I have managed to implement Fog of war following this tutorial. The problem I face, as mentioned, is while using higher resolution dynamic texture as the whole texture gets updated(reconstructed) every frame. You always come up with cool ideas, so, my question is is there any better way to do this?
Regards

Thanks for the report, will work on this :slight_smile:

Welcome to the forums GamerMaximas! I will contemplate this and let you know!

Rama

Dear Community,

I’ve just released two new nodes to help you with all of your** collsion surface distance checks**!

These nodes let you easily tell how far a given point is from the actual PhysX surface of any UE4 game object with collision / primitive component!

I’ve even given you a node that let’s you directly check the distance between the physical surfaces of two objects!

See pics!

These nodes work with Characters and Skeletal Mesh actors that have physics assets!


**Distance Between Surfaces Of Two Objects**

![6b63e52de9205cb6a07392fec3226bdf5fb84299.jpeg|1273x835](upload://fk173M0m6T8zQVYU8Estu6uKiUh.jpeg)

World Point Distance To Collision Of Any Object

42686311a9773f2c63184ad34db5dc74c22ddbb9.jpeg


**My C++ For You**

Here's the C++ code for my algorithm to get the distance between the colliding surfaces of any two objects!



```


float UVictoryBPFunctionLibrary::GetDistanceBetweenComponentSurfaces(UPrimitiveComponent* CollisionComponent1, UPrimitiveComponent* CollisionComponent2, FVector& PointOnSurface1, FVector& PointOnSurface2)
{
	if(!CollisionComponent1 || !CollisionComponent2) 
        {
            return -1;
        } 

        //Closest Point on 2 to 1
	CollisionComponent2->GetDistanceToCollision(CollisionComponent1->GetComponentLocation(), PointOnSurface2);
  
	//Closest Point on 1 to closest point on surface of 2
	return CollisionComponent1->GetDistanceToCollision(PointOnSurface2, PointOnSurface1);
}

_


```



**Latest plugin download on the UE4 Wiki: (7.99 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 this link will not start a download instantly, it will just take you to the Media Fire file description.

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

Enjoy!

:)

Rama

Hey Rama,

Thanks for fixing the packaging!

Many modern games engage their community by encouraging share of an animated gif (share your hilarious fails etc). So allow me to request another node if you ever feel inspired to make it: “Save Animated Gif” - we could feed in an array of pixel arrays for the raw frames, though it would go nicely with a “Toggle Image Recording” node (with float input for frame rate) that processed the frames on the fly to reduce the memory needed to store the frames.

I wish I knew c++ …

Neat idea. I wouldn’t jump to requesting that feature specifically for the .gif extension though. What I mean is that other media formats/services like WebM and YouTube could possibly be better avenues for that feature.

My Dearest Rama,

Any update for 4.9? I’m bout to try compiling manually with latest version but we’ll see. Thanks.

Edit results, blank project with aug 26th victory plugin




1>  [12/26] Link UE4Editor-Continuity.dll
1>     Creating library F:\Perforce\Fixpluginsfor49\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-Continuity.lib and object F:\Perforce\Fixpluginsfor49\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-Continuity.exp
1>  VictoryTMapComp.cpp
1>  VictoryBPLibrary.generated.cpp
1>  VictoryPC.cpp
1>  VictoryISM.cpp
1>  VictoryBPFunctionLibrary.cpp
1>  VictoryBPLibraryModule.cpp
1>  TKMathFunctionLibrary.cpp
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\TKMathFunctionLibrary.cpp(412): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>  VictoryEdEngine.generated.cpp
1>  JoyISM.cpp
1>  VictoryEdEngineModule.cpp
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(586): warning C4996: 'FActorSpawnParameters::bNoCollisionFail': bNoCollisionFail is deprecated. Use SpawnCollisionHandlingOverride to override the actor class's spawn collision handling setting. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/World.h(458) : see declaration of 'FActorSpawnParameters::bNoCollisionFail'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(679): warning C4996: 'FMath::GetMappedRangeValue': GetMappedRangeValue is deprecated. Use GetMappedRangeValueClamped instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Core\Public\Math\UnrealMathUtility.h(548) : see declaration of 'FMath::GetMappedRangeValue'
1>  VictoryEdEngine.cpp
1>C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Slate\Public\Slate.h(5): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Slate\Public\Slate.h(5): error C2440: 'initializing' : cannot convert from 'const char [106]' to 'int'
1>          There is no context in which this conversion is possible
1>  VictoryEdAlignMode.cpp
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryEdEngine\Private\VictoryEdAlignMode.cpp(227): warning C4996: 'FActorSpawnParameters::bNoCollisionFail': bNoCollisionFail is deprecated. Use SpawnCollisionHandlingOverride to override the actor class's spawn collision handling setting. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/World.h(458) : see declaration of 'FActorSpawnParameters::bNoCollisionFail'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1180): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1322): warning C4996: 'FActorSpawnParameters::bNoCollisionFail': bNoCollisionFail is deprecated. Use SpawnCollisionHandlingOverride to override the actor class's spawn collision handling setting. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/World.h(458) : see declaration of 'FActorSpawnParameters::bNoCollisionFail'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryEdEngine\Private\VictoryEdAlignMode.cpp(341): warning C4996: 'FActorSpawnParameters::bNoCollisionFail': bNoCollisionFail is deprecated. Use SpawnCollisionHandlingOverride to override the actor class's spawn collision handling setting. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/World.h(458) : see declaration of 'FActorSpawnParameters::bNoCollisionFail'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1467): error C2027: use of undefined type 'UBodySetup'
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/SkeletalMesh.h(598) : see declaration of 'UBodySetup'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1467): error C2227: left of '->IsValidLowLevel' must point to class/struct/union/generic type
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1473): error C2027: use of undefined type 'UBodySetup'
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/SkeletalMesh.h(598) : see declaration of 'UBodySetup'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1473): error C2227: left of '->TriMesh' must point to class/struct/union/generic type
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1490): error C3861: 'P2UVector': identifier not found
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1575): error C2664: 'void DrawDebugLine(const UWorld *,const FVector &,const FVector &,const FColor &,bool,float,uint8,float)' : cannot convert argument 4 from 'FLinearColor' to 'const FColor &'
1>          Reason: cannot convert from 'FLinearColor' to 'const FColor'
1>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2004): warning C4996: 'FActorSpawnParameters::bNoCollisionFail': bNoCollisionFail is deprecated. Use SpawnCollisionHandlingOverride to override the actor class's spawn collision handling setting. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.9\Engine\Source\Runtime\Engine\Classes\Engine/World.h(458) : see declaration of 'FActorSpawnParameters::bNoCollisionFail'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2152): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2182): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2200): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2530): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2578): error C2248: 'FColor::FColor' : cannot access private member declared in class 'FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(584) : see declaration of 'FColor::FColor'
1>          c:\program files\epic games\4.9\engine\source\runtime\core\public\math\Color.h(395) : see declaration of 'FColor'
1>F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(3899): error C2664: 'int32 TArray<FColor,FDefaultAllocator>::Add(const FColor &)' : cannot convert argument 1 from 'const FLinearColor' to 'FColor &&'
1>          Reason: cannot convert from 'const FLinearColor' to 'FColor'
1>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>ERROR : UBT error : Failed to produce item: F:\Perforce\Fixpluginsfor49\Plugins\VictoryPlugin\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-VictoryBPLibrary.exp
1>  Total build time: 70.71 seconds
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(43,5): error MSB3075: The command ""C:\Program Files\Epic Games\4.9\Engine\Build\BatchFiles\Rebuild.bat" ContinuityEditor Win64 Development "F:\Perforce\Fixpluginsfor49\Continuity.uproject" -rocket" exited with code 5. Please verify that you have sufficient rights to run this command.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Edit about 2 hours of messing around and I cant get it to compile for 4.9 the slate/FColor stuff is weird to my skills. Will just wait patiently for the god of UE4: Rama.

Packaging Issues Explained

Dear Everyone,

For BP-only projects I have to provide the .lib files, and so that means I have to compile each version on my local C++ build.

I plan to support Win32 Shipping and Win64 Development indefinitely, if you need another variant like Win64 shipping, please convert your project to a C++ project (requires Visual Studio) to get the specific build you need.

My Victory BP Library Plugin files are now too large for the Epic wiki file limit of 20mb, so I"ve split my plugin into the main plugin for Editor development, and also the packaged binaries.

Rama’s Victory BP Library, separate file for packaged game binaries

So if you are wanting to package a BP only project with my plugin, please use:

win64 development
win32 shipping

for your packaging settings. :slight_smile:


**Why Not Include All Variants?**

I am not getting paid to do this in any way and I have time constraints. If someone else wishes to help me by packaging the other variants (or send donations) that'd be great :)

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


**Have Fun Today!**

Enjoy!

Rama

I am working through a bug in 4.9 that is stopping me from compiling my Vertex Snap Editor plugin, trying to avoid having to temporarily suspend it, another update soon

Rama

Hey Rama how is it going? :slight_smile:

I have successfully compiled and fixed all the errors/warnings for 4.9 (the changes in get mesh triangles function was the toughest part to fix for me :stuck_out_tongue: but I think it works fine).
Maybe I can save you some trouble?

Here is the link:

Woohoo thank you so much TK-Master for helping out!

Actually we finished around the same time!

I tested both your version and mine, and the 4.9 plugin template code, there’s a bug whenever UnrealEd is included. Just wanted to know I did test your version too to honor your contribution!

See next post!

:slight_smile:

Rama

Upgrade to 4.9, Vertex Snap Editor Temp Disabled

Dear Community,

I’ve upgraded my Victory BP plugin to 4.9! (And TK-Master did too!)

Unfortunately in 4.9.0 there’s a bug involved with editor plugins that I believe has to be fixed engine-side as it is affecting the new 4.9 plugin templates as well.

So this version of my plugin does not include the Vertex Snap Editor.

To avoid a crash on editor startup, please remember to remove these lines from your config file if you were using the vertex snap editor:

this



[/Script/Engine.Engine]
UnrealEdEngine=/Script/VictoryEdEngine.VictoryEdEngine


becomes this



;[/Script/Engine.Engine]
;UnrealEdEngine=/Script/VictoryEdEngine.VictoryEdEngine


Full description:


**4.9 Download**

**Latest plugin download on the UE4 Wiki: (15 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 this link will not start a download instantly, it will just take you to the Media Fire file description.

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

Enjoy!

:)

Rama

Much happiness glows around me :smiley: Java this semester, c++ next. And then the Unreal API for all its hugeness and oddness.

Seems the IsValidIndex node doesn’t like 4.9.
I’ll get the fix to Rama shortly :slight_smile:

Victory Ed Engine Plugin, Separate Plugin and Download Now

Dear Community,

As of 4.9.0, My Vertex Snap Editor Plugin is now a separate plugin, called VictoryEdEngine!

Download Link (145kb)

This is a plugin that does not package with your game as it is only designed to modify Unreal Engine 4 to add support for vertex snapping while in the Level Editor Viewport.

More Details about my Vertex Snapping Editor Feature

Installation Steps

Enjoy!

Rama

Hey Rama!

Why not just upload the plugin here in the forums or just link in the wiki to a separate download location (like google drive)?

Another question: Could you somehow integrate this into your plugin?

Epic seems to be quite slow with integrating custom hardware cursors into the engine, they don’t say anything about it, no idea whether it will happen within the next 1 or 2 years :stuck_out_tongue: So there is the code which just needs to get added to the source for making custom cursors work, but of course doing this manually after each new version and each hotfix and compile the engine is just a drawback regarding usability. But so many games need custom cursors! The default windows hand cursor is not really fitting for most games, and software cursors feel laggy, even at 60 fps.

Could you integrate the code mentioned in the thread above into your plugin and make it work as a BP node or would it not work inside of a plugin?

Thanks! :slight_smile:

Could you post a fix here? I’m currently stuck on this.

-steve

IsValidIndex fix:



    DECLARE_FUNCTION(execArray_IsValidIndex)
    {
        Stack.MostRecentProperty = nullptr;
        Stack.StepCompiledIn<UArrayProperty>(NULL);
        void* ArrayAddr = Stack.MostRecentPropertyAddress;
        UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
        if (!ArrayProperty)
        {
            Stack.bArrayContextFailed = true;
            return;
        }
        P_GET_PROPERTY(UIntProperty, Index);
        P_FINISH;

        bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
        *(bool*)RESULT_PARAM = WasValid;
    }




bool UVictoryBPFunctionLibrary::GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index)
{
    bool bResult = false;

    if (TargetArray)
    {
        FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);
        bResult = ArrayHelper.IsValidIndex(Index);
    }

    return bResult;
}