묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
어빌리티의 쿨다운 GameEffect에 대하여
안녕하세요. GAS Ability 의 Cooldown GameplayEffect (이하 GE) 를 등록하는 부분에 대해 질문이 있습니다. 먼저 실습을 5.4 버전으로 진행하고 있음을 알립니다. 강의 내용에서는 Cooldown GE 적용 시 Cooldown GE BP 를 생성하여 HasDuration 옵션으로 GameplayTag 를 설정Cooldown을 적용하려는 GA의 Ability Block Tag 에 Cooldown GE에 설정한 GameplayTag를 추가위와 같이 진행을 해주셨는데, 5.4에서는 2번 과정이 불필요했습니다.엔진 코드 내부에서는 CheckCooldown 함수 내부에서 Cooldown GE 의 GrantedTag로 직접 쿨다운 체크를 하는걸로 보입니다.이 부분이 5.4가 되면서 개선된 부분일까요?
-
미해결[Rookiss University] Haker님의 UE5 소스코드 분석 시리즈 #1 (게임 프레임워크)
다음 엔진강의 계획된게 있을까요
혹시 다음 언리얼엔진 강의 계획되신게 있으실까요? ㅠ 너무 좋은 강의라 생각해 문의 드려요
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
GAS 구조로 멀티 플레이 게임을 제작할려고 하는데요
현재 파트1부터 4까지 강의를 다 마친 상태입니다.GAS 구조의 멀티 RPG게임을 제작할려는데파트3 네트워크 내용들 만으로도 GAS 멀티 게임 구현이 가능할까요?아니면 더 배워야 할 것들이 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
5.4버전 기준으로 Remove Gameplay Effect With Tags가 안 보입니다.
tag는 안되지만 GE를 중지시키는 건 옵션이 있네요Tag로 중지하는 건 5.4에는 없는걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
8강의 수업 내용들 중 이해가 잘 안가는 부분들이 있습니다.
1 . RegisterGameplayTagEvent 델리게이트 질문 ASC->RegisterGameplayTagEvent(ABTAG_CHARACTER_INVINSIBLE, EGameplayTagEventType::NewOrRemoved).AddUObject(this, &UABGASHpBarUserWidget::OnInvisibleTagChanged); 다음 코드를 다음과 같이 이해했는데 맞을까요?INVINSIBLE 태그가 GE에 부착(count+1)되거나 탈착(count-1)될때 알림을 주는 델리게이트. 기본 count=0 2.Pre/PostGameplayEffectExecute 함수 질문저는 이 함수가 ApplyGameplayEffectSpecTo~함수로 GE를 실행시키기 직전이랑 직후에 호출되는 걸로 알고 있습니다.PreGameplayEffectExecute 함수는 게임 플레이 이팩트 적용 전에 호출된다고 들었는데요. 하지만 확인해본 결과 ,공격할 때 게임 플레이 이팩트가 실행되어 DamageAttritbute값이 Modifier연산을 통해 30으로 변경된 이후에PreGameplayEffectExecute 함수가 호출되었습니다. "게임 플레이 이팩트 적용 전" 이란 말이 GE를 실행하기 직전, 즉 Modifier연산이 아직 되기 전으로 이해하고 있었는데 이게 아닌가요? PreGameplayEffectExecute와 PostGameplayEffectExecute의 정확한 차이가 뭔지 햇갈립니다. 그리고 GE_AttackHitBuff 가 발동하면 Pre/PostGameplayEffectExecute 함수가 호출되는지 테스트를 해봤는데 제 생각과는 다르게 호출이 안됩니다. (Data.EvaluatedData.Attribute == GetAttackRadiusAttribute()) 이런식으로 조건문을 넣어서 디버깅을 했는데 전혀 들어오지를 않네요.GE_AttackHitBuff도 다른 GE와 마찬가지로 Pre/PostGameplayEffectExecute 함수에 들어와야 정상아닌가요? 3 . 중첩 버프 질문instant는 Base값을 변경하지만, 기간형은 Current값을 변경한다고 들었는데요. AttackRaius의 Base값이 50이고 Current값은 0 으로 시작해서, 공격할수록 Current에 +15씩 증가해 Base값을 직접 수정하지 않고 Current 값만 증가시켜서 어떻게 범위를 키우는 거죠? Base값은 아예 안쓰고 하나요? 내부적으로 어떻게 돌아가는지 좀 햇갈립니다. 그리고 Duration과 Stack 에 대해 다음과 같이 이해했는데 이게 맞을까요?Duration을 2초로 했을 때, 2초가 지나기 전에 공격해서 다시 한번 GE를 동작시키면 2초로 다시 리셋되고 스택이 쌓이는데, 2초를 놓칠경우 Current값이 처음으로 돌아와서 범위가 기본으로 리셋된다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
7강 GE로 NonPlayer의 어트리뷰트셋 값을 초기화시키는 것에 질문이 있습니다.
GE만 단독으로 동작시킬 때는 컨텍스트 핸들을 따로 만들어주고서 , 스팩핸들을 제작해주는데, 그에 반해 GA에서 GE를 동작시킬때는 스팩핸들만 제작해주는데, 그 이유가 GA가 이미 컨텍스트 핸들을 만들어줬기 때문일까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
7강 정리했는데 검토부탁드려요
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
5강 정리해봤는데 검토부탁드립니다.
간략하게 5강 실습내용들을 정리해봤는데 검토부탁드려요.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
4강의 CreateTask 함수 질문입니다,
CreateTask 함수가 C++과 다르게 BP에서는 호출 시 내부에서 자동으로알아서 ReadyForActivation함수를 호출해주네요.C++에서는 ReadyForActivation함수 호출 전에 맴버변수들을 초기화할 수 있지만BP에서는 이것이 제한될까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
2강에서 TimerAction함수 질문입니다.
주석으로 코드 설명을 적어놓았는데요.이게 맞을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
5.3 이후 버전 쓰시는 분들은 Granted Tags가 안나올때 해결방법
질문&답변 게시판에 이러한 글을 작성해서 죄송합니다.저는 5.5버전으로 공부중인데 강의 중 39분 쯤에 Granted Tags에 태그 추가하는 부분이 있었는데 5.3버전 이후부터는 없어가지고 저가 찾은 방법을 나중에 저 처럼 공부하시는 분들이 해당 부분에 막힐까봐 여기서나마 적고싶었습니다. 문제가 된다면 해당 글을 삭제하겠습니다.5.3 이후 버전에서는 Tags가 Components에 통합되면서 Component를 이용해서 추가해야합니다.5.3버전일 경우 Components - "Target Tags Gameplay Effect Component"를 추가해서 tag를 넣으시면 되고5.4,5.5버전일 경우 Components - "Grant Tags to Target Actor"를 추가해서 tag를 넣으시면 됩니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
SetWaitingOnAvatar함수의 호출 위치에 따라 영향을 주는지 궁금합니다.
50:24쯤에 Ability Task의 Activate 함수 작성 구간에서void UABAT_Trace::Activate() { Super::Activate(); SpawnAndInitializeTargetActor(); FinalizeTargetActor(); SetWaitingOnAvatar(); }로 하셨는데void UABAT_Trace::Activate() { Super::Activate(); SetWaitingOnAvatar(); SpawnAndInitializeTargetActor(); FinalizeTargetActor(); }이렇게 SetWaitingOnAvatar함수를 먼저 Task수행전에 호출해도 괜찮은지 궁금합니다.SetWaitingOnAvatar 함수를 호출이유가 해당 작업이 아직 안끝났다는걸 ASC에게 알려주기 위해 Waiting상태로 만든다고 들어서 이게 가능하다 생각되고 실제로도 돌려보니 별 다른점이 없어서 물어봅니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
2강 보고 요약 정리해봤는데 검토 부탁드립니다.
ASC_Actor : ASC 부착된 액터.GA : ASC_Actor 가 아닌 이곳에서 기능을 구현. Tag : ASC_Actor 와 GA의 연결다리 (의존성 약화) [ Tag 사용법 ]<1> 공용 Tag 헤더파일 선언. (ASC_Actor , GA 모두 보유) ㄴ 두 태그를 정의함 ( 1.기본태그 2.활성화 유무확인 태그)<2> " FGameplayTagContainer 생성자(기본태그) " 로 태그객체를 만듬.<3> TryActivateAbilitiyByTag(태그객체) 다음과 같이 호출해 2번 태그가 부착되는 동시에 기능이 돌아감.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
Gameplayability vs Gameplaycue
여러 계산식(방향 , 상태 체크 )이 들어간 hitreaction을 구현하려고 합니다. Gameplayability 과 Gameplaycue 중 어느 구현방식이 최적화와 서버 비용 절감에 도움이 될까요? GameplayAbility로 계산식을 구현하고 ability안에서 cue를 사용해 애니메이션을 실행시키는게 좋을까요? 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
콤보 애니메이션 몽타주의 MontageJumpToSection에 대하여
안녕하세요. 하나의 콤보 애니메이션 몽타주에서 섹션으로 점프하는 방식으로 강의 내용이 진행되고 있는데요. 강의 프로젝트 재확인하는 느낌으로 개인 프로젝트를 조금씩 진행하고 있는 중 콤보 공격을 넣기 위해 강의 내용따라 애니메이션 몽타주를 만들었습니다. JumpToSection 을 사용하게 되면 애님 몽타주 내부에서 해당 지점으로 바로 점프해버리다보니 점프 직전 프레임과 이후 프레임간의 모션 차이가 클 경우 상당히 눈에 띄더라구요. 그래서 각 콤보 공격의 단계를 개별 애니메이션 몽타주로 제작하고 다음 콤보 입력시 개별 애니메이션 몽타주 재생을 해봤는데 이 경우는 애니메이션 블렌딩이 되어 자연스럽게 이어지는것 처럼 보였습니다. 여기서 질문인데, JumpToSection 이 직전/직후 프레임간의 애니메이션 블렌딩이 불가능하다면 실제 프로젝트에서는 어떤 상황에서 사용하게 되는지 궁금합니다. 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
PossessedBy() 함수는 싱글플레이에서는 호출되지 않나요?
PossessedBy 함수가 서버에서만 호출된다면, 싱글플레이용 게임에서는 어느 위치에서 Character 의 ASC 에 PlayerState 의 ASC 를 대입하는게 적절할지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
CommitAbility 함수 관련 질문
안녕하세요 교수님.5.4.4 버전으로 강의를 듣고 있는데, 계속해서 Cost 옵션과 CoolDown이 적용되지 않아 이것저것 찾아보다가 ActivateAbility부분에 해당 코드가 있는것을 발견했습니다.if (!CommitAbility(Handle, ActorInfo, ActivationInfo)) { EndAbility(Handle, ActorInfo, ActivationInfo, false, true); return; }해당 코드를 넣고 난 후 정상적으로 cost와 cooldown이 적용되었습니다.해당 함수는 어떤 기능을 하는 함수인지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
가스 입력함수 AbilityLocalInputPressed() , 태그
교수님 안녕하세요.복습하려고 필요한 부분들만 보고 있습니다.궁금한게 있어서요. (질문해도되나요? ) 가스용 입력함수가 따로 있다고 들었는데,AbilityLocalInputPressed() 함수는 사용하는데 어떤 장단점이 있는지 아시나요? 아레나 플젝에서는 입력바인딩은 네이티브함수로 다 되있어서요.태그는 매틱마다 반드시 검사할수밖에 없을까요? 태그로 상태,조건을 하는데 너무 많이 쓰면 오버헤드가 생긴대서요. 아니면, 태그 사용을 어느정도까지 사용이 안전한지 디버깅이 될까요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
GA에서 Attribute를 가져올때 발생하는 C6011 Warning과 관련하여 질문드립니다.
안녕하세요 교수님.좋은 퀄리티의 강의를 제공해주셔서 정말 감사드립니다.저는 현재 언리얼 엔진 5.4.4, Visual Studio 2022 17.12.3 버전으로 강의를 수강하고 있습니다.다름이 아니고 "6강 : 캐릭터 어트리뷰트 설정"의 35분 즈음에 Source와 Target의 AbilitySystemComponent를 가져오고, 해당 ASC에서 AttirbuteSet을 가져오는 부분을 구현하던 도중, 초록색 줄이 나오면서 C6011 Warning이 발생하였습니다.https://learn.microsoft.com/ko-kr/cpp/code-quality/c6011?view=msvc-170이는 null포인터 역참조에 의한 경고임을 확인했습니다.근데, SourceASC의 경우 checked 함수를 통해서 점검하고 가져오기 때문에 null포인터가 발생할 수 없지 않나요? 아니면 check함수가 unreal에서만 사용하는 함수이기 때문에 C++은 이를 인지하지 못하여 저렇게 디레퍼런싱 경고를 띄워주는 것일까요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
[Part4-5강] ABGA_AttackHitCheck활성화가 안되는 문제
강좌를 따라하면서 동일하게 진행을 했는데 어째서인지 ABGA_AttackHitCheck::ActivateAbility Begin로그가 찍히지 않습니다. ABGA_AttackHitCheck의 생성자는 호출되는데 ActivateAbility가 호출되지 않는데요. 어느 부분을 체크해봐야 할까요?
주간 인기글
순위 정보를
불러오고 있어요