You are welcome, has been integrated into future versions?
I have a link now for people in the original post, but after I add a chunk of new features I would appreciate you recompiling, as I do not have a post-4.24 setup going yet
I might have a fun new update within 24-48 hours so please check back periodically, or I might pm you if you want to help advance our Victory on the platform.
Get Text From Any Running .EXE on Your Computer!
URamaVictoryPluginCreateProcessPipe is Born!
Below is a picture of me capturing the output of a .exe on my computer, a video compression tool, HandBrake!
The output of STDOUT of the .exe is coming directly into UE4, using only Blueprints!
!
Again, welcome to the UE forums @richhelvey !
!
Iāve made a new version of the Victory Plugin ( 4.27 (win32, win64 only) in original post ) !
new version allows you to create a Very Special URamaVictoryPluginCreateProcessPipe to capture your Process output, if the Process is outputting to STDOUT (console window) or STDERR
-
Construct the RamaVictoryPluginCreateProcessPipe
-
Pass it into VictoryCreateProc
-
Call ReadFromPipe on the periodically to get updates from your process
-
When , please call ClosePipe on the , and null the reference to the (I call ClosePipe inside of BeginDestroy, but might as well take initiative yourself and close the actual OS pipe yourself immediately, rather than waiting for Garbage Collection)
Relevant UE4 C++ Code
.h
/**
Made With Love By for Use with @VictoryCreateProc
So that you can receive feedback from your processes.
ā„
*/
UCLASS(Blueprintable,BlueprintType)
class URamaVictoryPluginCreateProcessPipe : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = "Joy Flow")
bool CreatePipe();
UFUNCTION(BlueprintCallable, Category = "Joy Flow")
void ClosePipe();
/**
has exec pins because it is an expensive action and the output is saved/cached on the output pin, whereas a Pure node would repeat the action many times, each node is accessed.
@Return false if the pipes were not created yet
ā„
*/
UFUNCTION(BlueprintCallable, Category = "Joy Flow")
bool ReadFromPipe(FString& PipeContents);
UFUNCTION(BlueprintPure, Category = "Joy Flow")
bool PipeIsValid();
public:
void* ReadPipe = nullptr;
void* WritePipe = nullptr;
virtual void BeginDestroy() override;
};
.cpp
bool URamaVictoryPluginCreateProcessPipe::CreatePipe()
{
if(PipeIsValid())
{
//Ignore repeat creates without a close inbetween <3
return true;
}
return FPlatformProcess::CreatePipe( ReadPipe, WritePipe );
}
void URamaVictoryPluginCreateProcessPipe::ClosePipe()
{
if(PipeIsValid())
{
FPlatformProcess::ClosePipe(ReadPipe, WritePipe);
ReadPipe = nullptr;
WritePipe = nullptr;
}
}
bool URamaVictoryPluginCreateProcessPipe::ReadFromPipe(FString& PipeContents)
{
PipeContents = "";
if(!PipeIsValid())
{
return false;
}
PipeContents = FPlatformProcess::ReadPipe(ReadPipe);
return true;
}
bool URamaVictoryPluginCreateProcessPipe::PipeIsValid()
{
return ReadPipe != nullptr && WritePipe != nullptr;
}
void URamaVictoryPluginCreateProcessPipe::BeginDestroy()
{
Super::BeginDestroy();
//~~~~~~~~~~~~~~~~~~~~
//Close pipe if it was still open! ā„
ClosePipe();
}
Please add āArray Sortā node to the UE5 version, I need the node that sorts structs by a variable name āArray Sortā.
Was Array sort actually working for you in UE4.27 ? The contributor to the Victory plugin who made that node would be able to help, Mr Redbeard, but I thought the node had been non-functional for a while, and I donāt recall why.
Victory to You @Tbjbu1 !
It was working for me in 4.26, not sure about 4.27 - never used that version.
Iām looking for a manual too~
Good to know thank you, I will investigate!
Do you have a specific question, what sort of manual did you have in mind?
Hi, I have question regarding the SaveArrayToFile, is there an example of how to format it as row and column for csv file?
@Looks like my UE5 release prediction was pretty spot on
Iām trying to get a copy of our project working in UE5 Preview. So far Iāve gotten most of the levels to open fine, but if I try opening any blueprints (or even create a new blueprint > actor from scratch) I get crash immediately:
Assertion failed: NewOperatorInputA [File:D:\build\++UE5\Sync\Engine\Source\Editor\BlueprintGraph\Private\K2Node_CommutativeAssociativeBinaryOperator.cpp] [Line: 281]
(the line is: check(NewOperatorInputA);
I searched online for āK2Node_CommutativeAssociativeBinaryOperator.cppā and saw a few references to the Victory plugin, hence why Iām posting it here (I realize itās an engine file, but from my search results of other people having an error with cpp file, they mentioned the victory plugin)
I know UE5 Preview literally JUST came out today, so Iām not expecting an immediate update, just thought Iād post here in case itās useful
UPDATE: Fixed it!! It was the āAppend Multipleā node that I found was added to one of our widgets that was causing the crash in the UE5 Preview project (now replaced with the regular append node).
Hi. I started using the Victory plugin for getting RGB data from a texture.
I downloaded and installed the āLemur_hotelā version, which is the only compiled version I could find, because www. is dead and github does not
Iām using UE4.27 on Win64
I tried the node GetPixelFromT2D to get pixels from a texture, but it returns only zero RGBA and the deprecation message " function will not work until I figure out how to update it to 4.25, if you need it urgently, please post in my ue4 forum thread for plugin"
Is there a fix for 4.27?
In fact T2D functions either donāt work or crash ue4.27
I need to get the pixels coming from a video input texture, so loading from a file (the only thing that works) is not an optionā¦
is the crash report I get when calling VictoryGetPixelsArrayFromT2D blueprint with a 1024x1024 texture in VectorDisplacementMap mode
The plugin is installed in the project plugin folder, not in the engine plugins.
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000002
UE4Editor_VictoryBPLibrary!UVictoryBPFunctionLibrary::Victory_GetPixelsArrayFromT2D() [X:\Workspaces\V360_Services\Framework\Plugins\VictoryPlugin27\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp:4622]
UE4Editor_VictoryBPLibrary!UVictoryBPFunctionLibrary::execVictory_GetPixelsArrayFromT2D() [X:\Workspaces\V360_Services\Framework\Plugins\VictoryPlugin27\Intermediate\Build\Win64\UE4Editor\Inc\VictoryBPLibrary\VictoryBPFunctionLibrary.gen.cpp:1270]
Hi there! @anonymous_user_ebb8f4eb welcome to the UE4 Forums!
The solution to your is here:
Same logic applies to the UE4 version (you donāt have to upgrade to UE5, just set your T2Ds to no mip maps and use vectordisplacement, results in no compression of your texture, so you have a 1 to 1 pixel ratio between your original file and the UE4 file, annnnnd, no crash
Each array line = 1 row
Each comma = 1 column
so if your csv file looks like
Name, Favorite Flower, Favorite Color
Name,Favorite Flower,Favorite Color
You,Tulip,Yellow
Me,Rose,HotPink
Sjoerd,StrawberryFlower,Red
then each of your String array entries should have 2 commas, and each array entry represents 1 row, you should include Column labels as your array 0 entry.
Donāt add line terminators in your UE4 string array, I add the line terminator in the C++ for you!
FString FinalStr = "";
for(FString& Each : SaveText)
{
FinalStr += Each;
FinalStr += LINE_TERMINATOR;
}
I try to use Victory create proc on UE4.7 but the input argument line is not written to the command line windows and the process hold the empty command line window
could anybody give me some instruction
Removing victoryBP nodes from my project and disabling the plugin corrupts a bunch of my blueprint filesā¦
Enabling the plugin again fixes it.
I canāt package my project because of an error with the plugin, that iām not even using, which if disabled and removed, breaks my projectā¦
Do I just need to start a new project and start over?
Hey, first thanks for , Amazing Plugin!, 2, i try to Load Textfiles, and looks like , Ć,Ć,Ć are replaced by ā?ā, but on the node is " it supports Unicode characters" ?
I have been facing to deploy on Quest.
I checked the adb log and it says : Failed to load āApex Destruction pluginā.
I am confused with part as there is a filter for APEX EXCLUSION in Build.cs:
if (Target.Platform != UnrealTargetPlatform.Android && Target.Platform != UnrealTargetPlatform.IOS)
But it still tries to load the ApexDestruction plugin.
I also set the flag for plugin to false in uplugin file. The app loads but it is stuck at loading screen.
Please help if someone can provide any pointers on .
EDIT:
Here is the portion of the adb log:
03-22 23:51:57.468 1871 1943 D UE4 : LogInit: Display: Loading text-based GConfig....
03-22 23:51:57.537 1871 1943 D UE4 : LogPluginManager: Error: Unable to load plugin 'ApexDestruction'. Aborting.
03-22 23:51:57.581 1871 1943 D UE4 : Assertion failed: false [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Launch/Private/Android/LaunchAndroid.cpp] [Line: 479]
03-22 23:51:57.581 1871 1943 D UE4 : Engine Preinit Failed
03-22 23:51:57.581 1871 1943 D UE4 : Assertion failed: false [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Launch/Private/Android/LaunchAndroid.cpp] [Line: 479]
03-22 23:51:57.581 1871 1943 D UE4 : Engine Preinit Failed
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: === Critical error: ===
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error:
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: Assertion failed: false [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Launch/Private/Android/LaunchAndroid.cpp] [Line: 479]
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: Engine Preinit Failed
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: [Callstack] 0x00000000C2DC6B74 libUE4.so(0x0000000005FC2B74)!AndroidMain(android_app*) []
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: [Callstack] 0x00000000C2DDA35C libUE4.so(0x0000000005FD635C)!android_main() []
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: [Callstack] 0x00000000C2E10910 libUE4.so(0x000000000600C910)![Unknown]() []
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: [Callstack] 0x00000000F411C6D6 libc.so(0x000000000009A6D6)![Unknown]() []
03-22 23:51:57.581 1871 1943 D UE4 : LogAndroid: Error: [Callstack] 0x00000000F40E1278 libc.so(0x000000000005F278)![Unknown]() []
Did you check my version of the plugin I uploaded for Quest? Google Drive: Sign-in
I have downloaded the plugin from the Drive link you have shared before for Android:
I am not sure about the one you have linked now: It say āYou need accessā.