질문&답변 게시판에 이러한 글을 작성해서 죄송합니다. 저는 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를 넣으시면 됩니다.
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상태로 만든다고 들어서 이게 가능하다 생각되고 실제로도 돌려보니 별 다른점이 없어서 물어봅니다.
ASC_Actor : ASC 부착된 액터. GA : ASC_Actor 가 아닌 이곳에서 기능을 구현. Tag : ASC_Actor 와 GA의 연결다리 (의존성 약화) [ Tag 사용법 ] <1> 공용 Tag 헤더파일 선언. (ASC_Actor , GA 모두 보유) ㄴ 두 태그를 정의함 ( 1.기본태그 2.활성화 유무확인 태그) <2> " FGameplayTagContainer 생성자(기본태그) " 로 태그객체를 만듬. <3> TryActivateAbilitiyByTag(태그객체) 다음과 같이 호출해 2번 태그가 부착되는 동시에 기능이 돌아감.
여러 계산식(방향 , 상태 체크 )이 들어간 hitreaction을 구현하려고 합니다. Gameplayability 과 Gameplaycue 중 어느 구현방식이 최적화와 서버 비용 절감에 도움이 될까요? GameplayAbility로 계산식을 구현하고 ability안에서 cue를 사용해 애니메이션을 실행시키는게 좋을까요? 궁금합니다.
안녕하세요. 하나의 콤보 애니메이션 몽타주에서 섹션으로 점프하는 방식으로 강의 내용이 진행되고 있는데요. 강의 프로젝트 재확인하는 느낌으로 개인 프로젝트를 조금씩 진행하고 있는 중 콤보 공격을 넣기 위해 강의 내용따라 애니메이션 몽타주를 만들었습니다. JumpToSection 을 사용하게 되면 애님 몽타주 내부에서 해당 지점으로 바로 점프해버리다보니 점프 직전 프레임과 이후 프레임간의 모션 차이가 클 경우 상당히 눈에 띄더라구요. 그래서 각 콤보 공격의 단계를 개별 애니메이션 몽타주로 제작하고 다음 콤보 입력시 개별 애니메이션 몽타주 재생을 해봤는데 이 경우는 애니메이션 블렌딩이 되어 자연스럽게 이어지는것 처럼 보였습니다. 여기서 질문인데, JumpToSection 이 직전/직후 프레임간의 애니메이션 블렌딩이 불가능하다면 실제 프로젝트에서는 어떤 상황에서 사용하게 되는지 궁금합니다. 감사합니다.
안녕하세요 교수님. 5.4.4 버전으로 강의를 듣고 있는데, 계속해서 Cost 옵션과 CoolDown이 적용되지 않아 이것저것 찾아보다가 ActivateAbility부분에 해당 코드가 있는것을 발견했습니다. if (!CommitAbility(Handle, ActorInfo, ActivationInfo)) { EndAbility(Handle, ActorInfo, ActivationInfo, false, true); return; } 해당 코드를 넣고 난 후 정상적으로 cost와 cooldown이 적용되었습니다. 해당 함수는 어떤 기능을 하는 함수인지 궁금합니다.
교수님 안녕하세요. 복습하려고 필요한 부분들만 보고 있습니다. 궁금한게 있어서요. (질문해도되나요? ) 가스용 입력함수가 따로 있다고 들었는데, AbilityLocalInputPressed() 함수는 사용하는데 어떤 장단점이 있는지 아시나요? 아레나 플젝에서는 입력바인딩은 네이티브함수로 다 되있어서요. 태그는 매틱마다 반드시 검사할수밖에 없을까요? 태그로 상태,조건을 하는데 너무 많이 쓰면 오버헤드가 생긴대서요. 아니면, 태그 사용을 어느정도까지 사용이 안전한지 디버깅이 될까요?
안녕하세요 교수님. 좋은 퀄리티의 강의를 제공해주셔서 정말 감사드립니다. 저는 현재 언리얼 엔진 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++은 이를 인지하지 못하여 저렇게 디레퍼런싱 경고를 띄워주는 것일까요?
강좌를 따라하면서 동일하게 진행을 했는데 어째서인지 ABGA_AttackHitCheck::ActivateAbility Begin로그가 찍히지 않습니다. ABGA_AttackHitCheck의 생성자는 호출되는데 ActivateAbility가 호출되지 않는데요. 어느 부분을 체크해봐야 할까요?
언리얼에서 어빌리티 시스템을 이용하여 구현중입니다. 플레이어가 도끼를 휘둘러 몬스터가 넉백되는 시스템을 구현할때 플레이어가 도끼를 휘두르는 것을 GA, AT, TA로 구현했습니다. (광역 공격) 현재 상황은 TA에서 AddForce로 몬스터를 넉백처리 해주는데, AddForce로 몬스터를 넉백하는 것을 몬스터의 넉백 어빌리티로 구현하는것이 좀 더 괜찮은 코드일까요? 아니면 기존처럼 TA에서 몬스터의 넉백을 구현하는 것이 나을까요...? 몬스터에게 ASC를 생성하고 어트리뷰트까지 달아준 뒤 넉백 어빌리티를 만드는거는 너무 과한 코드일까라는 생각이 들어서요.
PlayerState 클래스의 생성자에 ASC->SetIsReplicated(true);를 추가하고 캐릭터의 SetCharacterControl 함수에 if ( ! IsLocallyControlled ()){ return ;}를 추가한 뒤 캐릭터의 PossessedBy 함수에 SetupGASInputComponent();를 넣었는 데 이걸로는 공격 어빌리티가 완전히 동기화되지는 않더라고요 서버역할도 하는 클라이언트(A) 에서 공격키를 누르면 다른 클라이언트(B) 에서 동기화되는데 클라이언트(B)에서 공격키를 눌렀을 때는 아무일도 일어나지 않습니다. OnRep_PlayerState 함수 안에서도 어빌리티를 등록해줘야 하는 걸까요?
새로운 환경에서 GAS를 실습하고자 프로젝트를 하나 새로 파서 GAS시스템을 적용하고자 하였습니다. 처럼 Gameplay관련 모듈을 넣고 빌드를 했는데 와 같이 관련 모듈이 나타나지 않는 상황입니다. 세팅시 추가적으로 해야할 일이 있을까요?? 강의 항상 잘 듣고있습니다. 감사합니다.
C4067 전처리기 지시문 다음에 예기치 않은 토큰이 있습니다. 줄 바꿈 문자가 필요합니다. C4668 '__has_feature'은(는) 전처리기 매크로로 정의되어 있지 않으므로 '#if/#elif'에 해당하는 '0'으로 바뀝니다. MSB3073 ""C:\Program Files\Epic Games\UE_5.4\Engine\Build\BatchFiles\Build.bat" ArenaBattleEditor Win64 Development -Project="C:\Users\Runner\Downloads\UnrealGAS1-10\UnrealGAS1-10\ArenaBattleGAS.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). 안녕하세요, 강의 자료 깃허브를 통해 브랜치 10 의 프로젝트를 다운 받아 열어보려고 하는 데 빌드가 되지 않아 프로젝트 실행조차 되지 않고 있습니다. 아래에 해결을 위해 시도한 내용들도 함께 작성하니 도움 부탁 드립니다. 새해 복 많이 받으세요.^^ <시도한 내용들> Binaries 삭제 후 Generate, Visual Studio에서 리빌드/빌드 -> MSB3073 오류 발생 uproject에서 VisualStudioTools 플러그인 확인 후 1번 과정 재진행 -> 해당 플러그인이 없음을 확인했으나 여전히 MSB3073 오류 발생 언리얼 마켓플레이스(Fab)에서 Visual Studio Integration Tool 다운 후 1번 과정 재진행 -> uproject에 VisualStudioTools 플러그인이 존재했으나 여전히 MSB3073 오류 발생 다른 브랜치로 다운 받은 프로젝트 실행 -> 브랜치 1, 2 등 다른 브랜치의 프로젝트로 다운 받아 실행해도 MSB3073 오류 발생