"Get Aximmetry..." Nodes in Game Instance or Blueprint Function Libraries

 

Hi,

We had some issues with crashing when changing levels because we didn't have all the "Get Aximmetry..." nodes in all of the levels.

Since that, I've been trying to implement a way to decouple the logic for handling the inputs from Aximmetry from the blueprints in the level. I also prefer to have as little logic in the level blueprint as possible since it's less modular and turns into spaghetti really fast.

I tried to nest the input into the game instance and pass them as a struct to the blueprints, where they would use the inputs that they need. Sadly none of the inputs appeared in the project node in the composer. After I initialized them in the level blueprint connected to the "Event BeginPlay" they were able to receive data from the Composer.

To make the initialization less painful I moved all the "Get Aximmetry..." nodes into a blueprint function library and called the data collection function from there, and sadly my input pins disappeared again.


Is there a non-hacky/elegant way to collect data from a game instance blueprint or a way to have a persistent object to receive the input? Would writing a C++ singleton UengineSubSytem take care of this or would I have the same issues as with the game instance?

   Sexymmetrist

 
Profile Image
TwentyStudios
  -  
I would prefer if Aximmetry could implement a totally code/blueprint free way to control simple stuff in Unreal. When using the Sequencer in Unreal you don’t have to go into the level blueprint to control the transform of an object or adjust the intensity or color of a light. You just add it to a sequencer and it gets its own track to animate the parameter. Aximmetry should implement a similar system to make it more user friendly and intuitive to control Unreal from inside Aximmetry. I propose that it all could be arranged using sequences in Unreal. Create a new sequence, add some parameters/objects that  you want to control to this sequence, save the sequence and drag the sequence file into the Aximmetry flow editor. Aximmetry would parse the sequence file and expose the parameters you’ve assigned in Unreal as control pin inputs in the flow editor. To keep things more organized you could even have several sequences in Unreal, each with different parameters exposed and add the as separate control boards in Aximmetry. 
The current blueprint method could still be used when it’s appropriate for performance reasons or for deeper adjustments that can’t be assigned directly to a sequence track. 
 
Profile Image
Eifert@Aximmetry
  -  

Hi  Sexymmetrist,

Aximmetry generates pins based on the blueprints placed in the Game Default Map of Unreal Project Settings:

These blueprints do not necessarily have to be level blueprints.
Hence, the easiest solution to your problem is to create an Actor blueprint and place it in your Game Default Map. You can even place it in every map to ensure there is no issue when changing the Game Default Map.
Within this Actor blueprint, add all the "Get ... Aximmetry" nodes that you are using. Note that these "Get ... Aximmetry" nodes do not need to be connected to anything; they are simply there to be read by Aximmetry Composer to generate the pins. You can then use any of these "Get ... Aximmetry" nodes (with the same pin name) in any other blueprint, including in Blueprint functions and Game Instances.
Essentially, after the pin is created in Aximmetry, it is treated as a variable in Unreal that the  "Get ... Aximmetry" nodes can read.

Regarding generating pins from "Get ... Aximmetry" nodes in the Game Instance, this is not currently supported. This is because Unreal Editor is primarily used for virtual production with Aximmetry, and very few people use Game Instance in this context. However, if you would like to use it in this manner, we can add a request to our list and we will consider adding it in future releases.

Warmest regards,


;