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

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!

@ why i can see the Line of node ā€œdraw Thick 3Dlineā€ when shipping packages. (development package and standalone can see). i use UE4.19

Hi,

I’ve been trying to find a way to sample pixels from Texture2D in 4.25 but I get compiler error C2440: ā€˜static_cast’: cannot convert from ā€˜const ElementType *’ to ā€˜const FColor *’.
After some searching, I came across post Static_cast error - C++ - Epic Developer Community Forums.
The solution is to change static_cast to reinterpret_cast.
Confirmed working for my Windows shipping build.

Hope it helps you.

@kevin791129 unfortunately didn’t fix the Victory_GetPixelsArrayFromT2D node on my end, I’m still getting an empty array when I change the cast.

When i package with the custom engine for HTML 4.24, and have builded your plugin into the project, it shows a error message when im using the node ā€œVictory HTML5 set cursor visibleā€

The error happends when i try to start the game in a web browser, and it says ā€œUncaught RuntimeError: function signature mismatchā€

ONLY happends when i connect the node to execute. When ever that victory node is removed, the package runs fine in the webbrowser.

Hey @ @frostic Was there any solution to ?

no. he never told me a fix for it. but i did try the subsystem launcher version and it works.