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

Is the sort node for array of strucs working ? nothing happen when i try to use it.

Hi,
did you ever get sorted out?
I also tried to remove the plugin, and even though Iā€™m pretty sure that itā€™s not used anymore, it still crashes upon next restart of the project. :frowning:

Kind regards,

/hauke

BTW: does anybody have an idea how to check where a specific plugin is used aside from ā€œlook through blueprints that you can openā€?

When you open the project file with notepad, is the plugin set to ā€˜falseā€™?

GetPixelFromT2D is broken in 4.24. Crash. Access violation.

Do not use plugin if youā€™re not familiar with C++ and donā€™t want to check the code by yourself before using a node!

I just looked into the UVictoryBPFunctionLibrary::Victory_GetPixelFromT2D function and it



T2D->SRGB = false;
T2D->CompressionSettings = TC_VectorDisplacementmap;


changes the texture settings without letting the user know! The texture will have other settings after calling the node.

Ah, thank you very much, seems to help! Finally I was able to remove the plugin by setting it to ā€œfalseā€ by hand in the project file. Phew! Thank you!

Just a little warning: plugin does not seem to be fully compatible with the Oculus Quest. I just spent two hours of debugging trying to figure out why my app kept crashing on me ONLY on the Quest, but nowhere else. Turns out it was the usage of the ā€œAppend Stringā€ (Or ā€œAppend multipleā€? Canā€™t recallā€¦) function of the VictoryBP Plugin.
Since I replayced it with the builtin ā€œAppendā€ function, everything is working smoothly again.

Hello, I encountered the same problem. Do you have any solutions?

Yeah Sound Importing is broken for me in 4.25 aswell. Tried modifing the code a bit but as I am not very good in c++ so the only thing I could manage is to get some static noise after a week on working on it. :frowning:

@Nobody @AbleChen

Hereā€™s working modified version of that function, add it to your blueprint function library. Check if it works in packaged game.


USoundWave* GetSoundWaveFromFile(const FString& FilePath)
{

#if PLATFORM_PS4
UE_LOG(LogTemp, Error, TEXT("UVictoryBPFunctionLibrary::GetSoundWaveFromFile ~ vorbis-method not supported on PS4. See UVictoryBPFunctionLibrary::fillSoundWaveInfo"));
return nullptr;
#else
USoundWave* sw = NewObject<USoundWave>(USoundWave::StaticClass());

if (!sw)
return NULL;

//* If true the song was successfully loaded
bool loaded = false;

//* loaded song file (binary, encoded)
TArray < uint8 > rawFile;

loaded = FFileHelper::LoadFileToArray(rawFile, FilePath.GetCharArray().GetData());

if (loaded)
{
FByteBulkData* bulkData = &sw->CompressedFormatData.GetFormat(TEXT("OGG"));

bulkData->Lock(LOCK_READ_WRITE);
FMemory::Memcpy(bulkData->Realloc(rawFile.Num()), rawFile.GetData(), rawFile.Num());
bulkData->Unlock();

//loaded = fillSoundWaveInfo(sw, &rawFile) == 0 ? true : false;
FSoundQualityInfo info;
FVorbisAudioInfo vorbis_obj;
if (!vorbis_obj.ReadCompressedInfo(rawFile.GetData(), rawFile.Num(), &info))
{
//Debug("Can't load header");
loaded = false;
}

if (!sw) loaded = false;
sw->SoundGroup = ESoundGroup::SOUNDGROUP_Default;
sw->NumChannels = info.NumChannels;
sw->Duration = info.Duration;
sw->RawPCMDataSize = info.SampleDataSize;
sw->SetSampleRate(info.SampleRate);

**sw->RawPCMData = (uint8*)FMemory::Malloc(sw->RawPCMDataSize);
vorbis_obj.ExpandFile(sw->RawPCMData, &info);**

loaded = true;
}

if (!loaded)
return NULL;

return sw;
#endif
}

Boldened code is whatā€™s different from the original.

Thanks a lot! I can confirm works now in 4.25 editor and packaged/shipping build!

Hey fine people of the forums!

I use the .wav file loading code to ā€¦well, load .wav files. Works great. I use a UAudioComponent with the resulting USoundWave like so:


AudioComp->SetSound(Sound);
AudioComp->Play(0);

That works like a charm. EXCEPT when I give the Play function a StartTime like so


AudioComp->Play(1.0f);

Now nothing plays anymore. Iā€™ve tried to chase down the rabbit hole of the Unreal engine code to see what is need for the StartTime to work, but I coulnā€™t figure it out. Any help/suggestions are greatly appreciated.

EDIT:

I found my mistake, pretty dumb but Iā€™m leaving it here for completeness:

I did :


USoundWave* Sound;
Sound->RawData.Lock(LOCK_READ_WRITE);
void* LockedData = Sound->RawData.Realloc(RawData.Num());
FMemory::Memcpy(LockedData, WaveInfo.SampleDataStart, WaveInfo.SampleDataSize);
Sound->RawData.Unlock();

instead of :


