본문 바로가기

[Unreal] Montage Loop & Jump Section 최근에 스킬 캐스팅 업무를 맡으면서 몽타주 섹션 반복 기능에 대해 알아보게 되었습니다. - 업무에 필요한 부분만 찾아보았기 때문에 많은 내용이 담겨있진 않습니다. - 기능을 알아보는 게시글이라, 따로 코드는 없습니다. - 이 글은 UE 4.27 기준으로 작성되었습니다. 필요성 위에서 얘기한 스킬 캐스팅과 관련된 애니메이션 예시는 아래와 같습니다. 1. Casting Start Animation ( ex) 칼을 칼집에 넣는 모션 ) 2. Casting Loop Animation ( ex) 칼을 칼집에 넣은 채 기를 모으는 모션) 3. Attack Animation ( ex) 칼을 빼들며 공격하는 모션 ) 기획 측에서 설정한 캐스팅 시간 동안 Casting Loop Animation이 실행되다가 Attack..
[Unreal] AbilityTriggers in GameplayAbility GameplayAbility 내부에는 "AbilityTriggers" 라는 변수를 가지고 있고 아래 사진과 같이 에디터 상에서 편집도 가능합니다. Trigger Tag : 어빌리티가 반응할 태그 Trigger Source : Trigger Tag가 어떤 형태로 발생해야 반응할 지 선택 Trigger Source 종류를 보면 좀 더 역할이 무엇인지 감이 잡힙니다. 1. GameplayEvent : Triggered from a gameplay event, will come with payload 2. OwnedTagAdded : Triggered if the ability's owner gets a tag added, triggered once whenever it's added 3. OwnedTagPre..
[Unreal] bRetriggerInstancedAbility in GameplayAbility UGameplayAbility 클래스에는 bRetriggerInstancedAbility 라는 bool 변수를 가지고 있습니다. "if true, and trying to activate an already active instanced ability, end it and re-trigger it" 언리얼 주석에 따르면 true로 세팅했을 시 이미 실행되고 있는 생성된 어빌리티를 종료시킨 후 다시 실행시킨다는 것 같습니다. 저 변수가 사용되는 곳은 UAbilitySystemComponent::InternalTryActivateAbility() 내부에 있습니다. 위 사진은 UAbilitySystemComponent::InternalTryActivateAbility() 내부에서 bRetriggerInstan..
[Unreal] ASC TryActivateAbility flow in dedicated server 이번 글에서는 GameplayAbility를 실행시켜주는 AbilitySystemComponent(ASC)의 TryAcitvateAbility 함수가 Dedicated Server에서 어떻게 동작하는지 정리해보려고 합니다. TryActivateAbility 함수는 여러 분기를 타게 되는데, 분기의 중심은 UGameplayAbility의 NetExecutionPolicy입니다. * LocalPredicted : "Part of this ability runs predictively on the local client if there is one" * LocalOnly : "This ability will only run on the client or server that has local control" ..
[Unreal] NetExecutionPolicy in GameplayAbility https://github.com/tranek/GASDocumentation#concepts-ga-net GameplayAbility에는 NetExecutionPolicy라는 옵션이 있습니다. 위 링크의 4.6.8 쪽에 잘 정리되어 있습니다. 이 옵션은 GameAbility를 네트워크 상에서 어느 쪽에서 호출할 지, 혹은 둘 다 호출된다면 순서를 어떻게 할 지를 정합니다. 현재 4가지의 옵션을 제공합니다. Local Only : 소유한 클라이언트에서만 호출 Local Predicted : 소유한 클라이언트에서 먼저 어빌리티를 실행한 후에 서버에서 실행 Server Only : 서버에서만 호출 Server Initiated : 먼저 서버에서 호출된 후 소유한 클라이언트에서 호출 그 중 Local Predi..
[Unreal] Actor Dormancy & Network Profiling 참고 링크 https://velog.io/@hon454/NetDormancy-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%ED%9C%B4%EB%A9%B4-%EC%97%AC%EB%B6%80-%EC%9D%B4%ED%95%B4 * ENetDormancy의 Value들에 대한 설명은 이 링크에 잘되어 있습니다. https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/Networking/NetworkProfiler/* Network Profiler Tool for displaying network traffic and performance information captured at runtime. docs.unrealengine.c..
[Unreal] Camera epic Learning [ Unreal Learning ] https://dev.epicgames.com/community/learning/courses/RRr/unreal-engine-camera-framework-essentials-for-games/wv7n/unreal-engine-camera-framework-essentials-for-games-overview Camera Framework Essentials for Games | Course In this course from the Epic Online Learning team, use C++ and Blueprints to create polished in-game Cameras. Examine some types of Cameras in Unreal En... ..
[Unreal] AcknowledgedPawn AcknowledgedPawn 변수의 역할 APlayerController 클래스에 AcknowledgedPawn 라는 변수가 존재합니다. 부모 클래스인 AController의 Pawn 변수와 AcknowledgedPawn 는 어떤 차이가 있을까요? 핵심은 언리얼이 주석처럼 Client 측의 Possess 를 인정해주는 역할을 합니다. 그리고 그 역할은 네트워크 상에서 유효합니다. 쉽게 말해, Server 측에서 Client가 Possess가 제대로 되었는지 확인할 수 있는 수단으로 사용될 수 있습니다. 만약 AcknowledgedPawn과 Pawn 객체가 동일하지 않다면 UCharacterMovementComponent ::ReplicateMoveToServer() 함수의 예외에 걸려 이동조차 못할 수..