Files
UnrealEngineUWP/Engine/Source/Runtime/AnimGraphRuntime/Public/AnimSequencerInstance.h
ludovic chabant e57f12f56c Fix some bugs with sequencer anim-nodes and anim-notifies not firing correctly in various cases.
- Provide the previous/next times to the anim-node so it can make the animation system update that whole time range, including when the node is resetting.
- Do the same thing for the anim-montage update, because when time loops around back to 0, it was updating backwards and firing notifies incorrectly.

Disable anim-notifies when scrubbing because we currently can't make all cases work consistently.

There are some other edge cases that are not solved by this CL yet, though.

#jira UE-70926
#jira UE-77768
#rb laurent.delayen, mike.zyracki, max.chen

[CL 8093828 by ludovic chabant in Dev-Editor branch]
2019-08-16 13:07:50 -04:00

44 lines
1.2 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
/**
*
* This Instance only contains one AnimationAsset, and produce poses
* Used by Preview in AnimGraph, Playing single animation in Kismet2 and etc
*/
#pragma once
#include "Animation/AnimInstance.h"
#include "AnimCustomInstance.h"
#include "AnimSequencerInstance.generated.h"
UCLASS(transient, NotBlueprintable)
class ANIMGRAPHRUNTIME_API UAnimSequencerInstance : public UAnimCustomInstance
{
GENERATED_UCLASS_BODY()
public:
/** Update an animation sequence player in this instance */
void UpdateAnimTrack(UAnimSequenceBase* InAnimSequence, int32 SequenceId, float InPosition, float Weight, bool bFireNotifies);
void UpdateAnimTrack(UAnimSequenceBase* InAnimSequence, int32 SequenceId, float InFromPosition, float InToPosition, float Weight, bool bFireNotifies);
/** Reset all nodes in this instance */
void ResetNodes();
/** Reset the pose for this instance*/
void ResetPose();
/** Saved the named pose to restore after */
void SavePose();
protected:
// UAnimInstance interface
virtual FAnimInstanceProxy* CreateAnimInstanceProxy() override;
public:
static const FName SequencerPoseName;
};