摘要
本文介绍Mover2.0中的输入处理机制,什么是输入命令上下文,如何通过上下文传递数据到Mover系统,以及如何自定义InputProducer以操控上下文。
介绍
不像CharacterMovementComponent(继承自PawnMovementComponent),你只需要调用AddInputVector即可驱动角色的移动。
在Mover中,移动输入的处理变得更加灵活,但其代价是用户代码会变得更加底层且复杂。
输入命令上下文
在Mover中,将用户输入传递到Mover系统的主要方式是通过InputCmdContext(输入命令上下文),后文简称为Context。
你可以将Context简单理解为是一个MoverData容器,可以通过蓝图/C++的API对其包含的数据进行增删改查。
这里的MoverData指的是:继承自FMoverDataStructBase的结构体,因此,必须通过C++新增MoverData类型。
Context可以容纳多个类型的输入参数结构体。
什么是InputProducer?
任意实现了MoverInputProducerInterface的UObject可以视为一个InputProducer。
MoverComponent内置一个ProduceInput函数,会在每帧调用。
// Get latest local input prior to simulation step. Called by backend system on owner's instance (autonomous or authority).
void ProduceInput(const int32 DeltaTimeMS, FMoverInputCmdContext* Cmd);同时还持有一个实现了MoverInputProducerInterface的对象的引用。上面的ProduceInput默认实现是通过下面的InputProducer对象来完成具体的输入处理逻辑。这样的设计,允许用户将输入逻辑从Mover系统中解耦。
/** Optional object for producing input cmds. Typically set at BeginPlay time. If not specified, defaulted input will be used. */
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = Mover, meta = (MustImplement = "/Script/Mover.MoverInputProducerInterface"))
TObjectPtr<UObject> InputProducer;默认情况下,MoverComponent会在Beginplay时,尝试从所属Actor或其组件树中查询实现了该接口的对象。
由于该对象是公开的,且蓝图可读写,你可以随时将任意实现了MoverInputProducerInterface的对象赋值给这个成员即可。
注意
尽管代码注释声称该对象是可选的,但当前Mover插件中的很多引擎代码并没有将其作为“
可选”对待。所以确保你始终提供InputProducer
用户只需要关心,如何将输入命令控制参数通过ProduceInput函数传递给InputCmdContext(输入命令上下文)。
实现MoverInputProducerInterface接口
蓝图和C++都可以实现MoverInputProducerInterface,
class IMoverInputProducerInterface : public IInterface
{
GENERATED_BODY()
public:
/** Contributes additions to the input cmd for this simulation frame. Typically this is translating accumulated user input (or AI state) into parameters that affect movement. */
UFUNCTION(BlueprintNativeEvent)
void ProduceInput(int32 SimTimeMs, FMoverInputCmdContext& InputCmdResult);
};Note
ProduceInput会在每帧执行,但是你不一定需要每帧都往Context中添加数据。
官方案例
在MoverExample插件中,MoverExamplesCharacter这个Class实现了MoverInputProducerInterface,并演示了如何绑定InputAction,缓存Action的值,并在OnProduceInput中,根据配置,角色当前的状态,InputAction的值,构建了针对于CharacterDefaultInputs。你可以参考它以了解基本的用法,但请参考后文了解如何设计你的InputProducer。
设计你的InputProducer
我推荐通过Component来实现该接口,而不是通过Actor。基于组件开发能提升代码的可移植性。
使用单独的组件,实现业务的控制逻辑,通过组件的继承,从而实现不同的控制策略。
UCLASS(ClassGroup=GMS, BlueprintType, Blueprintable, meta=(BlueprintSpawnableComponent), DisplayName="GMS Movement System Component(Mover)")
class GAME_API UMoverControlSystem : public UActorComponent, public IMoverInputProducerInterface
{
GENERATED_BODY()
public:
virtual void ProduceInput_Implementation(int32 SimTimeMs, FMoverInputCmdContext& InputCmdResult) override;
protected:
// Override this function in native class to author input for the next simulation frame. Consider also calling Super method.
UFUNCTION(BlueprintNativeEvent, Category="GMS|MovementSystem")
FMoverInputCmdContext OnProduceInput(float DeltaMs, FMoverInputCmdContext InputCmd);
}void UMoverControlSystem::ProduceInput_Implementation(int32 SimTimeMs, FMoverInputCmdContext& InputCmdResult)
{
InputCmdResult = OnProduceInput(static_cast<float>(SimTimeMs), InputCmdResult);
}
FMoverInputCmdContext UMoverControlSystem::OnProduceInput_Implementation(float DeltaMs, FMoverInputCmdContext InputCmdResult)
{
// Your game control logic, this is where you implements your control system, feeding inputs to context.
// 你的游戏控制逻辑,在这里实现你的控制系统,将输入传递给context.
FCharacterDefaultInputs& CharacterInputs = InputCmdResult.InputCollection.FindOrAddMutableDataByType<FCharacterDefaultInputs>();
// Constructs inputs depends on your game design.
// 根据你的游戏设计,构造合适的默认输ru参数。
CharacterInputs.SetMoveInput(EMoveInputType::DirectionalIntent,RawMoveInputValueFromInputAction);
// Other kinds of inputs (abilities input, dash,double jump etc...)
// 其他输入,技能输入,如冲刺,二段跳等。
FYourCustomOtherInputs& OtherInputs = InputCmdResult.InputCollection.FindOrAddMutableDataByType<FYourCustomOtherInputs>();
OtherInputs.IsDashPressed = RawDashInputValueFromInputAction;
}
你可以通过你的组件衍生类,进行逻辑控制。
Begin Object Class=/Script/BlueprintGraph.K2Node_FunctionEntry Name="K2Node_FunctionEntry_0" ExportPath="/Script/BlueprintGraph.K2Node_FunctionEntry'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_FunctionEntry_0'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",MemberName="OnProduceInput")
NodePosX=-656
NodePosY=-144
NodeGuid=F3061F2C4953997C22D64D8733670B6D
CustomProperties Pin (PinId=859624BC419EFC5B9BFB16A7D1D8587E,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallParentFunction_0 A20FCE864D10CAF3ADEC7C9AFC116803,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=C8E51EF2454B625D410C51838C5431A0,PinName="DeltaMs",PinToolTip="Delta Ms\nFloat (single-precision)",Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="float",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallParentFunction_0 4A5D701C48BA3E7A4B3208A26896D230,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A6847A3A449D437579233DAB1C683B10,PinName="InputCmd",PinToolTip="Input Cmd\nMover Input Cmd Context Structure",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallParentFunction_0 6C2F1DDD44FDDDD376998BB00B833F7D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_FunctionResult Name="K2Node_FunctionResult_1" ExportPath="/Script/BlueprintGraph.K2Node_FunctionResult'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_FunctionResult_1'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",MemberName="OnProduceInput")
NodePosX=944
NodePosY=-144
NodeGuid=15B71EB24A570E9151CA839111E914D2
CustomProperties Pin (PinId=2F7B92814B189EA9B2B9988D795C7B82,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 E215B3574BC7514B9F3FE7AF09E9BCF6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=43F68EED4C611E4BA25915B60D7DA30C,PinName="ReturnValue",PinToolTip="Return Value\nMover Input Cmd Context Structure\n\nOverride this function in native class to author input for the next simulation frame. Consider also calling Super method.",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallParentFunction_0 5EFA8A7C4ED1DF27817BE5BBE8BA60E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallParentFunction Name="K2Node_CallParentFunction_0" ExportPath="/Script/BlueprintGraph.K2Node_CallParentFunction'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_CallParentFunction_0'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",MemberName="OnProduceInput")
NodePosX=-432
NodePosY=-144
NodeGuid=EE8EA95E4496B9758EFE14A151A1A236
CustomProperties Pin (PinId=A20FCE864D10CAF3ADEC7C9AFC116803,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionEntry_0 859624BC419EFC5B9BFB16A7D1D8587E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=40F175EF499C0A90167D3DBA2699EF0F,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_DynamicCast_0 DD4A55654B07E3E5D6804FA72C494346,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=D1DE1D3E4C21D04958DA6C9343EDD1B1,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nGMS Movement System Component(Mover) Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4A5D701C48BA3E7A4B3208A26896D230,PinName="DeltaMs",PinToolTip="Delta Ms\nFloat (single-precision)",PinType.PinCategory="real",PinType.PinSubCategory="float",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_FunctionEntry_0 C8E51EF2454B625D410C51838C5431A0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=6C2F1DDD44FDDDD376998BB00B833F7D,PinName="InputCmd",PinToolTip="Input Cmd\nMover Input Cmd Context Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionEntry_0 A6847A3A449D437579233DAB1C683B10,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=5EFA8A7C4ED1DF27817BE5BBE8BA60E7,PinName="ReturnValue",PinToolTip="Return Value\nMover Input Cmd Context Structure\n\nOverride this function in native class to author input for the next simulation frame. Consider also calling Super method.",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_1 CABB354B496B3E49E5AD9DB3DAFE3E17,K2Node_FunctionResult_1 43F68EED4C611E4BA25915B60D7DA30C,K2Node_FunctionResult_0 43F68EED4C611E4BA25915B60D7DA30C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_BreakStruct Name="K2Node_BreakStruct_1" ExportPath="/Script/BlueprintGraph.K2Node_BreakStruct'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_BreakStruct_1'"
bMadeAfterOverridePinRemoval=True
ShowPinForProperties(0)=(PropertyName="InputCollection",PropertyFriendlyName="Input Collection",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
StructType="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'"
NodePosX=-240
NodePosY=-352
NodeGuid=F8C04EB740FAB02926C361B28F2631DB
CustomProperties Pin (PinId=CABB354B496B3E49E5AD9DB3DAFE3E17,PinName="MoverInputCmdContext",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallParentFunction_0 5EFA8A7C4ED1DF27817BE5BBE8BA60E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=65F7514B469FD2209BCE8E8A7658410B,PinName="InputCollection",PinFriendlyName=INVTEXT("Input Collection"),PinToolTip="Input Collection\nMover Data Collection Structure",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverDataCollection'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 A5B4EDAC46A67DD8E2520E8E1BDBE513,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_1" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_CallFunction_1'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Mover.MoverDataCollectionLibrary'",MemberName="K2_AddDataToCollection")
NodePosX=544
NodePosY=-144
NodeGuid=B7EB9A0541C1BBECFB7DF59CECC4A382
CustomProperties Pin (PinId=87FC0BB04116719973F3A19516F6ACA9,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_0 83A1F0504451EBC4A1B327A106FAE3D7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=E215B3574BC7514B9F3FE7AF09E9BCF6,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionResult_1 2F7B92814B189EA9B2B9988D795C7B82,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=87462FC1461306F11554E9B157CA98C2,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nMover Data Collection Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Mover.MoverDataCollectionLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Mover.Default__MoverDataCollectionLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A5B4EDAC46A67DD8E2520E8E1BDBE513,PinName="Collection",PinToolTip="Collection\nMover Data Collection Structure (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverDataCollection'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_1 65F7514B469FD2209BCE8E8A7658410B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=0ABE66C540A6FF49E97452B79E1086BD,PinName="SourceAsRawBytes",PinFriendlyName=INVTEXT("Struct To Add"),PinToolTip="Struct to Add\nMover Example Ability Inputs Structure\n\nThe data struct instance to add by copy, which must be a FMoverDataStructBase sub-type",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/MoverExamples.MoverExampleAbilityInputs'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MakeStruct_2 1CB6D02649BAADEC555C2CBA038C27B6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_MakeStruct Name="K2Node_MakeStruct_2" ExportPath="/Script/BlueprintGraph.K2Node_MakeStruct'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_MakeStruct_2'"
bMadeAfterOverridePinRemoval=True
ShowPinForProperties(0)=(PropertyName="bIsDashJustPressed",PropertyFriendlyName="Is Dash Just Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(1)=(PropertyName="bIsAimPressed",PropertyFriendlyName="Is Aim Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(2)=(PropertyName="bIsVaultJustPressed",PropertyFriendlyName="Is Vault Just Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(3)=(PropertyName="bWantsToStartZiplining",PropertyFriendlyName="Wants to Start Ziplining",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(4)=(PropertyName="bWantsToBeCrouched",PropertyFriendlyName="Wants to be Crouched",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
StructType="/Script/CoreUObject.ScriptStruct'/Script/MoverExamples.MoverExampleAbilityInputs'"
NodePosX=112
NodePosY=-304
AdvancedPinDisplay=Hidden
NodeGuid=1A90305948E63A5717AB7DBE487C399F
CustomProperties Pin (PinId=1CB6D02649BAADEC555C2CBA038C27B6,PinName="MoverExampleAbilityInputs",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/MoverExamples.MoverExampleAbilityInputs'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 0ABE66C540A6FF49E97452B79E1086BD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=3ADCE68F4A38DDBAB7B6B8AC671A9F71,PinName="bIsDashJustPressed",PinFriendlyName=INVTEXT("Is Dash Just Pressed"),PinToolTip="Is Dash Just Pressed\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="False",AutogeneratedDefaultValue="False",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=884C8A2A4212928B1D47DC8249E80D24,PinName="bIsAimPressed",PinFriendlyName=INVTEXT("Is Aim Pressed"),PinToolTip="Is Aim Pressed\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="False",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=0AFAF09A4A189B11A8FF5EA75E3E1BC7,PinName="bIsVaultJustPressed",PinFriendlyName=INVTEXT("Is Vault Just Pressed"),PinToolTip="Is Vault Just Pressed\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="False",AutogeneratedDefaultValue="False",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=E357017A4EB307B8CB68B1BCE3531983,PinName="bWantsToStartZiplining",PinFriendlyName=INVTEXT("Wants to Start Ziplining"),PinToolTip="Wants To Start Ziplining\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="False",AutogeneratedDefaultValue="False",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=2E9863F743E68FAD429A19B8228F74C7,PinName="bWantsToBeCrouched",PinFriendlyName=INVTEXT("Wants to be Crouched"),PinToolTip="Wants To Be Crouched\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="False",AutogeneratedDefaultValue="False",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_0" ExportPath="/Script/UnrealEd.EdGraphNode_Comment'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.EdGraphNode_Comment_0'"
CommentColor=(R=0.150000,G=0.150000,B=0.150000,A=0.500000)
bCommentBubbleVisible_InDetailsPanel=False
NodePosX=-655
NodePosY=-423
NodeWidth=1776
NodeHeight=656
bCommentBubblePinned=False
bCommentBubbleVisible=False
NodeComment="Produce additional input to context"
NodeGuid=245EB62C46BFEB2BDBCA868E5C0282A3
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_CallFunction_0'"
bDefaultsToPureFunc=True
FunctionReference=(MemberName="GetOwner",bSelfContext=True)
NodePosX=-480
NodePosY=-272
NodeGuid=811659D74BEF765AD7EA269A2C046E12
CustomProperties Pin (PinId=C690D69247E3F3C1A697CF831D22F3A0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nActor Component Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.ActorComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A5DF2286461747936F5EACB7A1F34AA4,PinName="ReturnValue",PinToolTip="Return Value\nActor Object Reference\n\nFollow the Outer chain to get the AActor that \'Owns\' this component",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_DynamicCast_0 BED53B3A4504325FAB54428D8575C250,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_DynamicCast Name="K2Node_DynamicCast_0" ExportPath="/Script/BlueprintGraph.K2Node_DynamicCast'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_DynamicCast_0'"
TargetType="/Script/CoreUObject.Class'/Script/Engine.Pawn'"
NodePosX=-176
NodePosY=-144
NodeGuid=4A5A05DA48604066F762B483305B6335
CustomProperties Pin (PinId=DD4A55654B07E3E5D6804FA72C494346,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallParentFunction_0 40F175EF499C0A90167D3DBA2699EF0F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=35720C1043F5DCC184B47DA106AB7495,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_0 8DA9ECD742924C51B6AA77878C5ABC01,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=AB2414B348025492A1F07D9864F4D321,PinName="CastFailed",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionResult_0 2F7B92814B189EA9B2B9988D795C7B82,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=BED53B3A4504325FAB54428D8575C250,PinName="Object",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/CoreUObject.Object'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 A5DF2286461747936F5EACB7A1F34AA4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4EB709044985F30CE52ABE90CB1C345F,PinName="AsPawn",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Pawn'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_2 97ABA85B4F90A3EEAEF3EB9E77E66EB1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=054FA3DD4900207605FDEB807733713E,PinName="bSuccess",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_2" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_CallFunction_2'"
bDefaultsToPureFunc=True
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.Pawn'",MemberName="IsLocallyControlled")
NodePosX=-160
NodePosY=-256
NodeGuid=8D84147E4F4C9F57B65A35B03426EA6A
CustomProperties Pin (PinId=97ABA85B4F90A3EEAEF3EB9E77E66EB1,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nPawn Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Pawn'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_DynamicCast_0 4EB709044985F30CE52ABE90CB1C345F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9320EFD34F6E16E341A43EB150F4B5E9,PinName="ReturnValue",PinToolTip="Return Value\nBoolean\n\nReturns true if controlled by a local (not network) Controller.",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",LinkedTo=(K2Node_IfThenElse_0 61B58ABE4F7AD43150A0F4B5FEC0CDDD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_IfThenElse Name="K2Node_IfThenElse_0" ExportPath="/Script/BlueprintGraph.K2Node_IfThenElse'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_IfThenElse_0'"
NodePosX=48
NodePosY=-144
NodeGuid=2C26E2924E76F90E476D19B46C3F7B6C
CustomProperties Pin (PinId=8DA9ECD742924C51B6AA77878C5ABC01,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_DynamicCast_0 35720C1043F5DCC184B47DA106AB7495,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=61B58ABE4F7AD43150A0F4B5FEC0CDDD,PinName="Condition",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="true",LinkedTo=(K2Node_CallFunction_2 9320EFD34F6E16E341A43EB150F4B5E9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=83A1F0504451EBC4A1B327A106FAE3D7,PinName="then",PinFriendlyName=NSLOCTEXT("K2Node", "true", "true"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 87FC0BB04116719973F3A19516F6ACA9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8B0CA1864ACCC2BDEF6F48A21EA732D6,PinName="else",PinFriendlyName=NSLOCTEXT("K2Node", "false", "false"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionResult_0 2F7B92814B189EA9B2B9988D795C7B82,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_FunctionResult Name="K2Node_FunctionResult_0" ExportPath="/Script/BlueprintGraph.K2Node_FunctionResult'/Game/GenericDemo/GMS_Mover/Pawns/BC_MoverMovementSystemComponent.BC_MoverMovementSystemComponent:OnProduceInput.K2Node_FunctionResult_0'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",MemberName="OnProduceInput")
NodePosX=384
NodePosY=64
NodeGuid=34456A9C48AB736E2B7D55ABC3B48BA5
CustomProperties Pin (PinId=2F7B92814B189EA9B2B9988D795C7B82,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_0 8B0CA1864ACCC2BDEF6F48A21EA732D6,K2Node_DynamicCast_0 AB2414B348025492A1F07D9864F4D321,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=43F68EED4C611E4BA25915B60D7DA30C,PinName="ReturnValue",PinToolTip="Return Value\nMover Input Cmd Context Structure\n\nOverride this function in native class to author input for the next simulation frame. Consider also calling Super method.",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallParentFunction_0 5EFA8A7C4ED1DF27817BE5BBE8BA60E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
构建输入控制系统
默认角色输入
Mover插件已经提供CharacterDefaultInputs,该结构体定义了用于控制MoverComponent的所需的基本输入参数。
// Data block containing all inputs that need to be authored and consumed for the default Mover character simulation
USTRUCT(BlueprintType)
struct MOVER_API FCharacterDefaultInputs : public FMoverDataStructBase
{
protected:
UPROPERTY(BlueprintReadWrite, Category = Mover)
EMoveInputType MoveInputType;
// Representing the directional move input for this frame. Must be interpreted according to MoveInputType. Relative to MovementBase if set, world space otherwise. Will be truncated to match network serialization precision.
UPROPERTY(BlueprintReadWrite, Category = Mover)
FVector MoveInput;
public:
// Facing direction intent, as a normalized forward-facing direction. A zero vector indicates no intent to change facing direction. Relative to MovementBase if set, world space otherwise.
UPROPERTY(BlueprintReadWrite, Category = Mover)
FVector OrientationIntent;
// World space orientation that the controls were based on. This is commonly a player's camera rotation.
UPROPERTY(BlueprintReadWrite, Category = Mover)
FRotator ControlRotation;
// Used to force the Mover actor into a different movement mode
UPROPERTY(BlueprintReadWrite, Category = Mover)
FName SuggestedMovementMode;
// Specifies whether we are using a movement base, which will affect how move inputs are interpreted
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bUsingMovementBase;
// Optional: when moving on a base, input may be relative to this object
UPROPERTY(BlueprintReadWrite, Category = Mover)
TObjectPtr<UPrimitiveComponent> MovementBase;
// Optional: for movement bases that are skeletal meshes, this is the bone we're based on. Only valid if MovementBase is set.
UPROPERTY(BlueprintReadWrite, Category = Mover)
FName MovementBaseBoneName;
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bIsJumpJustPressed;
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bIsJumpPressed;
};
简而言之,用户可以通过动态地构建FCharacterDefaultInputs结构体来提供输入参数,然后将其传入Context即可。
构建上层逻辑
这里就是你构建专属于项目的上层控制逻辑的地方。比如根据外部信息,决定是使用轴向运动还是靶向运动等。
桥接输入系统
无论InputProducer是通过Actor,还是Component实现,它都需要知道玩家实际的输入Action值,并根据这些Action值去构建最终的输入参数。
你可以在实现了MoverInputProducerInterface的组件(控制系统)上定义所需的InputAction值,并通过EnhancedAction事件回调,将这些值赋值到组件上,或者将其进一步封装。
Begin Object Class=/Script/InputBlueprintNodes.K2Node_EnhancedInputAction Name="K2Node_EnhancedInputAction_3" ExportPath="/Script/InputBlueprintNodes.K2Node_EnhancedInputAction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_EnhancedInputAction_3'"
InputAction="/Script/EnhancedInput.InputAction'/Game/GenericDemo/GMS/Input/Actions/IA_Move.IA_Move'"
NodePosX=-5184
NodePosY=2304
AdvancedPinDisplay=Hidden
NodeGuid=F9A2352B4D2B891BA3FE499B3D92078E
CustomProperties Pin (PinId=2D7D14204C67B8F034B401B54EFA65BC,PinName="Triggered",PinToolTip="Triggering occurred after one or more processing ticks",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_32 2A7AF50A43015347E6DEC7BC8F8CEC49,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9AE8C8DB4745D6D997AD0483FC7D9F93,PinName="Started",PinToolTip="An event has occurred that has begun Trigger evaluation. Note: Triggered may also occur this frame, but this event will always be fired first.",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=6F07F98D4BB91707FCC76FAEA640AF56,PinName="Ongoing",PinToolTip="Triggering is still being processed. For example, an action with a \"Press and Hold\" trigger\nwill be \"Ongoing\" while the user is holding down the key but the time threshold has not been met yet.",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=C6C1829C468970D99161398014977661,PinName="Canceled",PinToolTip="Triggering has been canceled. For example, the user has let go of a key before the \"Press and Hold\" time threshold.\nThe action has started to be evaluated, but never completed.",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=0065ADC04ECE0DAAB27C3BAAAC3A9518,PinName="Completed",PinToolTip="The trigger state has transitioned from Triggered to None this frame, i.e. Triggering has finished.\nNote: Using this event restricts you to one set of triggers for Started/Completed events. You may prefer two actions, each with its own trigger rules.\nCompleted will not fire if any trigger reports Ongoing on the same frame, but both should fire. e.g. Tick 2 of Hold (= Ongoing) + Pressed (= None) combo will raise Ongoing event only.",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_24 2A7AF50A43015347E6DEC7BC8F8CEC49,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=7B46843242EC5B660262379EBEFF9E76,PinName="ActionValue",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/CoreUObject.Vector2D'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,SubPins=(K2Node_EnhancedInputAction_3 4219590E44355F050998CDB3653ACE1A,K2Node_EnhancedInputAction_3 6CF8B8EF479E7259F4EC7DB0E5759BA4,),PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4219590E44355F050998CDB3653ACE1A,PinName="ActionValue_X",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", INVTEXT("Action Value"), "ProtoPinDisplayName", INVTEXT("X")),Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallFunction_40 616CEC8F482F13B6D33767A610E98A05,),ParentPin=K2Node_EnhancedInputAction_3 7B46843242EC5B660262379EBEFF9E76,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=6CF8B8EF479E7259F4EC7DB0E5759BA4,PinName="ActionValue_Y",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", INVTEXT("Action Value"), "ProtoPinDisplayName", INVTEXT("Y")),Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallFunction_42 616CEC8F482F13B6D33767A610E98A05,),ParentPin=K2Node_EnhancedInputAction_3 7B46843242EC5B660262379EBEFF9E76,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=0877675342DCDBF0733A66B49E7DB2A7,PinName="ElapsedSeconds",Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=D0CB5DCF46AACE8334860687FD02368B,PinName="TriggeredSeconds",Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=52E48A9B4C43409E33A809BFFD4AD30C,PinName="InputAction",PinToolTip="Input Action\nInput Action Object Reference\n\nThe input action that caused this event to fire",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/EnhancedInput.InputAction'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="IA_Move",DefaultObject="/Game/GenericDemo/GMS/Input/Actions/IA_Move.IA_Move",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_40" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_40'"
bDefaultsToPureFunc=True
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.KismetMathLibrary'",MemberName="FClamp")
NodePosX=-4448
NodePosY=2288
NodeGuid=305859BE4CEEB41C3671FBBCE5BB3398
CustomProperties Pin (PinId=E824451A486CF5FBDEC8FBAF6581B5E4,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nKismet Math Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.KismetMathLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Engine.Default__KismetMathLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=616CEC8F482F13B6D33767A610E98A05,PinName="Value",PinToolTip="Value\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_EnhancedInputAction_3 4219590E44355F050998CDB3653ACE1A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=67A921BF4E509345F789D5B9504EB1E6,PinName="Min",PinToolTip="Min\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="-1.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9599286F4BAB7D2C5E6169982DAE8638,PinName="Max",PinToolTip="Max\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.0",AutogeneratedDefaultValue="1.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4F6F1C2E4A73F0A8D9DD01AD517E3CB1,PinName="ReturnValue",PinToolTip="Return Value\nFloat (double-precision)\n\nReturns Value clamped between A and B (inclusive)",Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallFunction_6 42E8104E4DE55C27443A58B8D9E4BA4C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_42" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_42'"
bDefaultsToPureFunc=True
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.KismetMathLibrary'",MemberName="FClamp")
NodePosX=-4448
NodePosY=2448
NodeGuid=223A50E94E3AEE1FDA942CA2EFDACA20
CustomProperties Pin (PinId=E824451A486CF5FBDEC8FBAF6581B5E4,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nKismet Math Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.KismetMathLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Engine.Default__KismetMathLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=616CEC8F482F13B6D33767A610E98A05,PinName="Value",PinToolTip="Value\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_EnhancedInputAction_3 6CF8B8EF479E7259F4EC7DB0E5759BA4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=67A921BF4E509345F789D5B9504EB1E6,PinName="Min",PinToolTip="Min\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="-1.000000",AutogeneratedDefaultValue="0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9599286F4BAB7D2C5E6169982DAE8638,PinName="Max",PinToolTip="Max\nFloat (double-precision)",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.0",AutogeneratedDefaultValue="1.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4F6F1C2E4A73F0A8D9DD01AD517E3CB1,PinName="ReturnValue",PinToolTip="Return Value\nFloat (double-precision)\n\nReturns Value clamped between A and B (inclusive)",Direction="EGPD_Output",PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallFunction_6 0C36F26049CD8C735DE7CD9B39591D67,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_6" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_6'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",MemberName="RequestMoveByIntent")
NodePosX=-4096
NodePosY=2288
NodeGuid=045FF60C417927F86414B4AFC87B6429
CustomProperties Pin (PinId=E7115718432670BC42D45589766C8B4D,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_32 D80DE3F64B96602D09FCCB81A6570AE8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=1318382B43EE3C4917E424BD20FEF318,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=DABED8594F90B4657B80888D182B26CD,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_32 A869DB9F4E5F15E0CB8D108F4626A803,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=37A70EF04AFADD236C3860A8769F6C04,PinName="DesiredIntent",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/CoreUObject.Vector'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0, 0, 0",AutogeneratedDefaultValue="0, 0, 0",SubPins=(K2Node_CallFunction_6 0C36F26049CD8C735DE7CD9B39591D67,K2Node_CallFunction_6 42E8104E4DE55C27443A58B8D9E4BA4C,K2Node_CallFunction_6 EC6CC3944D758C6EBB0A5294934B2BB0,),PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=0C36F26049CD8C735DE7CD9B39591D67,PinName="DesiredIntent_X",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", INVTEXT("Desired Intent"), "ProtoPinDisplayName", INVTEXT("X")),PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallFunction_42 4F6F1C2E4A73F0A8D9DD01AD517E3CB1,),ParentPin=K2Node_CallFunction_6 37A70EF04AFADD236C3860A8769F6C04,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=42E8104E4DE55C27443A58B8D9E4BA4C,PinName="DesiredIntent_Y",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", INVTEXT("Desired Intent"), "ProtoPinDisplayName", INVTEXT("Y")),PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(K2Node_CallFunction_40 4F6F1C2E4A73F0A8D9DD01AD517E3CB1,),ParentPin=K2Node_CallFunction_6 37A70EF04AFADD236C3860A8769F6C04,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=EC6CC3944D758C6EBB0A5294934B2BB0,PinName="DesiredIntent_Z",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", INVTEXT("Desired Intent"), "ProtoPinDisplayName", INVTEXT("Z")),PinType.PinCategory="real",PinType.PinSubCategory="double",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",ParentPin=K2Node_CallFunction_6 37A70EF04AFADD236C3860A8769F6C04,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_32" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_32'"
bWantsEnumToExecExpansion=True
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MovementSystemComponent'",MemberName="K2_FindMovementComponentExt")
NodePosX=-4800
NodePosY=2304
NodeGuid=B2B95F7344DCA8E26F7672B3B84E0E99
CustomProperties Pin (PinId=D80DE3F64B96602D09FCCB81A6570AE8,PinName="True",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_6 E7115718432670BC42D45589766C8B4D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4780E87845720B802AFA5290ADA0E33A,PinName="False",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2A7AF50A43015347E6DEC7BC8F8CEC49,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_EnhancedInputAction_3 2D7D14204C67B8F034B401B54EFA65BC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=5E9B67C74E03C4001C719A91B380E61C,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GenericMovementSystem.Default__GMS_MovementSystemComponent",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9B8D50354304DFF8487C9DB92C87CA25,PinName="Actor",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=33D3ABF5465E950CA59145BB668B31E4,PinName="DesiredClass",PinType.PinCategory="class",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A869DB9F4E5F15E0CB8D108F4626A803,PinName="Instance",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_6 DABED8594F90B4657B80888D182B26CD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=87E4D5C249931AE988954C83C74A0B91,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_24" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_24'"
bWantsEnumToExecExpansion=True
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MovementSystemComponent'",MemberName="K2_FindMovementComponentExt")
NodePosX=-4800
NodePosY=2688
NodeGuid=C84C4A4B4A558A94B8215189A672734A
CustomProperties Pin (PinId=D80DE3F64B96602D09FCCB81A6570AE8,PinName="True",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_27 6C58D97440E84601AA1697A6E3D12913,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4780E87845720B802AFA5290ADA0E33A,PinName="False",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2A7AF50A43015347E6DEC7BC8F8CEC49,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_EnhancedInputAction_3 0065ADC04ECE0DAAB27C3BAAAC3A9518,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=5E9B67C74E03C4001C719A91B380E61C,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GenericMovementSystem.Default__GMS_MovementSystemComponent",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9B8D50354304DFF8487C9DB92C87CA25,PinName="Actor",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=33D3ABF5465E950CA59145BB668B31E4,PinName="DesiredClass",PinType.PinCategory="class",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A869DB9F4E5F15E0CB8D108F4626A803,PinName="Instance",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_27 97BBB57C4A95FA437CB2128CAA601E1C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=87E4D5C249931AE988954C83C74A0B91,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_27" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_27'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",MemberName="ClearMoveRequest")
NodePosX=-4464
NodePosY=2672
ErrorType=1
NodeGuid=D38369504914BF148B56F492FEF361D8
CustomProperties Pin (PinId=6C58D97440E84601AA1697A6E3D12913,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_24 D80DE3F64B96602D09FCCB81A6570AE8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2C653BC64365E7E7755A3B834734F867,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=97BBB57C4A95FA437CB2128CAA601E1C,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GenericMovementSystem.GMS_MoverMovementSystemComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_24 A869DB9F4E5F15E0CB8D108F4626A803,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
其他类型的输入
默认参数能够满足角色基本的控制需求,如移动方向,跳跃请求等。但具体的项目,一般还需要各种其他输入,如Dash,Crouch,等Ability输入。
这时候就需要新增继承自FMoverDataStructBase的结构体用于封装所需的输入参数,并将其加入Context。
在MoverExamples中,你就能看到一个示例Ability输入的案例。
// Data block containing extended ability inputs used by MoverExamples characters
USTRUCT(BlueprintType)
struct MOVEREXAMPLES_API FMoverExampleAbilityInputs : public FMoverDataStructBase
{
GENERATED_USTRUCT_BODY()
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bIsDashJustPressed = false;
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bIsAimPressed = false;
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bIsVaultJustPressed = false;
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bWantsToStartZiplining = false;
UPROPERTY(BlueprintReadWrite, Category = Mover)
bool bWantsToBeCrouched = false;
};处理输入
你有一些输入参数结构体,你也通过InputProducer将这些参数加入到了Context,接下来干什么?
接下来,你可以通过绑定MoverComponent上的OnPreSimulationTick事件,并在回调中去处理这些输入参数。并添加各种运动效果。
Begin Object Class=/Script/BlueprintGraph.K2Node_ComponentBoundEvent Name="K2Node_ComponentBoundEvent_1" ExportPath="/Script/BlueprintGraph.K2Node_ComponentBoundEvent'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_ComponentBoundEvent_1'"
DelegatePropertyName="OnPreSimulationTick"
DelegateOwnerClass="/Script/CoreUObject.Class'/Script/Mover.MoverComponent'"
ComponentPropertyName="Mover"
EventReference=(MemberParent="/Script/CoreUObject.Package'/Script/Mover'",MemberName="Mover_OnPreSimTick__DelegateSignature")
bInternalEvent=True
CustomFunctionName="BndEvt__BP_GMS_Pawn_Humanoid_Mover_K2Node_ComponentBoundEvent_1_Mover_OnPreSimTick__DelegateSignature"
NodePosX=-2336
NodePosY=6176
NodeGuid=298E1D8749921949F1D8158220777597
CustomProperties Pin (PinId=3F3265074AC3FAA6571E928D6EC5EEF4,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent="/Script/Engine.BlueprintGeneratedClass'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid_C'",MemberName="BndEvt__BP_GMS_Pawn_Humanoid_Mover_K2Node_ComponentBoundEvent_1_Mover_OnPreSimTick__DelegateSignature"),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A99E848646C3F3DC867B5DAD164A236D,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ExecutionSequence_5 EB782FA04A5EF4D073D83F956EB5863C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=888D33614622939ECDCA55974E7CF06A,PinName="TimeStep",PinToolTip="Time Step\nMover Time Step Structure (by ref)",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverTimeStep'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=44107A184990D3C81084B285070FF25F,PinName="InputCmd",PinToolTip="Input Cmd\nMover Input Cmd Context Structure (by ref)",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_2 50AE555B46B176525D656A937F78E9D7,K2Node_BreakStruct_0 50AE555B46B176525D656A937F78E9D7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_BreakStruct Name="K2Node_BreakStruct_2" ExportPath="/Script/BlueprintGraph.K2Node_BreakStruct'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_BreakStruct_2'"
bMadeAfterOverridePinRemoval=True
ShowPinForProperties(0)=(PropertyName="InputCollection",PropertyFriendlyName="Input Collection",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
StructType="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'"
NodePosX=-2000
NodePosY=6320
NodeGuid=CA0ED63840362EE19AFF3EB50F9FB12C
CustomProperties Pin (PinId=50AE555B46B176525D656A937F78E9D7,PinName="MoverInputCmdContext",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ComponentBoundEvent_1 44107A184990D3C81084B285070FF25F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=577F6A75439DC79C123720802F66D00C,PinName="InputCollection",PinFriendlyName=INVTEXT("Input Collection"),PinToolTip="Input Collection\nMover Data Collection Structure",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverDataCollection'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_39 3A4390304B203A1AA8964A99D1925AA3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_39" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_39'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Mover.MoverDataCollectionLibrary'",MemberName="K2_GetDataFromCollection")
NodePosX=-1632
NodePosY=6176
NodeGuid=5B7E68B34ADC0F5E5A07718582DA6D52
CustomProperties Pin (PinId=060FF0AC4A82D19D4830C6AFC0081E6A,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ExecutionSequence_5 2561DB72488475FE4152F1A08677D884,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=89C4465241CF107F31752AB3E7B7C82C,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_6 DD3A737A46254C0FEC80D591B7B98C13,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=814FEC264BEA1AF848481AA820D5E4B7,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nMover Data Collection Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Mover.MoverDataCollectionLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Mover.Default__MoverDataCollectionLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A57EE56642A50AEF6675B786D39C21B3,PinName="DidSucceed",PinToolTip="Did Succeed\nBoolean\n\nFlag indicating whether data was actually written to target struct instance",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",LinkedTo=(K2Node_IfThenElse_6 C0809B63417D6F1C5767EE978B93C8CC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=3A4390304B203A1AA8964A99D1925AA3,PinName="Collection",PinToolTip="Collection\nMover Data Collection Structure (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverDataCollection'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_2 577F6A75439DC79C123720802F66D00C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8FEBED7647FF127B5F0A348DB5C8467D,PinName="TargetAsRawBytes",PinFriendlyName=INVTEXT("Out Struct"),PinToolTip="Out Struct\nCharacter Default Inputs Structure (by ref)\n\nThe data struct instance to write to, which must be a FMoverDataStructBase sub-type",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.CharacterDefaultInputs'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_1 40517AC84AE3E0D73E9D779D7E9CB5B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_BreakStruct Name="K2Node_BreakStruct_1" ExportPath="/Script/BlueprintGraph.K2Node_BreakStruct'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_BreakStruct_1'"
bMadeAfterOverridePinRemoval=True
ShowPinForProperties(0)=(PropertyName="MoveInputType",PropertyFriendlyName="Move Input Type",CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(1)=(PropertyName="MoveInput",PropertyFriendlyName="Move Input",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:MoveInput", "Representing the directional move input for this frame. Must be interpreted according to MoveInputType. Relative to MovementBase if set, world space otherwise. Will be truncated to match network serialization precision."),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(2)=(PropertyName="OrientationIntent",PropertyFriendlyName="Orientation Intent",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:OrientationIntent", "Facing direction intent, as a normalized forward-facing direction. A zero vector indicates no intent to change facing direction. Relative to MovementBase if set, world space otherwise."),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(3)=(PropertyName="ControlRotation",PropertyFriendlyName="Control Rotation",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:ControlRotation", "World space orientation that the controls were based on. This is commonly a player\'s camera rotation."),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(4)=(PropertyName="SuggestedMovementMode",PropertyFriendlyName="Suggested Movement Mode",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:SuggestedMovementMode", "Used to force the Mover actor into a different movement mode"),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(5)=(PropertyName="bUsingMovementBase",PropertyFriendlyName="Using Movement Base",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:bUsingMovementBase", "Specifies whether we are using a movement base, which will affect how move inputs are interpreted"),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(6)=(PropertyName="MovementBase",PropertyFriendlyName="Movement Base",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:MovementBase", "Optional: when moving on a base, input may be relative to this object"),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(7)=(PropertyName="MovementBaseBoneName",PropertyFriendlyName="Movement Base Bone Name",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "CharacterDefaultInputs:MovementBaseBoneName", "Optional: for movement bases that are skeletal meshes, this is the bone we\'re based on. Only valid if MovementBase is set."),CategoryName="Mover",bCanToggleVisibility=True)
ShowPinForProperties(8)=(PropertyName="bIsJumpJustPressed",PropertyFriendlyName="Is Jump Just Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(9)=(PropertyName="bIsJumpPressed",PropertyFriendlyName="Is Jump Pressed",CategoryName="Mover",bCanToggleVisibility=True)
StructType="/Script/CoreUObject.ScriptStruct'/Script/Mover.CharacterDefaultInputs'"
NodePosX=-1376
NodePosY=6336
AdvancedPinDisplay=Shown
NodeGuid=BE4DA264481D940CFC6D77AD75738257
CustomProperties Pin (PinId=40517AC84AE3E0D73E9D779D7E9CB5B8,PinName="CharacterDefaultInputs",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.CharacterDefaultInputs'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_39 8FEBED7647FF127B5F0A348DB5C8467D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=24C9BF3A46B18C2226953986945FE5EA,PinName="bIsJumpJustPressed",PinFriendlyName=INVTEXT("Is Jump Just Pressed"),PinToolTip="Is Jump Just Pressed\nBoolean",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_8 4A4DC59445E6E3D51ACD4F9E7882A044,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_IfThenElse Name="K2Node_IfThenElse_6" ExportPath="/Script/BlueprintGraph.K2Node_IfThenElse'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_IfThenElse_6'"
NodePosX=-1312
NodePosY=6176
NodeGuid=C9C40A7A4743AA24D364628A3848FAF0
CustomProperties Pin (PinId=DD3A737A46254C0FEC80D591B7B98C13,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_39 89C4465241CF107F31752AB3E7B7C82C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=C0809B63417D6F1C5767EE978B93C8CC,PinName="Condition",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="true",LinkedTo=(K2Node_CallFunction_39 A57EE56642A50AEF6675B786D39C21B3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2CC71F4C447BFBFED95F2FACA0D71A1A,PinName="then",PinFriendlyName=NSLOCTEXT("K2Node", "true", "true"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ExecutionSequence_3 2CA9A4034CE2CD8742DEB4B0A0AC0AC3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=946060794CE9B799DB8B229544934FAC,PinName="else",PinFriendlyName=NSLOCTEXT("K2Node", "false", "false"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_ExecutionSequence Name="K2Node_ExecutionSequence_3" ExportPath="/Script/BlueprintGraph.K2Node_ExecutionSequence'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_ExecutionSequence_3'"
NodePosX=-1120
NodePosY=6176
NodeGuid=E926C8764ACA90B2AB9CA998B87C4C4D
CustomProperties Pin (PinId=2CA9A4034CE2CD8742DEB4B0A0AC0AC3,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_6 2CC71F4C447BFBFED95F2FACA0D71A1A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=AB46287C49E666604331CFA86494E1DB,PinName="then_0",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_8 35054E564C77E7D792DECF86BFCCBFBC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4F60E4F04F852EBA358BD4AA41BA6E61,PinName="then_1",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_IfThenElse Name="K2Node_IfThenElse_8" ExportPath="/Script/BlueprintGraph.K2Node_IfThenElse'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_IfThenElse_8'"
NodePosX=-832
NodePosY=6176
NodeGuid=0044EA02478D5DA91AFA4087B302EA81
CustomProperties Pin (PinId=35054E564C77E7D792DECF86BFCCBFBC,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ExecutionSequence_3 AB46287C49E666604331CFA86494E1DB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4A4DC59445E6E3D51ACD4F9E7882A044,PinName="Condition",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="true",LinkedTo=(K2Node_BreakStruct_1 24C9BF3A46B18C2226953986945FE5EA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=AFB9B77D4E346283D7235CB6A674AF70,PinName="then",PinFriendlyName=NSLOCTEXT("K2Node", "true", "true"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_9 EC05007941C905055DD918A184F5503F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=CC40A45E4F9E252A1A75F09D9764A4F9,PinName="else",PinFriendlyName=NSLOCTEXT("K2Node", "false", "false"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_5" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_VariableGet_5'"
VariableReference=(MemberName="Mover",bSelfContext=True)
NodePosX=-864
NodePosY=6064
NodeGuid=09BBFBDF46099B033C267BB4CFB29E2B
CustomProperties Pin (PinId=CD771AAA4FCFA98861B9C8BC8A3E9F04,PinName="Mover",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Mover.CharacterMoverComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_21 62B3B5A347928FC7F612AC9F65AFE6A6,K2Node_CallFunction_31 30513ABA485195CA6FEAF093EE6BC554,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=AD7FFCE84380A3EDA7E6B5B296F1AAAD,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/Engine.BlueprintGeneratedClass'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid_C'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_21" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_21'"
bDefaultsToPureFunc=True
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Mover.CharacterMoverComponent'",MemberName="CanActorJump")
NodePosX=-608
NodePosY=6064
NodeGuid=487F133C42F7537B9303E7BD36DF2FA6
CustomProperties Pin (PinId=62B3B5A347928FC7F612AC9F65AFE6A6,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nCharacter Mover Component Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Mover.CharacterMoverComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_5 CD771AAA4FCFA98861B9C8BC8A3E9F04,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2D4FB396400F254A606DADBF3BA71F33,PinName="ReturnValue",PinToolTip="Return Value\nBoolean\n\nCan this Actor jump?",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",LinkedTo=(K2Node_IfThenElse_9 F196E37A457F5C084C8282BF22869BBE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_IfThenElse Name="K2Node_IfThenElse_9" ExportPath="/Script/BlueprintGraph.K2Node_IfThenElse'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_IfThenElse_9'"
NodePosX=-528
NodePosY=6176
NodeGuid=F8886E244AEF2BFEEE13E0A18DCA6B0E
CustomProperties Pin (PinId=EC05007941C905055DD918A184F5503F,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_8 AFB9B77D4E346283D7235CB6A674AF70,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=F196E37A457F5C084C8282BF22869BBE,PinName="Condition",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="true",LinkedTo=(K2Node_CallFunction_21 2D4FB396400F254A606DADBF3BA71F33,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8A18C92D4BFFF8EB7C339B86B979F197,PinName="then",PinFriendlyName=NSLOCTEXT("K2Node", "true", "true"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_31 E8AD424640B310F564377C941E26A42F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8855D13540D4FE06B4D7C0982044506B,PinName="else",PinFriendlyName=NSLOCTEXT("K2Node", "false", "false"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_31" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_31'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Mover.CharacterMoverComponent'",MemberName="Jump")
NodePosX=-272
NodePosY=6160
NodeGuid=30C5D4DE431C4F7EB1D600ADF9636AE7
CustomProperties Pin (PinId=E8AD424640B310F564377C941E26A42F,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_9 8A18C92D4BFFF8EB7C339B86B979F197,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=579E25B347F4439670158EBC6A59A274,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=30513ABA485195CA6FEAF093EE6BC554,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nCharacter Mover Component Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Mover.CharacterMoverComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_5 CD771AAA4FCFA98861B9C8BC8A3E9F04,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=16C6978E49B08A8BFAAB1A9EA20274A4,PinName="ReturnValue",PinToolTip="Return Value\nBoolean\n\nPerform jump on actor",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_13" ExportPath="/Script/UnrealEd.EdGraphNode_Comment'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.EdGraphNode_Comment_13'"
CommentColor=(R=0.150000,G=0.150000,B=0.150000,A=0.500000)
bCommentBubbleVisible_InDetailsPanel=False
NodePosX=-928
NodePosY=6000
NodeWidth=964
NodeHeight=306
bCommentBubblePinned=False
bCommentBubbleVisible=False
NodeComment="Handle Jump"
NodeGuid=E2D68D93456C6445EFCED287692D9475
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_15" ExportPath="/Script/UnrealEd.EdGraphNode_Comment'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.EdGraphNode_Comment_15'"
CommentColor=(R=0.150000,G=0.150000,B=0.150000,A=0.500000)
bCommentBubbleVisible_InDetailsPanel=False
CommentDepth=-2
NodePosX=-2400
NodePosY=5936
NodeWidth=2464
NodeHeight=1008
bCommentBubblePinned=False
bCommentBubbleVisible=False
NodeComment="Handle inputs"
NodeGuid=73AA4EBD46880CC10C914E8AFBF721E5
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_BreakStruct Name="K2Node_BreakStruct_0" ExportPath="/Script/BlueprintGraph.K2Node_BreakStruct'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_BreakStruct_0'"
bMadeAfterOverridePinRemoval=True
ShowPinForProperties(0)=(PropertyName="InputCollection",PropertyFriendlyName="Input Collection",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
StructType="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'"
NodePosX=-1792
NodePosY=6592
NodeGuid=8C35B16A4D616649BB101EB8725BDEEB
CustomProperties Pin (PinId=50AE555B46B176525D656A937F78E9D7,PinName="MoverInputCmdContext",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverInputCmdContext'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ComponentBoundEvent_1 44107A184990D3C81084B285070FF25F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=577F6A75439DC79C123720802F66D00C,PinName="InputCollection",PinFriendlyName=INVTEXT("Input Collection"),PinToolTip="Input Collection\nMover Data Collection Structure",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverDataCollection'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_10 3A4390304B203A1AA8964A99D1925AA3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_10" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_CallFunction_10'"
FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Mover.MoverDataCollectionLibrary'",MemberName="K2_GetDataFromCollection")
NodePosX=-1312
NodePosY=6560
NodeGuid=33E48B4945A1B2DF9CAD689B74C5C2A9
CustomProperties Pin (PinId=060FF0AC4A82D19D4830C6AFC0081E6A,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ExecutionSequence_5 A489A63B4B90293BED4FDC8BD3DFFD73,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=89C4465241CF107F31752AB3E7B7C82C,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_10 01F9F95041780EEF21BB0E801F4659A3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=814FEC264BEA1AF848481AA820D5E4B7,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nMover Data Collection Library Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Mover.MoverDataCollectionLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Mover.Default__MoverDataCollectionLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A57EE56642A50AEF6675B786D39C21B3,PinName="DidSucceed",PinToolTip="Did Succeed\nBoolean\n\nFlag indicating whether data was actually written to target struct instance",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",AutogeneratedDefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=3A4390304B203A1AA8964A99D1925AA3,PinName="Collection",PinToolTip="Collection\nMover Data Collection Structure (by ref)",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/Mover.MoverDataCollection'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_0 577F6A75439DC79C123720802F66D00C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8FEBED7647FF127B5F0A348DB5C8467D,PinName="TargetAsRawBytes",PinFriendlyName=INVTEXT("Out Struct"),PinToolTip="Out Struct\nMover Example Ability Inputs Structure (by ref)\n\nThe data struct instance to write to, which must be a FMoverDataStructBase sub-type",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/MoverExamples.MoverExampleAbilityInputs'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_BreakStruct_3 E160F4D64AF37F1EB47924AD614AC631,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_ExecutionSequence Name="K2Node_ExecutionSequence_5" ExportPath="/Script/BlueprintGraph.K2Node_ExecutionSequence'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_ExecutionSequence_5'"
NodePosX=-2032
NodePosY=6176
NodeGuid=59FB03C54E89FE8BB5AD7D809D9CD0EE
CustomProperties Pin (PinId=EB782FA04A5EF4D073D83F956EB5863C,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_ComponentBoundEvent_1 A99E848646C3F3DC867B5DAD164A236D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2561DB72488475FE4152F1A08677D884,PinName="then_0",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_39 060FF0AC4A82D19D4830C6AFC0081E6A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A489A63B4B90293BED4FDC8BD3DFFD73,PinName="then_1",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_10 060FF0AC4A82D19D4830C6AFC0081E6A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_BreakStruct Name="K2Node_BreakStruct_3" ExportPath="/Script/BlueprintGraph.K2Node_BreakStruct'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_BreakStruct_3'"
bMadeAfterOverridePinRemoval=True
ShowPinForProperties(0)=(PropertyName="bIsDashJustPressed",PropertyFriendlyName="Is Dash Just Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(1)=(PropertyName="bIsAimPressed",PropertyFriendlyName="Is Aim Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(2)=(PropertyName="bIsVaultJustPressed",PropertyFriendlyName="Is Vault Just Pressed",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(3)=(PropertyName="bWantsToStartZiplining",PropertyFriendlyName="Wants to Start Ziplining",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
ShowPinForProperties(4)=(PropertyName="bWantsToBeCrouched",PropertyFriendlyName="Wants to be Crouched",CategoryName="Mover",bShowPin=True,bCanToggleVisibility=True)
StructType="/Script/CoreUObject.ScriptStruct'/Script/MoverExamples.MoverExampleAbilityInputs'"
NodePosX=-1344
NodePosY=6704
AdvancedPinDisplay=Hidden
NodeGuid=4D2D6B0E48300271D57B1BB48CBF2675
CustomProperties Pin (PinId=E160F4D64AF37F1EB47924AD614AC631,PinName="MoverExampleAbilityInputs",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/MoverExamples.MoverExampleAbilityInputs'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_10 8FEBED7647FF127B5F0A348DB5C8467D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2188943741BC9FE300E1E4B4AE1B0A83,PinName="bIsDashJustPressed",PinFriendlyName=INVTEXT("Is Dash Just Pressed"),PinToolTip="Is Dash Just Pressed\nBoolean",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_IfThenElse_10 00FD64544DC7037C3DAF5F8BC806AD76,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=E0EFE57F4A1F5C4DF93DE2B758608C6A,PinName="bIsAimPressed",PinFriendlyName=INVTEXT("Is Aim Pressed"),PinToolTip="Is Aim Pressed\nBoolean",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=AEDF361044C27FB20CAEFAA68188F82B,PinName="bIsVaultJustPressed",PinFriendlyName=INVTEXT("Is Vault Just Pressed"),PinToolTip="Is Vault Just Pressed\nBoolean",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=CC89730D4CA493AD7A0B9D9EAA4F79B0,PinName="bWantsToStartZiplining",PinFriendlyName=INVTEXT("Wants to Start Ziplining"),PinToolTip="Wants To Start Ziplining\nBoolean",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=0DC9CFBE46F017D07F88B6AF834F660E,PinName="bWantsToBeCrouched",PinFriendlyName=INVTEXT("Wants to be Crouched"),PinToolTip="Wants To Be Crouched\nBoolean",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/BlueprintGraph.K2Node_IfThenElse Name="K2Node_IfThenElse_10" ExportPath="/Script/BlueprintGraph.K2Node_IfThenElse'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.K2Node_IfThenElse_10'"
NodePosX=-816
NodePosY=6560
NodeGuid=ACC1E84B46218B19A2A7C8A924F706FC
CustomProperties Pin (PinId=01F9F95041780EEF21BB0E801F4659A3,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_10 89C4465241CF107F31752AB3E7B7C82C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=00FD64544DC7037C3DAF5F8BC806AD76,PinName="Condition",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="true",LinkedTo=(K2Node_BreakStruct_3 2188943741BC9FE300E1E4B4AE1B0A83,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=543B9D7447EF48280ECF8EBB9BF24C09,PinName="then",PinFriendlyName=NSLOCTEXT("K2Node", "true", "true"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=0878A7064BB843675A5C688CD82BE73E,PinName="else",PinFriendlyName=NSLOCTEXT("K2Node", "false", "false"),Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name="EdGraphNode_Comment_18" ExportPath="/Script/UnrealEd.EdGraphNode_Comment'/Game/GenericDemo/GMS_Mover/Pawns/BP_GMS_Pawn_Humanoid.BP_GMS_Pawn_Humanoid:EventGraph.EdGraphNode_Comment_18'"
CommentColor=(R=0.150000,G=0.150000,B=0.150000,A=0.500000)
bCommentBubbleVisible_InDetailsPanel=False
NodePosX=-880
NodePosY=6496
NodeWidth=279
NodeHeight=194
bCommentBubblePinned=False
bCommentBubbleVisible=False
NodeComment="Handle Dash.."
NodeGuid=74729A8146555175E937DDA538A880D3
End Object底层细节
在引擎底层,MoverComponent上的ProduceInput由NetworkPrediction插件中的NetworkPredictionWorldManager进行调用。
它是一个世界子系统,随着世界的生命周期进行更新。我们会在以后的文章中更深入地去了解这一部分的内容。