Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    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"

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

    Leave a comment:


  • replied
    kevin791129 This unfortunately didn't fix the Victory_GetPixelsArrayFromT2D node on my end, I'm still getting an empty array when I change the cast.

    Leave a comment:


  • replied
    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 this post https://answers.unrealengine.com/que...7646/view.html.
    The solution is to change static_cast to reinterpret_cast.
    Confirmed working for my Windows shipping build.


    Originally posted by NickGW View Post
    Hey Rama,

    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 this 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 this was an urgent need, but as new issues/lack of a feature in the version I use (4.22) rub up against the needs of the project, I'm finding that upgrading is all 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 this plugin. It's enabled me to do things previously out of reach.
    Hope it helps you.

    Leave a comment:


  • replied
    Rama why i can see the Line of node "draw Thick 3Dline" when shipping packages. (development package and standalone can see). i use UE4.19

    Leave a comment:


  • replied
    Rama 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, all 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 this?

    Thanks!

    Leave a comment:


  • replied
    Hey Rama,

    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 this 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 this was an urgent need, but as new issues/lack of a feature in the version I use (4.22) rub up against the needs of the project, I'm finding that upgrading is all 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 this plugin. It's enabled me to do things previously out of reach.

    Leave a comment:


  • replied
    Hey there,
    I wanted to let you know, Rama, that when compiling a game in 4.25, I get some "warnings" for future versions related to your awesome plugin:

    Code:
     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 object 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 this 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:

    Code:
     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

    Leave a comment:


  • replied
    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 Georg

    Leave a comment:


  • replied
    I couldn't figure out how to install this.. First off I had a hard time 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 this out

    Leave a comment:


  • replied
    It is not something that would be done 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 this.

    Leave a comment:


  • replied
    Originally posted by Kris View Post
    Hope that the Scene Capture Project functions & CreateTextureRenderTarget2D function are of use to someone.

    We've been using CreateTextureRenderTarget2D() for our optical sights and UI related elements for quite some time. It allows us to create texture render targets on the fly and not have to worry about creating them manually in the content browser.

    We use Project() for rendering attachment points for our character and items in the customisation UI.

    I created a crappy quick mini-map project that uses it as an example.
    I'll see about getting it online soon.

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

    Leave a comment:


  • replied
    Hello everyone does anyone happen to seen my post?

    Leave a comment:


  • replied
    Hello everyone!

    First of all:
    Rama thank you for sharing this 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
    Janos

    Leave a comment:


  • replied
    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:
    Code:
    AudioComp->SetSound(Sound);
    AudioComp->Play(0);
    That works like a charm. EXCEPT when I give the Play function a StartTime like so
    Code:
    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 this:
    Code:
    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 this:
    Code:
    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, this meant Unreal could not do its thing.
    So, totally my stupidity.

    Thanks anyway, cheers.
    Last edited by Infernobirb; 07-25-2020, 11:11 AM.

    Leave a comment:


  • replied
    Originally posted by Jaytheway View Post

    Nobody AbleChen

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

    Code:
    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 this works now in 4.25 editor and packaged/shipping build!

    Leave a comment:

Working...
X