Determine break_loop_at_end 1 frame earlier using prediction by delta
This commit is contained in:
parent
607b230ffe
commit
4de79fed45
4 changed files with 9 additions and 13 deletions
|
|
@ -804,7 +804,7 @@ AnimationNode::NodeTimeInfo AnimationNodeStateMachinePlayback::_process(const St
|
|||
pi.weight = 0;
|
||||
current_nti = p_state_machine->blend_node(p_state_machine->states[current].node, current, pi, AnimationNode::FILTER_IGNORE, true, true);
|
||||
// Don't process first node if not necessary, insteads process next node.
|
||||
_transition_to_next_recursive(tree, p_state_machine, p_test_only);
|
||||
_transition_to_next_recursive(tree, p_state_machine, p_delta, p_test_only);
|
||||
}
|
||||
|
||||
// Check current node existence.
|
||||
|
|
@ -881,7 +881,7 @@ AnimationNode::NodeTimeInfo AnimationNodeStateMachinePlayback::_process(const St
|
|||
}
|
||||
|
||||
// Find next and see when to transition.
|
||||
bool will_end = _transition_to_next_recursive(tree, p_state_machine, p_test_only) || current == AnimationNodeStateMachine::END_NODE;
|
||||
bool will_end = _transition_to_next_recursive(tree, p_state_machine, p_delta, p_test_only) || current == AnimationNodeStateMachine::END_NODE;
|
||||
|
||||
// Predict remaining time.
|
||||
if (will_end || ((p_state_machine->get_state_machine_type() == AnimationNodeStateMachine::STATE_MACHINE_TYPE_NESTED) && !p_state_machine->has_transition_from(current))) {
|
||||
|
|
@ -899,10 +899,11 @@ AnimationNode::NodeTimeInfo AnimationNodeStateMachinePlayback::_process(const St
|
|||
return current_nti;
|
||||
}
|
||||
|
||||
bool AnimationNodeStateMachinePlayback::_transition_to_next_recursive(AnimationTree *p_tree, AnimationNodeStateMachine *p_state_machine, bool p_test_only) {
|
||||
bool AnimationNodeStateMachinePlayback::_transition_to_next_recursive(AnimationTree *p_tree, AnimationNodeStateMachine *p_state_machine, double p_delta, bool p_test_only) {
|
||||
_reset_request_for_fading_from = false;
|
||||
|
||||
AnimationMixer::PlaybackInfo pi;
|
||||
pi.delta = p_delta;
|
||||
NextInfo next;
|
||||
Vector<StringName> transition_path;
|
||||
transition_path.push_back(current);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue