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

Can you please make the next node to be a node that enable you to use external audio files like you did with the texture node ?

Sounds cool but I can think a few possible problems, such as UE4 only supports .wav.

What would be the use case though? curious :stuck_out_tongue:

Well, if users could place their own texture packs, why not matching sounds as well?

I Want to give the user the ability to replace audio files for certain actions, like a shooting sound for example.
So the user can replace fire.wav with an other fire.wav and the game will play the current file.

Hey ,

thanks a lot for great plugin!
Could the “Victory Save Pixels” node be extended in a way that it outputs a new Texture2d without saving the file to disk first?

edit: actually, get the pixels of a Texture2d, manipulate, and create a new Texture2d :slight_smile:

Load .Wav From File and play it!

Dear ,

I already have these nodes for loading audios from file!

Does give you want?
**
PlaySoundAttachedFromFile
PlaySoundAtLocationFromFile
GetSoundWaveFromFile**



/** Contributed by UE4 forum member ! Plays a sound from file, attached to and following the specified component.  is a fire and forget sound. Replication is also not handled at  point.
* @param FilePath - Path to sound file to play
* @param AttachComponent - Component to attach to.
* @param AttachPointName - Optional named point within the AttachComponent to play the sound at
* @param Location - Depending on the value of Location Type  is either a relative offset from the attach component/point or an absolute world position that will be translated to a relative offset
* @param LocationType - Specifies whether Location is a relative offset or an absolute world position
* @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
* @param VolumeMultiplier - Volume multiplier
* @param PitchMultiplier - PitchMultiplier
* @param AttenuationSettings - Override attenuation settings package to play sound with
*/ 
UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (VolumeMultiplier = "1.0", PitchMultiplier = "1.0", AdvancedDisplay = "2", UnsafeDuringActorConstruction = "true"))
static class **UAudioComponent* PlaySoundAttachedFromFile**(const FString& FilePath, class USceneComponent* AttachToComponent, FName AttachPointName = NAME_None, FVector Location = FVector(ForceInit), EAttachLocation::Type LocationType = EAttachLocation::SnapToTarget, bool bStopWhenAttachedToDestroyed = false, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, class USoundAttenuation* AttenuationSettings = NULL);

/** Contributed by UE4 forum member ! Plays a sound at the given location.  is a fire and forget sound and does not travel with any actor. Replication is also not handled at  point.
* @param FilePath - Path to sound file to play
* @param Location - World position to play sound at
* @param World - The World in which the sound is to be played
* @param VolumeMultiplier - Volume multiplier
* @param PitchMultiplier - PitchMultiplier
* @param AttenuationSettings - Override attenuation settings package to play sound with
*/
UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary", meta = (HidePin = "WorldContextObject", DefaultToSelf = "WorldContextObject", VolumeMultiplier = "1.0", PitchMultiplier = "1.0", AdvancedDisplay = "3", UnsafeDuringActorConstruction = "true"))
static void **PlaySoundAtLocationFromFile**(UObject* WorldContextObject, const FString& FilePath, FVector Location, float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, class USoundAttenuation* AttenuationSettings = NULL);

/** Contributed by UE4 forum member ! Creates a USoundWave* from file path.
* Read .ogg header file and refresh USoundWave metadata.
* @param FilePath		path to file to create sound wave from
*/
UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary")
static class **USoundWave* GetSoundWaveFromFile**(const FString& FilePath);


Enjoy!

Holy **** ! you are a god ! Thanks XD

,Can you tell us how do you make the VictoryAI plugin template?

When I have some I can work on yes :slight_smile:

TMaps, Mapping Two Data Types Together In BP!

's Blueprints TMap Solution!

I’ve now made a BP TMap solution!

TMap is a data structure that is not yet exposed to BP, but I’ve made a component-based solution for you so that you can use TMaps in BP!


**What's a TMap?**

Really it's name is "Map" and T is the class specifier in C++, but I tend to call them TMaps since Map is a rather generic word.

A TMap is a data structure based on Key,Value pairs, where for any Key there is only one Value.

 allows internal data structure look up times that are much faster than a regular dynamic array.

 also allows for the association of dissimilar data types in a way that you organize.

For example, you can map a set of integers to a set of Vectors, so that each integer is related to exactly one vector.

Or, as I provide you with in my plugin, you can **relate a String to an Actor**!

 means you can look up an Actor reference via a simple string input!

Or you can look up Vector data based on String data!

**The primary use of TMaps is for efficient lookup of data**, which dynamic arrays simply cannot do because there is no guarantee or assumption with dynamic arrays of anything like a key,value where each key has only 1 value.

**The rules of TMaps allow for efficient look up to speed up your game flow!**

Actor Component

My solution is component-based, which means you can have per-instance TMap data for your game’s actors!

You simply add my Victory TMap Component to any actor you want!

I used the My Character blueprint in my own tests!!!

You can use literally any actor you want, or make a new actor BP whose only role is to house the TMap Component


**Supported Types**

