so I am trying out custom events in Action Graph and roughly have the following setup:
On Stage Event Tick → for each loop → send custom event
and somewhere else in the same graph:
on custom event → ...do something..
Now I have noticed that only the last element of the array the loop iterates over gets processed.
Hooking up the send custom event, on custom event and an additional on tick node with respective console text outputs for debugging results in the following:
It seems to me as if the on custom event node only evaluates if it has been called during the last tick (and by doing that only receiving the latest data) instead of being executed when it is called as advertised in OmniGraph Nodes in omni.graph.action — omni.graph.action 1.43.2 documentation and the tool tips.
Is this behaviour intended and can I change it to a more interrupt-like behaviour, such that a event call results in it immediate execution?
Hello! sorry for the late reply. I am looking into this! I understand that you may not be able to share the full graph, but would it be possible to build a minimal example graph and share the .usda file?
aaaaaaaand never mind. I asked around internally. Currently the custom event node indeed only works on the “next tick”. You should think of the custom event as like setting a “flag” on the current tick. It can’t “queue” multiple events from a single node per tick.
However, good news, this kind of behavior is in the works for future improvements to this system. I can’t give specific details, but we are aware of the issue and are working on it!
Thank you for the clarification. Tiny follow-up question: can an event sent by one Action Graph A be heard in Action Graph B or does this only work within Action Graph A as a means of tidying up the noodles?
it can! but remember, at the moment these will behave like a flag over the current tick. If you don’t need greater precision than that, or if you only have the one event, you’re good to go i think