Hi Recursoft and others, Im using this plugin as a way for artists to easily create asset decision trees based off of a json struct built by ML. One of the issues im hitting here is that we never really want the system to idle on any state. We have a lot of sub-StateMachines for each feature, and we are moving through them each using HasStateMachine Reached EndState.
This works well, but sometimes our graph will not be able to find a valid transition and so it stays active on a node before the end of the sub State Machine. This is clearly ideal for tracking states, but we are using this more for a interactive decision tree.
i have tried to override
IsInEndState() on both the State Machine instance and the state instance in order to do a check if they have no available/valid transitions to report that it is in fact a End state, but i cant seem to get it to work. Some pointers on what to look at would be really useful! (Additional info, we are using the beta)
bool UWECLFeatureNode::IsInEndState() const
{
if (Super::IsInEndState())
{
return true;
}
if (const FSMState_Base* Node = (FSMState_Base*)GetOwningNode())
{
for (FSMTransition* Transition : Node->GetOutgoingTransitions())
{
const bool bCanEval = Transition->bCanEvaluate;
if (bCanEval && Transition->CanTransition())
{
return false;
}
}
}
return true;
Another solution we could do is check the states achieve time for being over a certain amount, but that seems pretty dirty.
Keen for any advice here!
Really impressed with the editor side of this plugin and its been very easy to navigate the code.

