So I’ve just started using Unreal 5 for the purposes of real time music visualizations, and have been working on this system that sends MIDI/Envelope/Macro data from Ableton Live to Unreal via OSC to trigger and modulate events. All basic functionality like triggering a Niagara system upon a midi note has been easy enough to set up for instance, but I’m currently stumped of how to get incoming float data from blueprint A to effect specific basic controls in blueprint B (Ultra Dynamic Sky in this case).
The left side of the blueprint is set up to receive the Track Number, Macro Track Address and Macro Numbers from Ableton, which would then brings in it’s corresponding float/integer data in to hypothetically control parameters found in other blueprint systems. That way the music driven float data can change the weather states in Ultra Dynamic Sky as music the Ableton session plays out.
How would one go about setting this up? Any help would be greatly appreciated!
Hey @ZackBerw. Have you looked into Blueprint Interfaces. With what you are asking, that might be your answer. Pretty simple to implement. After you have implemented Blueprint Interface into an actor, you can use “Get All Actors With Interface” to get actors you want without type casting or anything and send them the data.
I have also answered your question and explaining this on stream. Linking the highlight for you to review.
Thank you very much for taking the time to make a response video like that, I really appreciate it!
I have not looked into Blueprint Interfaces before, but it certainly seems like it could be the trick I’m looking for now that I’m aware of it.
I feel like I understand it in principle, but I still can’t admittedly figure out how to implement it in order to control the variables in Ultra Dynamic Sky with the incoming float data from Ableton.
So I’ve currently got a blueprint for my OSC data called “BP_SH_MacroControlUDS” which is the blueprint that receives the float data, which then needs to be sent out to the Ultra Dynamic Sky variables some how. I’ve tried to combining the “Caller” blueprint into this, as the initial caller example didn’t have the OSC inputs needed for my particular example.
I’ve then got the Implemented Interface set up with Functions labeled for each variable I’d like to control in Ultra Dynamic Sky.
I have the input labeled to be the same info Ableton is outputting “macro/1/1/value” with the corresponding output labeled as the location in which I’d like that macro track to effect.
“Time Of Day” in this particular instance.
Then there is receiver which is set up as shown in the walkthrough, with an additional attempt at labeling things in accordance to Ultra Dynamic Sky.
I assume I’m completely misinterpreting what to do here, as nothing effects Ultra Dynamic Sky when I attempt to play the level with all three variables set up and placed into the level where applicable.
I feel like you recreated the custom event after implementing interface? you can double cllck the function shown in implemented interfaces. In your case it will create a function as you have a return value to it. I have marked it on your image
I created receiver as a test class. you can assume that as your BP sky actor. Basically you implement the interface in your sky actor. Then you get access to those functions. You implement the function/event. Making both the fixes will send the data to sky actor then
So I unfourtantley still can’t seem to figure this out. Here’s what I have at the moment for the two blueprints and implemented interface in question.
I genuinely have no idea what I’m doing wrong at this point, or what I need to be doing to implement this properly. It seems like it should be easy in a practical sense, but in execution it continues to allude me…
I have no idea as I’m not getting any explicit error messages, so I’m completely lost at this point. I’m not really sure how to proceed because I can’t seem to identify whatever the issue may be. Apologies for how stupid this all must read…
Yeah, I’ve got three blueprints needed for this particular task. All of which sit directly in the scene.
The first is the Ultra Dynamic Sky blueprint in the editor. This blueprint has a bunch of exposed parameters such as “Time of Day”, “Cloud Coverage”, “Fog”, etc. That’s what I’m looking to control so I can have a dynamically changing weather system.
Then I have an OSC router blueprint, which takes the incoming OSC data from Ableton and distributes it to whatever blueprint is referencing it’s MIDI/Macro channels.
And then finally I have one more blueprint (the one in question here) that hooks up to the OSC Router Blueprint, so it can take the incoming data and send it to whatever needs to be modulated. Usually it’s been an actor within the blueprint like a Niagara system. But in this instance I’m trying to make it control a different blueprint.
Thank you for your patience regarding this, it’s greatly appreciated!
Ended up figuring out the issue thanks to a quick call with zer0chi.
Here’s the solution for future reference, in case anyone else runs into the same issue.