USoundWave* Sound;
Sound->RawData.Lock(LOCK_READ_WRITE);
void* LockedData = Sound->RawData.Realloc(RawData.Num());
FMemory::Memcpy(LockedData, RawData.GetData(), WaveInfo.SampleDataSize);
Sound->RawData.Unlock();

and since ā€˜WaveInfo.SampleDataStartā€™ is null, the RawData in the Sound wave was also then a null pointer. Since the Unreal sound processing on relies on the Sound->RawData, meant Unreal could not do its thing.
So, totally my stupidity.

Thanks anyway, cheers.

Hello everyone!

First of :
@thank you for sharing awesome asset for us!

I am using your LoadObjectFromAssetPath BP node, in the editor to load assets into my scene.

I am struggling to get it to load stuff runtime, from a folder that has not been packaged with the gameā€¦(Content creatorā€™s folder for importing clothes as skeletalmeshes and props as staticmeshes)
Not sure what kind of path can I feed to the node that works with runtime, non-packaged stuff.

Maybe there is another node that I do not know of?

Many thanks

Hello everyone does anyone happen to seen my post? :slight_smile:

Do you have any examples of how to implement for a scope in a dedicated server multiplayer game?

It is not something that would be on a dedicated server - it would be on the clients.
There are already a number of tutorials/examples floating around showing how to use a scene capture component to render to textures.
A 3d optic is no different to .

I couldnā€™t figure out how to install ā€¦ First off I had a hard finding the vertex snapper since I thought that VictoryPlugin25 didnā€™t have the instanced mesh thing for static meshes (didnā€™t find it) then when I try to start up the project with the version of the plugin that has ā€œVictoryEdEngineā€ which I supposedly need for the static mesh stuff (only thing I need from the plugin) it just gives a bunch of errors when I try to compileā€¦

Soā€¦
Does the 4.25 version of the plugin have the ā€˜combine multiple static meshes into an instanced static meshā€™ stuff? If so, how can I get it to work? I just couldnā€™t figure it out, also Iā€™m tired so that may be a factor in why I couldnā€™t figure out

Hi there,

I would like to get the save string array to work frame by frame. So that for example i would directly print multiple position metadata of agents per frame into a file.

best

Hey there,
I wanted to let you know, @, that when compiling a game in 4.25, I get some ā€œwarningsā€ for future versions related to your awesome plugin:


 X:/Project/Plugins/VictoryBP/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp(4098): warning C4996: 'operator new': Placement new on TIndirectArray has been deprecated - users should call Add() passing a pointer to an  created with new. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
X:/Project/Plugins/VictoryBP/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp(5297): warning C4996: 'FindField': FindField will no longer return properties. Use FindProperty instead or FindUField if you want to find functions or enums. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
X:/Project/Plugins/VictoryBP/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp(5298): warning C4996: 'FindField': FindField will no longer return properties. Use FindProperty instead or FindUField if you want to find functions or enums. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
X:/Project/Plugins/VictoryBP/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp(5319): warning C4996: 'FindField': FindField will no longer return properties. Use FindProperty instead or FindUField if you want to find functions or enums. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.


Also warnings have been appearing at least since 4.20, but Iā€™ve seen no problem with those so far, but just in case you didnā€™t know about them:


 LogClass: Warning: FLevelStreamInstanceInfo::Location is not initialized properly
LogClass: Warning: FLevelStreamInstanceInfo::Rotation is not initialized properly
LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeLoaded is not initialized properly
LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBeVisible is not initialized properly
LogClass: Warning: BoolProperty FLevelStreamInstanceInfo::bShouldBlockOnLoad is not initialized properly
LogClass: Warning: FLevelStreamInstanceInfo::LODIndex is not initialized properly
LogClass: Warning: BoolProperty FVictoryInput::bShift is not initialized properly
LogClass: Warning: BoolProperty FVictoryInput::bCtrl is not initialized properly
LogClass: Warning: BoolProperty FVictoryInput::bAlt is not initialized properly
LogClass: Warning: BoolProperty FVictoryInput::bCmd is not initialized properly


Hey ,

Saw that in 4.25 several of the Get Pixel/s from T2D nodes are now deprecated and you recommend voicing any continued need for them in thread. Iā€™m one of the people who uses those nodes and theyā€™ve been a critical component of my current project. Not having access to to them is preventing me from moving to 4.25 until a solution is found. I would not have initially said was an urgent need, but as new issues/lack of a in the version I use (4.22) rub up against the needs of the project, Iā€™m finding that upgrading is but a necessity so having these nodes available has become a far more urgent matter.

I hope itā€™s possible to find a solution and thank you so much for plugin. Itā€™s enabled me to do things previously out of reach.

@Thanks for the plugin!! itā€™s fantastic.
I just converted a project from 4.24 to 4.25 and replaced the victory plugin with the 4.25 version, works fine, but a function called ā€œVicrotry Get Pixel from T2Dā€ is listed as deprecated and doesnā€™t work. The blueprint note said to post something here if itā€™s needed urgently, and it very much is.
If there anything you can do about ?

Thanks!