![aa1ade53f3ff0021436f1a76aac85d11992bbd7c.jpeg|1265x798](upload://ogOJATwlYRl6WYup8uRYQZ9AtGc.jpeg)

**Supported TMap Functions**

![06a72fc14f4c795fe5f7fced0d14ac3be930f540.jpeg|1245x741](upload://WR3JWI54dZ76RYdi8fm8862ATe.jpeg)

![IsValidCheckOnGet.jpg|956x762](upload://tSF9sIfNyhHV3ROMcL8PJxPHwBX.jpeg)

Additional TMap Combinations

If you find that you cannot use my existing set of TMap Combinations to fulfill your game’s needs, let me know by posting in thread and I can add additional TMaps to the component.


**Per Instance**

Remember that what I providing you with is a component-based solution, so you can add  TMap data to as many actors in your game as you want, and have per-instance variations in the data contained therein!

Most Recent Plugin Download From UE4 Wiki

:slight_smile:

I tried the “get sound wav from file” and it didn’t work for me.
While “get texture from file” worked great, trying to get the wav files the exact same way and it gives me nulls.
Did someone try that node already?

Edit: Oh i see now. they files supposed to be in .ogg format, it wasn’t that obvious though :\

Thank you , and everybody who ever contributed for great Plugin, it’s really awesome.

I have a question and a request:

In January you wrote on answerhub that it will be possible “very soon” to package BP only projects - is there any new information?

I really would love to see Apply Multiple Damage & Event Multiple Damage nodes. Similar to the current ones, but instead of a float as base damage it would carry a float array, so it may affect various attributes at once with different intensity - e.g. Life, Mana, Stamina. In addition it may also have a bool array and another float array for “is (damage over)” and " (damage over) duration". The Bool array is not really necessary, but it may be a bit more comfortable to work with.

I didnt write that node, I"ll have to review it and see what’s going on :slight_smile:

Very nice to hear from you aWinter!

Is there a reason you cant make these nodes yourself as functions in your character class?

What is the reason it needs to be with C++ code?

Happy to assist but need to know the reason for involving C++ code :slight_smile:

Have fun today!

[COLOR=“#0000FF”]Draw Thick Circle With Axis Control[/COLOR]

Fun node for you!

With node you can draw circles!

And you can control their thickness, as well as how many points make up the circle!

You can also have axis control!

So you can draw circles horizontally, vertically, at angles, any way you like, with convenient BP node inputs!

See pics!


**Most Recent Plugin Download From UE4 Wiki**
**Download Size: 648 KB** (about half of a MB)

https://wiki.unrealengine.com/File:VictoryPlugin.zip


:)

Ok i just had to use *.ogg files and it works great, it should be mentioned in the function’s description though.

Hey , I tried to use your victory plugin in 4.8.0 Preview 2, and UE rejected saying that version is incompatible and that you’d need to recompile it for version. Can you help?

here is the image
60d6b8c90688df66dac74114e64903606beaaac2.jpeg

Have you tried to recompile your project it in visual studio ?

I could of course implement my own functions to transfer the damage from the damage causer to the receiver. Just as I might use twenty “append string” nodes in a row instead of one “append multiple” from the victory plugin. However, there are many situations when the damage nodes are just ideal and casting or bp interfaces would be really cumbersome to use. The only of the damage nodes is that you may only pass one float at a (and afaik you can’t change or workaround at the moment without c++). Since really many games use some kind of damage I think many people would benefit from a default damage node which may pass various floats. Hence even racing or sport games may use it to pass some data from one actor to another. Two wildcard/ a struct array(s) would of course be even more useful than two float arrays, but I don’t know if is a good idea for something crucial as damage processing or if it’s possible at .

That’s great to know, thanks! I have updated the in-editor Node descriptions!


**Victory BP Library ~ Primary Releases Only Unless Have Community Help**


[QUOTE=malospam;290755]
Hey , I tried to use your victory plugin in 4.8.0 Preview 2, and UE rejected saying that  version is incompatible and that you'd need to recompile it for  version. Can you help?
[/QUOTE]



[QUOTE=KitatusStudios;290876]
There's a lot of outdated code that won't work according to my 4.8
[/QUOTE]


Dear Community,

It is to be expected that my plugin wont automatically work with new preview builds because a very large quantity of C++ code (**over 4,000 lines!**) is involved.

Because C++ code changes are so plentiful in Preview builds, I cannot afford to support them myself.

**Please recall that I am not getting paid by Epic or anyone else to support my Victory BP Library plugin and I do  that I can, just for you!**

I simply dont have the to support preview builds!

Keep in mind that Epic states clearly that preview builds are just for testing and you should not be running your main project on a preview build as many things can change during the preview process!

Do PM Me if You Do A Preview Build Upgrade

If anyone upgrades my plugin to 4.8 for their own use they can pm me and I can add the preview build to thread.

:slight_smile:

Just casting to your custom character class which has extended versions of the Damage nodes, where you pass in the float array and take each entry out and apply damage nodes to each float is quite simple, I am not sure wherein lies the complication other than casting from base character class to your character class.

Let’s wait and see what casting is like in 4.8!

There’s a bug that makes it hard to make BP Libary Assets (Blueprint Only) to expedite casting to custom classes via pure nodes, I am hoping is fixed in 4.8

:slight_smile: