이번 섹션을 마치면 이런 결과물을 볼 수 있습니다.
목표
이 섹션의 목표는 일인칭 슈팅 캐릭터에 애니메이션을 추가하는 방법을 보여주는 것입니다.
목적
이 튜토리얼의 이번 섹션을 마치면 다음과 같은 작업을 할 수 있습니다.
- 캐릭터 애니메이팅
- 이벤트 그래프 구성
- 애니메이션 스테이트 머신 추가
- 애니메이션에 트랜지션 스테이트 추가
- 애니메이션 블루프린트와 캐릭터 블루프린트 연결
단계
- 4.1 - 캐릭터 애니메이팅하기
- 4.2 - 이벤트 그래프 구성하기
- 4.3 - 애니메이션 스테이트 머신 추가하기
- 4.4 - 애니메이션 트랜지션 스테이트 추가하기
- 4.4.1 - 유휴/달리기 트랜지션 추가
- 4.4.2 - 유휴-점프 시작 트랜지션 추가
- 4.4.3 - 달리기-점프 시작 트랜지션 추가
- 4.4.4 - 점프 시작-점프 루프 트랜지션 추가
- 4.4.5 - 점프 루프-점프 종료 트랜지션 추가
- 4.4.6 - 점프 종료-유휴 트랜지션 추가
- 4.5 - 애니메이션 및 캐릭터 블루프린트 연결하기
4.1 - 캐릭터 애니메이팅하기
이 단계에서는 게임에 애니메이션을 어느 정도 추가합니다.
애니메이션 임포트하기
시작하기 전에 다음 링크에서 샘플 애니메이션을 다운로드하고 압축 해제합니다.
-
콘텐츠 브라우저(Content Browser) 에서 우클릭하고 새 폴더(New Folder) 를 선택합니다.
-
생성된 새 폴더를 Animations 로 명명한 후 더블클릭하여 엽니다.
- 다음과 같은 이름의 로컬 애니메이션 파일 5개를 찾습니다.
FPP_Idle.FBXFPP_JumpEnd.FBXFPP_JumpLoop.FBXFPP_JumpStart.FBXFPP_Run.FBX
-
'Animations' 폴더에서 우클릭하고 /Game/Animations/...에 임포트(Import to /Game/Animations/...) 를 클릭하여 애니메이션 임포트를 시작합니다.
-
FBX 임포트 옵션(FBX Import Options) 대화창이 나타나면 스켈레톤 선택(Select Skeleton) 헤딩 아래 HeroFPP_Skeleton 을 선택한 다음, 모두 임포트(Import All) 를 클릭하여 애니메이션을 모두 임포트합니다.
애니메이션을 임포트하기 전에 대상 메시를 올바르게 선택했는지 확인하세요! 대상 메시를 잘못 선택한 경우 나중에 맵 애니메이션에서 문제가 발생할 수 있습니다.
-
이제 콘텐츠 브라우저 의 Animations 폴더에 5개의 애니메이션이 생겼습니다.
-
메인 메뉴 패널에서 파일(File) 을 클릭하고 모두 저장(Save All) 을 선택하여 임포트된 메시를 저장합니다.
애니메이션 블루프린트 생성하기
-
콘텐츠 브라우저 의 Animation 폴더로 이동하여 파일 창을 우클릭하고 애니메이션(Animation) > 애니메이션 블루프린트(Animation Blueprint) 를 선택합니다.
-
부모 클래스로 애님 인스턴스(AnimInstance) 를 선택하고 타깃 스켈레톤으로 HeroFPP_Skeleton 을 선택합니다.
-
생성된 애니메이션 블루프린트를 Arms_AnimBP 로 명명합니다.
-
Arms_AnimBP 를 더블클릭하여 블루프린트 에디터 에서 엽니다.
스테이트 머신 트랜지션 변수 추가하기
-
내 블루프린트(My Blueprint) 패널에서 추가(Add) 버튼을 클릭하고 변수(Variable) 를 선택합니다.
-
변수를 부울(Boolean) 로 만듭니다. 부울이 디폴트지만, 혹시 모르니 디테일(Details) 패널을 확인합니다. 그런 다음 변수 이름을 IsRunning 으로 지정합니다.
-
내 블루프린트 패널에서 추가 버튼을 클릭하고 변수 를 선택합니다.
-
변수를 부울 로 만들고 이름을 IsFalling 으로 지정합니다.
-
이제 애니메이션의 스테이트 머신을 구동할 애니메이션 트랜지션 변수가 2개 생겼습니다.
-
Arms_AnimBP 를 열어 둔 상태로 다음 섹션으로 넘어갑니다.
4.2 - 이벤트 그래프 구성하기
이 단계에서는 애니메이션의 이벤트 그래프를 편집하여 게임이 실행되는 동안 애니메이션 트랜지션 변수가 제대로 발동하도록 합니다.
스테이트 변수 업데이트하기
-
아직 Arms_AnimBP 를 안 열었다면 엽니다.
-
내 블루프린트 패널의 이벤트 그래프(EventGraph) 를 더블클릭하여 이벤트 그래프를 엽니다.
-
그래프(Graph) 에서 우클릭하여 컨텍스트 메뉴(Context Menu) 를 띄우고 Event Blueprint Update Animation 노드를 검색하여 선택합니다.
Event Blueprint Update Animation 노드를 통해 애니메이션이 업데이트될 때마다 스테이트 변수를 업데이트하여 항상 변수가 게임 스테이트와 동기화되도록 할 수 있습니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_1" EventReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation") bOverrideFunction=True NodePosX=398 NodePosY=-96 NodeGuid=21DF6D574102CA5C018FE3BB95592B90 CustomProperties Pin (PinId=ACEF355D4D128A2B1A8C318679284DCB,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation"),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=FA5B08B6409F53A9B319E8ACAE7AACDB,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_DynamicCast_0 C6FD3C7E49941CA41369F4A076FDA43D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B8696FAC460E69DE6A3BA3954B998A4B,PinName="DeltaTimeX",PinToolTip="델타 시간 X\n플로트(단정밀도)",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",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object -
그래프 에서 우클릭하여 컨텍스트 메뉴 를 띄우고 Try Get Pawn Owner 노드를 검색하여 선택합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_1" bIsPureFunc=True bIsConstFunc=True FunctionReference=(MemberName="TryGetPawnOwner",bSelfContext=True) NodePosX=400 NodePosY=16 NodeGuid=A3821BB0472ED1E5DACDC7AFD6DC9414 CustomProperties Pin (PinId=5DBA1E3B41B4BD224B62F8A855B6E997,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimInstance"',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=281CB3A3428BAE29EDD8D3A95BD80857,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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 4197F7244AAA43F6953C13A25E005D33,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object -
그래프 에서 우클릭하여 컨텍스트 메뉴 를 띄우고 Cast to Character 노드를 검색하여 선택합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_DynamicCast Name="K2Node_DynamicCast_0" TargetType=Class'"/Script/Engine.Character"' NodePosX=704 NodePosY=-96 NodeGuid=C4B161134413EB46FA6B80BBA09C5347 CustomProperties Pin (PinId=C6FD3C7E49941CA41369F4A076FDA43D,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_Event_1 FA5B08B6409F53A9B319E8ACAE7AACDB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=9D14DCE34BC0F75E1A2D2B9256790C4B,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_VariableSet_0 4F5BDC4D48B89FFC3E10B99478EBE18C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=535528F54BE636CF44792B997A55755F,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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4197F7244AAA43F6953C13A25E005D33,PinName="Object",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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_1 281CB3A3428BAE29EDD8D3A95BD80857,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=C2AA0D2348FF56BD61A5948552BF57C4,PinName="AsCharacter",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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_0 610B4F4D407454D6FD84AE95CEFA0C20,K2Node_CallFunction_2 DEE7EBC340409DE4AF8E7C9286A3DF47,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4782841C46ED871E5153898260171550,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_Event Name="K2Node_Event_1" EventReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation") bOverrideFunction=True NodePosX=398 NodePosY=-96 NodeGuid=21DF6D574102CA5C018FE3BB95592B90 CustomProperties Pin (PinId=ACEF355D4D128A2B1A8C318679284DCB,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation"),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=FA5B08B6409F53A9B319E8ACAE7AACDB,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_DynamicCast_0 C6FD3C7E49941CA41369F4A076FDA43D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B8696FAC460E69DE6A3BA3954B998A4B,PinName="DeltaTimeX",PinToolTip="델타 시간 X\n플로트(단정밀도)",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",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" TargetType=Class'"/Script/Engine.Character"' NodePosX=704 NodePosY=-96 NodeGuid=C4B161134413EB46FA6B80BBA09C5347 CustomProperties Pin (PinId=C6FD3C7E49941CA41369F4A076FDA43D,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_Event_1 FA5B08B6409F53A9B319E8ACAE7AACDB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=9D14DCE34BC0F75E1A2D2B9256790C4B,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_VariableSet_0 4F5BDC4D48B89FFC3E10B99478EBE18C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=535528F54BE636CF44792B997A55755F,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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4197F7244AAA43F6953C13A25E005D33,PinName="Object",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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_1 281CB3A3428BAE29EDD8D3A95BD80857,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=C2AA0D2348FF56BD61A5948552BF57C4,PinName="AsCharacter",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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_0 610B4F4D407454D6FD84AE95CEFA0C20,K2Node_CallFunction_2 DEE7EBC340409DE4AF8E7C9286A3DF47,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4782841C46ED871E5153898260171550,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_1" bIsPureFunc=True bIsConstFunc=True FunctionReference=(MemberName="TryGetPawnOwner",bSelfContext=True) NodePosX=400 NodePosY=16 NodeGuid=A3821BB0472ED1E5DACDC7AFD6DC9414 CustomProperties Pin (PinId=5DBA1E3B41B4BD224B62F8A855B6E997,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimInstance"',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=281CB3A3428BAE29EDD8D3A95BD80857,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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 4197F7244AAA43F6953C13A25E005D33,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object -
Cast to Character 노드의 As Character 출력 핀을 드래그하여 Get Character Movement 노드를 찾아 선택합니다. (이 노드를 찾으려면 컨텍스트에 따라(Context Sensitivity) 를 비활성화해야 합니다.)
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0" VariableReference=(MemberParent=Class'"/Script/Engine.Character"',MemberName="CharacterMovement") SelfContextInfo=NotSelfContext NodePosX=960 NodePosY=-32 NodeGuid=794C02D943C92EFE12A62BB64ED37749 CustomProperties Pin (PinId=3EB578C24513EB353E094A88E08A2F58,PinName="CharacterMovement",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "Character:CharacterMovement", "Character Movement"),Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.CharacterMovementComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_3 52982C5642EAB3EF15CAC9B9BE5C69B0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=610B4F4D407454D6FD84AE95CEFA0C20,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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 C2AA0D2348FF56BD61A5948552BF57C4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object -
Character Movement 출력 핀을 드래그하여 Get Movement Mode 노드를 찾아 선택합니다. (이 노드를 찾으려면 컨텍스트에 따라 를 비활성화해야 합니다.)
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_3" VariableReference=(MemberParent=Class'"/Script/Engine.CharacterMovementComponent"',MemberName="MovementMode") SelfContextInfo=NotSelfContext NodePosX=960 NodePosY=32 NodeGuid=D3111FB84A03F79E78F02B82A537DC91 CustomProperties Pin (PinId=93186C2649491F80725383B5B148AD71,PinName="MovementMode",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "CharacterMovementComponent:MovementMode", "Movement Mode"),Direction="EGPD_Output",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="MOVE_None",LinkedTo=(K2Node_EnumEquality_0 B33403B448FB58ADBB9EBB94E1F91BBE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=52982C5642EAB3EF15CAC9B9BE5C69B0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.CharacterMovementComponent"',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_0 3EB578C24513EB353E094A88E08A2F58,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object
캐릭터 무브먼트 쿼리하기
- Movement Mode 출력 핀을 드래그하여 Equal (Enum) 노드를 찾아 선택합니다. (이 노드를 찾으려면 컨텍스트에 따라 를 비활성화해야 합니다.)
캐릭터가 떨어지는지 여부 결정하기
-
Equal (Enum) 노드의 드롭다운 값을 떨어짐(Falling) 으로 설정합니다.
-
내 블루프린트 패널로 이동하고 Alt 를 누른 채 IsFalling 변수를 그래프 로 드래그하여 Set Is Falling 노드를 생성합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableSet Name="K2Node_VariableSet_0" VariableReference=(MemberName="IsFalling",MemberGuid=705639E843948844E07A3E9294CDE9AE,bSelfContext=True) NodePosX=1584 NodePosY=-80 NodeGuid=0CED3FDD4B1A2376E69D4C82D22F57B5 CustomProperties Pin (PinId=4F5BDC4D48B89FFC3E10B99478EBE18C,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 9D14DCE34BC0F75E1A2D2B9256790C4B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6BD7AC35458BE69A68D18CB671664C5D,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_VariableSet_1 359078C04D0835C7115B4984EB33976F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=43CA389C44CF686B7A5230B005F84A27,PinName="IsFalling",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_EnumEquality_0 90AB0AF54D61879FAE9938AF3D5E7BE2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6CA0A270494806DD8CFCD184A03908F4,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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,) CustomProperties Pin (PinId=57234AF84E4595BFDF8196A27A02E1F4,PinName="Output_Get",PinToolTip="변수의 값을 구해오며, 별도의 Get 노드 대신 사용 가능합니다.",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 -
Cast to Character 노드의 출력 실행 핀을 Set Is Falling 노드의 입력 실행 핀에 연결하고, Equal (Enum) 노드의 출력 핀을 Set Is Falling 노드의 입력 Is Falling 핀에 연결합니다. 블루프린트 스크립트가 다음과 같은 모습이어야 합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableSet Name="K2Node_VariableSet_0" VariableReference=(MemberName="IsFalling",MemberGuid=705639E843948844E07A3E9294CDE9AE,bSelfContext=True) NodePosX=1584 NodePosY=-80 NodeGuid=0CED3FDD4B1A2376E69D4C82D22F57B5 CustomProperties Pin (PinId=4F5BDC4D48B89FFC3E10B99478EBE18C,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 9D14DCE34BC0F75E1A2D2B9256790C4B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6BD7AC35458BE69A68D18CB671664C5D,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_VariableSet_1 359078C04D0835C7115B4984EB33976F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=43CA389C44CF686B7A5230B005F84A27,PinName="IsFalling",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_EnumEquality_0 90AB0AF54D61879FAE9938AF3D5E7BE2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6CA0A270494806DD8CFCD184A03908F4,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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,) CustomProperties Pin (PinId=57234AF84E4595BFDF8196A27A02E1F4,PinName="Output_Get",PinToolTip="변수의 값을 구해오며, 별도의 Get 노드 대신 사용 가능합니다.",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/BlueprintGraph.K2Node_Event Name="K2Node_Event_1" EventReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation") bOverrideFunction=True NodePosX=398 NodePosY=-96 NodeGuid=21DF6D574102CA5C018FE3BB95592B90 CustomProperties Pin (PinId=ACEF355D4D128A2B1A8C318679284DCB,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation"),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=FA5B08B6409F53A9B319E8ACAE7AACDB,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_DynamicCast_0 C6FD3C7E49941CA41369F4A076FDA43D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B8696FAC460E69DE6A3BA3954B998A4B,PinName="DeltaTimeX",PinToolTip="델타 시간 X\n플로트(단정밀도)",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",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" bIsPureFunc=True bIsConstFunc=True FunctionReference=(MemberName="TryGetPawnOwner",bSelfContext=True) NodePosX=400 NodePosY=16 NodeGuid=A3821BB0472ED1E5DACDC7AFD6DC9414 CustomProperties Pin (PinId=5DBA1E3B41B4BD224B62F8A855B6E997,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimInstance"',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=281CB3A3428BAE29EDD8D3A95BD80857,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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 4197F7244AAA43F6953C13A25E005D33,),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" TargetType=Class'"/Script/Engine.Character"' NodePosX=704 NodePosY=-96 NodeGuid=C4B161134413EB46FA6B80BBA09C5347 CustomProperties Pin (PinId=C6FD3C7E49941CA41369F4A076FDA43D,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_Event_1 FA5B08B6409F53A9B319E8ACAE7AACDB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=9D14DCE34BC0F75E1A2D2B9256790C4B,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_VariableSet_0 4F5BDC4D48B89FFC3E10B99478EBE18C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=535528F54BE636CF44792B997A55755F,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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4197F7244AAA43F6953C13A25E005D33,PinName="Object",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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_1 281CB3A3428BAE29EDD8D3A95BD80857,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=C2AA0D2348FF56BD61A5948552BF57C4,PinName="AsCharacter",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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_0 610B4F4D407454D6FD84AE95CEFA0C20,K2Node_CallFunction_2 DEE7EBC340409DE4AF8E7C9286A3DF47,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4782841C46ED871E5153898260171550,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_VariableGet Name="K2Node_VariableGet_0" VariableReference=(MemberParent=Class'"/Script/Engine.Character"',MemberName="CharacterMovement") SelfContextInfo=NotSelfContext NodePosX=960 NodePosY=-32 NodeGuid=794C02D943C92EFE12A62BB64ED37749 CustomProperties Pin (PinId=3EB578C24513EB353E094A88E08A2F58,PinName="CharacterMovement",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "Character:CharacterMovement", "Character Movement"),Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.CharacterMovementComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_3 52982C5642EAB3EF15CAC9B9BE5C69B0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=610B4F4D407454D6FD84AE95CEFA0C20,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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 C2AA0D2348FF56BD61A5948552BF57C4,),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_3" VariableReference=(MemberParent=Class'"/Script/Engine.CharacterMovementComponent"',MemberName="MovementMode") SelfContextInfo=NotSelfContext NodePosX=960 NodePosY=32 NodeGuid=D3111FB84A03F79E78F02B82A537DC91 CustomProperties Pin (PinId=93186C2649491F80725383B5B148AD71,PinName="MovementMode",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "CharacterMovementComponent:MovementMode", "Movement Mode"),Direction="EGPD_Output",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="MOVE_None",LinkedTo=(K2Node_EnumEquality_0 B33403B448FB58ADBB9EBB94E1F91BBE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=52982C5642EAB3EF15CAC9B9BE5C69B0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.CharacterMovementComponent"',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_0 3EB578C24513EB353E094A88E08A2F58,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_EnumEquality Name="K2Node_EnumEquality_0" NodePosX=1216 NodePosY=16 NodeGuid=E92169084E2A033628BE3A9069793DE7 CustomProperties Pin (PinId=90AB0AF54D61879FAE9938AF3D5E7BE2,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,LinkedTo=(K2Node_VariableSet_0 43CA389C44CF686B7A5230B005F84A27,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B33403B448FB58ADBB9EBB94E1F91BBE,PinName="A",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',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_3 93186C2649491F80725383B5B148AD71,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=91F550B44CDABD87020DCE81AD43BCE6,PinName="B",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="MOVE_Falling",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object 이미지를 클릭하면 최대 크기로 볼 수 있습니다
캐릭터가 달리는지 여부 결정하기
-
Cast To Character 노드로 돌아가 As Character 핀을 다시 드래그합니다. 이번에는 Get Velocity 노드를 찾아 선택합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_2" bIsPureFunc=True bIsConstFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.Actor"',MemberName="GetVelocity") NodePosX=960 NodePosY=96 NodeGuid=4F6BD0594757F7C2AE8F7EA6D94E55E0 CustomProperties Pin (PinId=DEE7EBC340409DE4AF8E7C9286A3DF47,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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 C2AA0D2348FF56BD61A5948552BF57C4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=81FFF922425BDF16B81FC4BCE9A72696,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',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, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_3 0DBC29A444F10C481A253683731CD1A9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object -
캐릭터가 정지 상태가 아니라면 속도 벡터의 길이가 0보다 큰 것입니다. 이 경우 Get Velocity 노드의 Return Value 출력 핀을 드래그하여 Vector Length 노드를 선택합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_3" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="VSize") NodePosX=1184 NodePosY=112 NodeGuid=3AE777D34DE5EE379CBA59B153453EAC CustomProperties Pin (PinId=5594DA974E853614652925A3B9D69271,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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=0DBC29A444F10C481A253683731CD1A9,PinName="A",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',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, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_2 81FFF922425BDF16B81FC4BCE9A72696,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=661B8D824176AA6BD54858905A0FB424,PinName="ReturnValue",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_PromotableOperator_0 D29D263F4E1F383AB06ADD8514AFF5A5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object -
Vector Length 노드의 Return Value 플로트 출력 핀을 드래그하여 Greater 노드를 찾아 선택합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="Greater_DoubleDouble") NodePosX=1408 NodePosY=112 NodeGuid=98F36EAA41455048B1AE1A80E0893DAC CustomProperties Pin (PinId=D29D263F4E1F383AB06ADD8514AFF5A5,PinName="A",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,LinkedTo=(K2Node_CallFunction_3 661B8D824176AA6BD54858905A0FB424,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=010B669C4964A1256461B99BF2785672,PinName="B",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=False,bOrphanedPin=False,) CustomProperties Pin (PinId=3591879D4E279C0619181FAA2AD21CE5,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,LinkedTo=(K2Node_VariableSet_1 924228B549172358E81BB18BD02691D3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=ED35FDE04F2BA57D1CA5CA984A7CE542,PinName="ErrorTolerance",PinType.PinCategory="",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 -
내 블루프린트 패널로 이동하고 Alt 를 누른 채 IsRunning 변수를 그래프 로 드래그하여 Set Is Running 노드를 생성합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableSet Name="K2Node_VariableSet_1" VariableReference=(MemberName="IsRunning",MemberGuid=0255D91A42F7392600B685A9ECCB66EF,bSelfContext=True) NodePosX=1584 NodePosY=48 NodeGuid=F0DEECE345BDDDA5738FB49766861F3B CustomProperties Pin (PinId=359078C04D0835C7115B4984EB33976F,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_VariableSet_0 6BD7AC35458BE69A68D18CB671664C5D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=24729D1346E135CF5686458A637B8A24,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=924228B549172358E81BB18BD02691D3,PinName="IsRunning",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_PromotableOperator_0 3591879D4E279C0619181FAA2AD21CE5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=375581AF4FD3E9072B5AA69223C872A6,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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,) CustomProperties Pin (PinId=8FFD21B94466C1A2CADE09BD2EBAE03D,PinName="Output_Get",PinToolTip="변수의 값을 구해오며, 별도의 Get 노드 대신 사용 가능합니다.",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 -
Set Is Falling 노드의 출력 실행 핀을 Set Is Running 노드의 입력 실행 핀에 연결합니다. Greater 노드의 출력 핀을 Set Is Running 노드의 Is Running 핀에 연결합니다.
-
이벤트 그래프 가 다음과 같은 모습이어야 합니다.
Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_1" EventReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation") bOverrideFunction=True NodePosX=398 NodePosY=-96 NodeGuid=21DF6D574102CA5C018FE3BB95592B90 CustomProperties Pin (PinId=ACEF355D4D128A2B1A8C318679284DCB,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/Engine.AnimInstance"',MemberName="BlueprintUpdateAnimation"),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=FA5B08B6409F53A9B319E8ACAE7AACDB,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_DynamicCast_0 C6FD3C7E49941CA41369F4A076FDA43D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B8696FAC460E69DE6A3BA3954B998A4B,PinName="DeltaTimeX",PinToolTip="델타 시간 X\n플로트(단정밀도)",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",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" bIsPureFunc=True bIsConstFunc=True FunctionReference=(MemberName="TryGetPawnOwner",bSelfContext=True) NodePosX=400 NodePosY=16 NodeGuid=A3821BB0472ED1E5DACDC7AFD6DC9414 CustomProperties Pin (PinId=5DBA1E3B41B4BD224B62F8A855B6E997,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimInstance"',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=281CB3A3428BAE29EDD8D3A95BD80857,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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 4197F7244AAA43F6953C13A25E005D33,),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" TargetType=Class'"/Script/Engine.Character"' NodePosX=704 NodePosY=-96 NodeGuid=C4B161134413EB46FA6B80BBA09C5347 CustomProperties Pin (PinId=C6FD3C7E49941CA41369F4A076FDA43D,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_Event_1 FA5B08B6409F53A9B319E8ACAE7AACDB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=9D14DCE34BC0F75E1A2D2B9256790C4B,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_VariableSet_0 4F5BDC4D48B89FFC3E10B99478EBE18C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=535528F54BE636CF44792B997A55755F,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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4197F7244AAA43F6953C13A25E005D33,PinName="Object",PinType.PinCategory="Object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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_1 281CB3A3428BAE29EDD8D3A95BD80857,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=C2AA0D2348FF56BD61A5948552BF57C4,PinName="AsCharacter",Direction="EGPD_Output",PinType.PinCategory="Object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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_0 610B4F4D407454D6FD84AE95CEFA0C20,K2Node_CallFunction_2 DEE7EBC340409DE4AF8E7C9286A3DF47,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4782841C46ED871E5153898260171550,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_VariableGet Name="K2Node_VariableGet_0" VariableReference=(MemberParent=Class'"/Script/Engine.Character"',MemberName="CharacterMovement") SelfContextInfo=NotSelfContext NodePosX=944 NodePosY=-32 NodeGuid=794C02D943C92EFE12A62BB64ED37749 CustomProperties Pin (PinId=3EB578C24513EB353E094A88E08A2F58,PinName="CharacterMovement",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "Character:CharacterMovement", "Character Movement"),Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.CharacterMovementComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_3 52982C5642EAB3EF15CAC9B9BE5C69B0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=610B4F4D407454D6FD84AE95CEFA0C20,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.Character"',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 C2AA0D2348FF56BD61A5948552BF57C4,),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_3" VariableReference=(MemberParent=Class'"/Script/Engine.CharacterMovementComponent"',MemberName="MovementMode") SelfContextInfo=NotSelfContext NodePosX=1232 NodePosY=-32 NodeGuid=D3111FB84A03F79E78F02B82A537DC91 CustomProperties Pin (PinId=93186C2649491F80725383B5B148AD71,PinName="MovementMode",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "CharacterMovementComponent:MovementMode", "Movement Mode"),Direction="EGPD_Output",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="MOVE_None",LinkedTo=(K2Node_EnumEquality_0 B33403B448FB58ADBB9EBB94E1F91BBE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=52982C5642EAB3EF15CAC9B9BE5C69B0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.CharacterMovementComponent"',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_0 3EB578C24513EB353E094A88E08A2F58,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_EnumEquality Name="K2Node_EnumEquality_0" NodePosX=1200 NodePosY=32 NodeGuid=E92169084E2A033628BE3A9069793DE7 CustomProperties Pin (PinId=90AB0AF54D61879FAE9938AF3D5E7BE2,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,LinkedTo=(K2Node_VariableSet_0 43CA389C44CF686B7A5230B005F84A27,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B33403B448FB58ADBB9EBB94E1F91BBE,PinName="A",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',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_3 93186C2649491F80725383B5B148AD71,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=91F550B44CDABD87020DCE81AD43BCE6,PinName="B",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Enum'"/Script/Engine.EMovementMode"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="MOVE_Falling",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_VariableSet Name="K2Node_VariableSet_0" VariableReference=(MemberName="IsFalling",MemberGuid=705639E843948844E07A3E9294CDE9AE,bSelfContext=True) NodePosX=1504 NodePosY=-80 NodeGuid=0CED3FDD4B1A2376E69D4C82D22F57B5 CustomProperties Pin (PinId=4F5BDC4D48B89FFC3E10B99478EBE18C,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 9D14DCE34BC0F75E1A2D2B9256790C4B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6BD7AC35458BE69A68D18CB671664C5D,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_VariableSet_1 359078C04D0835C7115B4984EB33976F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=43CA389C44CF686B7A5230B005F84A27,PinName="IsFalling",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_EnumEquality_0 90AB0AF54D61879FAE9938AF3D5E7BE2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6CA0A270494806DD8CFCD184A03908F4,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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,) CustomProperties Pin (PinId=57234AF84E4595BFDF8196A27A02E1F4,PinName="Output_Get",PinToolTip="변수의 값을 구해오며, 별도의 Get 노드 대신 사용 가능합니다.",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/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_2" bIsPureFunc=True bIsConstFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.Actor"',MemberName="GetVelocity") NodePosX=944 NodePosY=48 NodeGuid=4F6BD0594757F7C2AE8F7EA6D94E55E0 CustomProperties Pin (PinId=DEE7EBC340409DE4AF8E7C9286A3DF47,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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 C2AA0D2348FF56BD61A5948552BF57C4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=81FFF922425BDF16B81FC4BCE9A72696,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',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, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_3 0DBC29A444F10C481A253683731CD1A9,),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_3" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="VSize") NodePosX=1200 NodePosY=128 NodeGuid=3AE777D34DE5EE379CBA59B153453EAC CustomProperties Pin (PinId=5594DA974E853614652925A3B9D69271,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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=0DBC29A444F10C481A253683731CD1A9,PinName="A",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/CoreUObject.Vector"',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, 0",AutogeneratedDefaultValue="0, 0, 0",LinkedTo=(K2Node_CallFunction_2 81FFF922425BDF16B81FC4BCE9A72696,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=661B8D824176AA6BD54858905A0FB424,PinName="ReturnValue",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_PromotableOperator_0 D29D263F4E1F383AB06ADD8514AFF5A5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_VariableSet Name="K2Node_VariableSet_1" VariableReference=(MemberName="IsRunning",MemberGuid=0255D91A42F7392600B685A9ECCB66EF,bSelfContext=True) NodePosX=1696 NodePosY=-80 NodeGuid=F0DEECE345BDDDA5738FB49766861F3B CustomProperties Pin (PinId=359078C04D0835C7115B4984EB33976F,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_VariableSet_0 6BD7AC35458BE69A68D18CB671664C5D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=24729D1346E135CF5686458A637B8A24,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=924228B549172358E81BB18BD02691D3,PinName="IsRunning",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_PromotableOperator_0 3591879D4E279C0619181FAA2AD21CE5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=375581AF4FD3E9072B5AA69223C872A6,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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,) CustomProperties Pin (PinId=8FFD21B94466C1A2CADE09BD2EBAE03D,PinName="Output_Get",PinToolTip="변수의 값을 구해오며, 별도의 Get 노드 대신 사용 가능합니다.",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/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="Greater_DoubleDouble") NodePosX=1456 NodePosY=128 NodeGuid=98F36EAA41455048B1AE1A80E0893DAC CustomProperties Pin (PinId=D29D263F4E1F383AB06ADD8514AFF5A5,PinName="A",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,LinkedTo=(K2Node_CallFunction_3 661B8D824176AA6BD54858905A0FB424,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=010B669C4964A1256461B99BF2785672,PinName="B",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=False,bOrphanedPin=False,) CustomProperties Pin (PinId=3591879D4E279C0619181FAA2AD21CE5,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,LinkedTo=(K2Node_VariableSet_1 924228B549172358E81BB18BD02691D3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=ED35FDE04F2BA57D1CA5CA984A7CE542,PinName="ErrorTolerance",PinType.PinCategory="",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 -
컴파일(Compile) 과 저장(Save) 버튼을 클릭합니다.
4.3 - 애니메이션 스테이트 머신 추가하기
이 단계에서는 새로 만든 변수를 활용하는 스테이트 머신을 생성합니다.
-
내 블루프린트 패널에서 AnimGraph 를 더블클릭하여 엽니다.
-
그래프 를 우클릭하고 컨텍스트 메뉴 에서 스테이트 머신(State Machines) > 새 스테이트 머신 추가...(Add New State Machine...) 를 선택합니다.
-
내 블루프린트 패널에서 새 스테이트 머신(New State Machine) 을 우클릭하고 이름을 'Arms State Machine'으로 지정합니다.
-
Arms State Machine 노드의 출력 실행 핀을 Final Animation Pose 노드의 Result 입력 실행 핀에 연결합니다.
-
Arms State Machine 노드를 더블클릭하여 편집을 위해 그래프를 엽니다.
4.4 - 애니메이션 트랜지션 스테이트 추가하기
이 단계에서는 스테이트 그래프에 다음과 같은 이름의 스테이트 5개를 추가합니다.
- Idle
- Run
- JumpStart
- JumpEnd
- JumpLoop
-
그래프에서 우클릭하고 컨텍스트 메뉴에서 스테이트 추가...(Add State...) 를 선택합니다.
-
스테이트 이름을 Idle 로 지정합니다.
-
스테이트를 더블클릭하여 편집을 시작합니다.
-
그래프 영역에서 우클릭하고 Play FPP_Idle 노드를 찾아 선택합니다.
-
Play FPP_Idle 노드의 출력 실행 핀을 Output Animation Pose 노드의 Result 입력 실행 핀에 연결합니다.
다음과 같은 이름의 스테이트 4개에도 각각 1~6단계를 반복합니다. Run (Play FPP_Run > Output Animation Pose) JumpStart (Play FPP_JumpStart > Output Animation Pose) JumpEnd (Play FPP_JumpEnd > Output Animation Pose) JumpLoop (Play FPP_JumpLoop > Output Animation Pose)
-
완료 시 팔 스테이트 머신(Arms State Machine) 그래프가 다음 이미지와 같은 모습이어야 합니다.
각 스테이트는 각 Final Animation Pose 노드에 연결된 Play 노드를 포함해야 합니다.
-
Entry 노드에서 Idle 스테이트 노드로 와이어를 드래그합니다.
4.4.1 - 유휴-달리기 트랜지션 추가
이 단계에서는 캐릭터가 움직이기 시작하면 스테이트 머신이 Idle 에서 Run 으로 트랜지션하도록 유휴 와 달리기 간의 트랜지션을 설정합니다.
-
Idle 스테이트에서 Run 스테이트로 와이어를 드래그하여 트랜지션을 생성합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
내 블루프린트 패널로 이동하고 Ctrl 을 누른 채 IsRunning 변수를 그래프 로 드래그하여 Get Is Running 노드를 생성합니다.
-
Get Is Running 노드의 출력 핀을 Result 노드의 Can Enter Transition 입력 핀에 연결합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "C01101734C75BB4D577C29850E0EF618", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodePosY=32 NodeGuid=C1FB5F634E64037266F9C78AB0F68956 CustomProperties Pin (PinId=9B45020442E898EAA2EC8AA0C60A9181,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "93992F194C9EAEDFB50529BBA74240CF", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_VariableGet_0 299612E544A553EAE5C1F0AC6FB0221C,),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_0" VariableReference=(MemberName="IsRunning",MemberGuid=0255D91A42F7392600B685A9ECCB66EF,bSelfContext=True) NodePosX=-176 NodePosY=48 NodeGuid=5E28D5234AEE1B0C28E3BA8C6DBE2C26 CustomProperties Pin (PinId=299612E544A553EAE5C1F0AC6FB0221C,PinName="IsRunning",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=(AnimGraphNode_TransitionResult_0 9B45020442E898EAA2EC8AA0C60A9181,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=872224674F0687D379C3DAA16C438218,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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 캐릭터가 이동을 멈추면 스테이트 머신이 Run 스테이트에서 Idle 스테이트로 트랜지션해야 합니다.
-
팔 스테이트 머신 그래프로 돌아가 Run 스테이트에서 Idle 스테이트로 와이어를 드래그합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
내 블루프린트 패널로 이동하고 Ctrl 을 누른 채 IsRunning 변수를 그래프 로 드래그하여 Get Is Running 노드를 생성합니다.
-
Get Is Running 노드의 출력 핀을 드래그하여 Not Boolean 노드를 찾아 선택합니다.
-
Not Boolean* 노드의 출력 핀을 Result 노드의 Can Enter Transition** 입력 핀에 연결합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "EA07E4A84D72B38C59E552AAB28B0301", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodePosX=32 NodePosY=32 NodeGuid=F40FA8BF4C4A0A2FAE2A9EB232223AF6 CustomProperties Pin (PinId=E05B3151455B71CC47B68386F1A57F82,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "7B796E5D498B026D4B49449969EC5BB7", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_CallFunction_0 63D685FB419C825D94D9F8BF66C65E59,),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_0" VariableReference=(MemberName="IsRunning",MemberGuid=0255D91A42F7392600B685A9ECCB66EF,bSelfContext=True) NodePosX=-320 NodePosY=48 NodeGuid=9C68A2ED4962D7B1E7807CA260EDF9D5 CustomProperties Pin (PinId=FAF5EEC345E366144A93DE86C9DF2553,PinName="IsRunning",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_CallFunction_0 CA1C4BCB40193E7A8FDEEE840A3DCCB4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=017E2543489B50B1E0838E8AD9EB9B30,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="Not_PreBool") NodePosX=-160 NodePosY=48 NodeGuid=7734BC3748E44915544262841AC656A1 CustomProperties Pin (PinId=11CC71294B43E6B04808D58453D1AA71,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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=CA1C4BCB40193E7A8FDEEE840A3DCCB4,PinName="A",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_VariableGet_0 FAF5EEC345E366144A93DE86C9DF2553,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=63D685FB419C825D94D9F8BF66C65E59,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",LinkedTo=(AnimGraphNode_TransitionResult_0 E05B3151455B71CC47B68386F1A57F82,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object
4.4.2 - 유휴-점프 시작 트랜지션 추가
이 단계에서는 유휴-점프 시작 트랜지션을 설정합니다.
-
팔 스테이트 머신 그래프로 돌아가 Idle 스테이트에서 JumpStart 스테이트로 와이어를 드래그합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
내 블루프린트 패널로 이동하고 Ctrl 을 누른 채 IsFalling 변수를 그래프 로 드래그하여 Get Is Falling 노드를 생성합니다.
-
Get Is Falling 노드의 출력 핀을 Result 노드의 Can Enter Transition 입력 핀에 연결합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "DB406DA24C733347CB49139139F80296", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodePosY=32 NodeGuid=BBAFFD1E4834C35CD5B551A36FF7153D CustomProperties Pin (PinId=DA182F654C452B01EB192FB2F6A97030,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "986CB36D4AC40CE69812C99720D31D81", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_VariableGet_0 C9424704425866324A9716AE3C06554B,),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_0" VariableReference=(MemberName="IsFalling",MemberGuid=705639E843948844E07A3E9294CDE9AE,bSelfContext=True) NodePosX=-192 NodePosY=48 NodeGuid=18CFB23445B794894DCC39BF7C5E5383 CustomProperties Pin (PinId=C9424704425866324A9716AE3C06554B,PinName="IsFalling",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=(AnimGraphNode_TransitionResult_0 DA182F654C452B01EB192FB2F6A97030,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=7A7881B74C4FD6FEDB2A469344CD35F8,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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
4.4.3 - 달리기-점프 시작 트랜지션 추가
이 단계에서는 달리기-점프 시작 트랜지션을 설정합니다.
-
팔 스테이트 머신 그래프로 돌아가 Run 스테이트에서 JumpStart 스테이트로 와이어를 드래그합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
내 블루프린트 패널로 이동하고 Ctrl 을 누른 채 IsFalling 변수를 그래프 로 드래그하여 Get Is Falling 노드를 생성합니다.
-
Get Is Falling 노드의 출력 핀을 Result 노드의 Can Enter Transition 입력 핀에 연결합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "EAB01EFF402A3A02B877F68C7AECE23E", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodeGuid=5971EA6146054AB1C78AD2A160F12E83 CustomProperties Pin (PinId=FAAAA80F461134B6A7CA9B9903B1BC6A,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "9525815F4B643C83978E8CBB19B43A50", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_VariableGet_0 BD7CFF274D0DC842419E38B00908EABF,),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_0" VariableReference=(MemberName="IsFalling",MemberGuid=705639E843948844E07A3E9294CDE9AE,bSelfContext=True) NodePosX=-192 NodePosY=16 NodeGuid=DD6E9174456EE1490F32259AE0CBD251 CustomProperties Pin (PinId=BD7CFF274D0DC842419E38B00908EABF,PinName="IsFalling",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=(AnimGraphNode_TransitionResult_0 FAAAA80F461134B6A7CA9B9903B1BC6A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=41A9CB044F92DBA9D18C50B495D73D1C,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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
4.4.4 - 점프 시작-점프 루프 트랜지션 추가
이 단계에서는 점프 시작-점프 루프 트랜지션을 설정합니다.
-
팔 스테이트 머신 그래프로 돌아가 JumpStart 스테이트에서 JumpLoop 스테이트로 와이어를 드래그합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
그래프 에서 우클릭하고 TimeRemaining for 'FPP_JumpStart' 노드를 찾아 선택합니다.
-
Time Remaining 의 Return Value 출력 핀을 드래그하여 Less Equal 노드를 찾아 선택합니다.
-
Less Equal 노드의 다른 출력 필드에 0.1 을 입력한 후 해당 노드의 출력 핀에서 Result 노드의 Can Enter Transition 입력 핀으로 와이어를 드래그합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "5A45B92148E5B550D21F1CA99AC4B32E", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodePosX=-464 NodePosY=-352 NodeGuid=52AE48BB4D6992EE8E80A085D12D4432 CustomProperties Pin (PinId=4DD057BA49B48A5E2A431792862AE166,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "F96E1E7247A4B652A5417A9C4227EEE4", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_PromotableOperator_0 B31B02D149931400B31D109DBC9852BA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/AnimGraph.K2Node_AnimGetter Name="K2Node_AnimGetter_0" SourceNode=AnimGraphNode_SequencePlayer'"/Game/Animation/Arms_AnimBP.Arms_AnimBP:AnimGraph.AnimGraphNode_StateMachine_0.Arms State Machine.AnimStateNode_1.JumpStart.AnimGraphNode_SequencePlayer_0"' GetterClass=Class'"/Script/Engine.AnimInstance"' SourceAnimBlueprint=AnimBlueprint'"/Game/Animation/Arms_AnimBP.Arms_AnimBP"' CachedTitle=LOCGEN_FORMAT_ORDERED(NSLOCTEXT("AnimGetter", "NodeTitle", "{0} ({1})"), NSLOCTEXT("UObjectDisplayNames", "AnimInstance:GetInstanceAssetPlayerTimeFromEnd", "Time Remaining"), NSLOCTEXT("", "2F7D60B3470C0C9B2FC7BFBA471E1311", "FPP_JumpStart")) bIsPureFunc=True FunctionReference=(MemberName="GetInstanceAssetPlayerTimeFromEnd",bSelfContext=True) NodePosX=-944 NodePosY=-352 NodeGuid=4A38EBD04F0C78BFC2ABF6AB03E40675 CustomProperties Pin (PinId=C46F13C9458297ABF2CE04AA750C6DAB,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimInstance"',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=5CE024214D65ABF3546A94932399BFB9,PinName="AssetPlayerIndex",PinType.PinCategory="int",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="0",AutogeneratedDefaultValue="0",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=948E04BC4E689924A2996590BC869F65,PinName="ReturnValue",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_PromotableOperator_0 C79CEE80442AF589FFEE8CA332E0020C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="LessEqual_DoubleDouble") NodePosX=-656 NodePosY=-352 NodeGuid=823D229F4DB62ECD718CD5BF821E8B60 CustomProperties Pin (PinId=C79CEE80442AF589FFEE8CA332E0020C,PinName="A",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,LinkedTo=(K2Node_AnimGetter_0 948E04BC4E689924A2996590BC869F65,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=7BC00111479AE999C629C4B80B07127E,PinName="B",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.100000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=B31B02D149931400B31D109DBC9852BA,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,LinkedTo=(AnimGraphNode_TransitionResult_0 4DD057BA49B48A5E2A431792862AE166,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=6A1EE67446AC035AD84214A0005D7C1B,PinName="ErrorTolerance",PinType.PinCategory="",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
4.4.5 - 점프 루프-점프 종료 트랜지션 추가
이 단계에서는 점프 루프-점프 종료 트랜지션을 설정합니다.
-
팔 스테이트 머신 그래프로 돌아가 JumpLoop 스테이트에서 JumpEnd 스테이트로 와이어를 드래그합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
내 블루프린트 패널로 이동하고 Ctrl 을 누른 채 IsFalling 변수를 그래프 로 드래그하여 Get Is Falling 노드를 생성합니다.
-
Get Is Falling 노드의 출력 핀을 드래그하여 Not Boolean 노드를 찾아 선택합니다.
-
Not Boolean* 노드의 출력 핀을 Result 노드의 Can Enter Transition** 입력 핀에 연결합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "5C7D1C1C4DD78E40B1AF8B8CECC3E9DF", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodePosX=32 NodePosY=32 NodeGuid=36760B9B412A5C86CCCDF88D966A2A7B CustomProperties Pin (PinId=69BF31DC46AA894802CB5680276EBF38,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "51EC03084125A022FE9F09A2D80E5DFB", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_CallFunction_0 CFC97CA5499A19D1ECD1509B083BC2F5,),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_0" VariableReference=(MemberName="IsFalling",MemberGuid=705639E843948844E07A3E9294CDE9AE,bSelfContext=True) NodePosX=-320 NodePosY=48 NodeGuid=B8A9DC7540D27F07BC603DA20EFF6F92 CustomProperties Pin (PinId=34E74A3440877C4A66D37A96D0924743,PinName="IsFalling",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_CallFunction_0 BB47D4AD4AE107E1A1EE86B1CF5D3067,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=F57626D8479B18685B0515B568D1BF53,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=AnimBlueprintGeneratedClass'"/Game/Animation/Arms_AnimBP.Arms_AnimBP_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_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="Not_PreBool") NodePosX=-160 NodePosY=48 NodeGuid=7244F0B4467EAF9C43C1BF91AD57AB7E CustomProperties Pin (PinId=AB0C65D0467331AFD70C4E978E78BF83,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=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=BB47D4AD4AE107E1A1EE86B1CF5D3067,PinName="A",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_VariableGet_0 34E74A3440877C4A66D37A96D0924743,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=CFC97CA5499A19D1ECD1509B083BC2F5,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",LinkedTo=(AnimGraphNode_TransitionResult_0 69BF31DC46AA894802CB5680276EBF38,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object
4.4.6 - 점프 종료-유휴 트랜지션 추가
이 단계에서는 점프 종료-유휴 트랜지션을 설정합니다.
-
팔 스테이트 머신 그래프로 돌아가 JumpEnd 스테이트에서 Idle 스테이트로 와이어를 드래그합니다.
-
편집을 위해 트랜지션을 더블클릭합니다.
-
그래프에서 우클릭하고 TimeRemaining for 'FPP_JumpEnd' 노드를 찾아 선택합니다.
-
Time Remaining 의 Return Value 출력 핀을 드래그하여 Less Equal 노드를 찾아 선택합니다.
-
Less Equal 노드의 다른 출력 필드에 0.1 을 입력한 후 해당 노드의 부울 출력 핀에서 Result 노드의 Can Enter Transition 입력 핀으로 와이어를 드래그합니다.
Begin Object Class=/Script/AnimGraph.AnimGraphNode_TransitionResult Name="AnimGraphNode_TransitionResult_0" ShowPinForProperties(0)=(PropertyName="bCanEnterTransition",PropertyFriendlyName="Can Enter Transition",PropertyTooltip=NSLOCTEXT("", "C24CA59C43D8B2E44B09AEB54405225B", "트랜지션 시작 가능"),CategoryName="Result",bShowPin=True,bCanToggleVisibility=True) NodePosX=-224 NodePosY=-352 NodeGuid=F3F7DDC941C725C60F24179072DC503A CustomProperties Pin (PinId=86FD51504F6F6245537873A3564D32F3,PinName="bCanEnterTransition",PinFriendlyName=NSLOCTEXT("", "65929CC3441153C590B3FF9FC0CE3224", "Can Enter Transition"),PinToolTip="트랜지션 시작 가능\n부울\n\n트랜지션을 시작할 수 있습니다.",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_PromotableOperator_0 58B46264422FC91E3F5FA6B033549F1E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/AnimGraph.K2Node_AnimGetter Name="K2Node_AnimGetter_0" SourceNode=AnimGraphNode_SequencePlayer'"/Game/Animation/Arms_AnimBP.Arms_AnimBP:AnimGraph.AnimGraphNode_StateMachine_0.Arms State Machine.AnimStateNode_3.JumpEnd.AnimGraphNode_SequencePlayer_0"' GetterClass=Class'"/Script/Engine.AnimInstance"' SourceAnimBlueprint=AnimBlueprint'"/Game/Animation/Arms_AnimBP.Arms_AnimBP"' CachedTitle=LOCGEN_FORMAT_ORDERED(NSLOCTEXT("AnimGetter", "NodeTitle", "{0} ({1})"), NSLOCTEXT("UObjectDisplayNames", "AnimInstance:GetInstanceAssetPlayerTimeFromEnd", "Time Remaining"), NSLOCTEXT("", "854835614A427F59124CCEAAB24EBC92", "FPP_JumpEnd")) bIsPureFunc=True FunctionReference=(MemberName="GetInstanceAssetPlayerTimeFromEnd",bSelfContext=True) NodePosX=-688 NodePosY=-352 NodeGuid=40674F114744C92D997C0FA067578110 CustomProperties Pin (PinId=BA39237642BC9BAAD918E2BA8FB61E85,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimInstance"',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=2A66FAA640AA500EB22440A453F82EC2,PinName="AssetPlayerIndex",PinType.PinCategory="int",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="0",AutogeneratedDefaultValue="0",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=2484369A49D7543512A1259C59589851,PinName="ReturnValue",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_PromotableOperator_0 4E76858643A0E550E93A94B90AB96C5D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMathLibrary"',MemberName="LessEqual_DoubleDouble") NodePosX=-416 NodePosY=-352 NodeGuid=2C3DEE17444300E6AEB801BE141E034A CustomProperties Pin (PinId=4E76858643A0E550E93A94B90AB96C5D,PinName="A",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,LinkedTo=(K2Node_AnimGetter_0 2484369A49D7543512A1259C59589851,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=4D1D9DE34F99F15A08AC19AD2A854C56,PinName="B",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.100000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=58B46264422FC91E3F5FA6B033549F1E,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,LinkedTo=(AnimGraphNode_TransitionResult_0 86FD51504F6F6245537873A3564D32F3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=7497EE974F20C0A0F6A6FF9F6ADE4EC3,PinName="ErrorTolerance",PinType.PinCategory="",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
4.5 - 애니메이션 및 캐릭터 블루프린트 연결하기
이 튜토리얼의 마지막 섹션에서는 생성한 애니메이션 블루프린트와 캐릭터 블루프린트를 연결합니다.
-
Arms_AnimBP 애니메이션 블루프린트를 닫기 전에 컴파일하고 저장합니다.
-
콘텐츠 브라우저 의 Blueprints 폴더로 이동하여 BP_FPSCharacter 블루프린트를 엽니다.
-
컴포넌트(Components) 패널에서 FPSMesh 를 선택합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다
-
FPSMesh 의 애님 클래스(Anim Class) 를 방금 생성한 Arms_AnimBP 애니메이션 블루프린트로 설정합니다.
-
디폴트(Defaults) 모드에서 FPSMesh 트랜스폼의 위치(Location) 는 {50, -15, -150}으로, 회전(Rotation) 은 {0, 25, 350}으로 변경합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다
-
닫기 전에 컴파일 과 저장 버튼을 클릭합니다.
-
레벨 에디터 툴바 에서 플레이 버튼을 클릭합니다.
이제 팔이 애니메이션 스테이트 머신에서 연결한 애니메이션을 따라 트랜지션 및 애니메이팅될 것입니다.
축하합니다! 다음과 같은 내용을 배웠습니다.
✓ 프로젝트 구성
✓ 캐릭터 구현
✓ 발사체 구현
✓ 캐릭터 애니메이팅
C++ 일인칭 슈팅 튜토리얼을 완료하셨습니다!