Category 14

[UE5] GAS / AbilitySystemComponent 겉핥기

GameplayAbility와 관련된 클래스, 기능등을 사용하기 위해서 먼저 플러그인을 추가해야한다. 플러그인에서 Ability를 검색하면 GameplayAbilities가 있는데 체크 후 지금 재 시작을 눌러 에디터를 실행해주자. C++ 클래스를 새로 추가해보면 AbilitySystemComponent가 검색에 뜨는 것을 볼 수 있다. 또한 "프로젝트명.Build.cs" 파일에서 PrivateDependencyModuleNames.AddRange를 통해 사용할 모듈을 추가해주어야 한다. 추가하지 않으면 아래와같은 에러를 뱉어낸다. AbilitySystemComponent https://docs.unrealengine.com/5.0/en-US/gameplay-ability-system-component-..

[UE5] GAS / GameplayAbility 게임플레이 어빌리티

GameplayAbility https://docs.unrealengine.com/5.0/ko/using-gameplay-abilities-in-unreal-engine/ 게임플레이 어빌리티 Gameplay Ability 클래스 개요입니다. docs.unrealengine.com 게임에서 어떠한 능력, 행동 등 다양한 것을 어빌리티로 정하고 그걸 GameplayAbility로 구현할 수 있다. 언리얼 Lyra 프로젝트에서는 LyraAbilitySet.h에 데이터화 하여 관리하는 방식을 택한것 같은데, 이건 아직 보는 중이니 넘어가겠다. Lyra에서는 Jump를 GameplayAbility로 구현해두었다. 게임플레이 어빌리티는 자체 리플리케이트도 가능하고 RPC 호출도 가능하다. 단, 리플리케이트를 사용하..

[UE5] GAS / GameAbilitySystem 겉핥기(feat. Lyra)

언리얼5에 들어와서 유독 GAS에 대해 강조를 하는 영상을 봤다. 언리얼 엔진팀이 많은 걸 시도하는 것 같아서 메타 휴먼, 퀵셀브릿지도 사용해보고, 웨비나에서 레벨, 라이트 등의 강좌를 진행하기에 매주 화요일 열심히 들어보았다. 다시 보기가 가능하다는 사실을 알고부터는 조금 대충 보기도 했다. 다시 보면 되니까.. 언리얼에서 Lyra라는 샘플 프로젝트를 공유해주고 있는데 샘플 이상의 가치를 한다고 해서 들여다 보고 있다. 열어보면 GameAbilitySystem을 활용해서 구현되어 있는데 이 GameAbilitySystem을 어떻게 사용하고 있는지 하나씩 다 뜯어보기엔 시간이 좀 걸릴 것 같다.. GAS 의 장점은 아마 데디를 사용하는 멀티게임의 경우 데디를 GAS라는 프레임워크 활용을 통해 개발자가 덜..

[UE5] 메타휴먼 캐릭터 애니메이션 리타깃팅 하기

개발 환경 : UE5 - UE5.0.3 언어 : C++ 어제까진 몰랐는데 나는 언리얼 5.0.3을 쓰고 있었나보다.. 어제 포즈가 마음에 들지 않아서 수정을 해보려다 캐릭터에 문제가 생겼다. 부모 클래스만 바꿔서 이것저것 세팅해봤는데 포즈만 바뀌고 애니메이션은 실행되지 않았다. 이 포즈대로 그냥 이동하고, 점프도 이대로함.. 부모 클래스가 액터였을 땐 괜찮다가 바꾸니까 왜 문제가 되는걸까.. 뭐가 문제인가 싶어서 퀵셀브릿지에 메타휴먼 프리셋만 받아서 뭐가 다른가 찾아봤다. 퀵셀 브릿지를 열어서 Nasim 이라는 프리셋을 다운받고 Add를 눌러서 프로젝트로 가져왔다. 프리셋으로 받은 메타휴먼도 내가 만든 것과 다를게 없었다. 부모클래스는 Actor이기 때문에 따로 콜리전 세팅 같은 것도 없다. 그래서 메타..

개인 프로젝트 2023.03.23

[UE5] MetaHuman Creator로 캐릭터 만들기 및 언리얼 적용하기

개발 환경 UE5 : ver 5.1.1 언어 : c++ 플러그인 : Quixel Bridge , MetaHuman Creator 언리얼 5에 내장된 퀵셀 브릿지에 들어가면 메타휴먼이라는 프리셋을 사용할 수 있다. START MHC를 클릭하면 홈페이지로 연결돼서 로그인 하라는 창이 뜨던데, 사용하기 위해서는 로그인을 해야하니 에픽게임즈와 연동해서 로그인을 했다. 잠깐 기다려달라는 문구가 뜨고 기다리면 캐릭터를 선택해서 선택 생성을 할 수 있게 되어있다. 조합을 해서 만들었는데 한정적인 상태로 만드는 것도 있고, 그렇게 미적 감각이 좋은 편은 아니라서 일단 클릭 몇 번만으로 캐릭터 외형을 만들어 보았다. 여자 캐릭터를 만들려고 레이어드 컷 머리를 선택했는데 남자 캐릭터처럼 생겨서 남캐로 하기로 했다... 다..

개인 프로젝트 2023.03.22

[UE5] 언리얼 프로퍼티 시스템 ?

UPROPERTY(), UCLASS() ,USTRUCT() ,UENUM() ,UFUNCTION() 언리얼 C++ 작업을 하면서 많이 봤던 UCLASS, UPROPERTY. 사실 UPROPERTY를 사용해서 지정자를 넣어주면 블루프린트에서 사용할 수 있다. 라고만 생각해왔던 때가 있었다. 처음 언리얼을 접했을 때 튜토리얼 따라하기, 구글링으로 찾아서 방법 따라하기 등을 많이 했었기에 그냥 그런가보다 하고 생각했다. 하지만 이제는 제대로 알고 써야할 때가 온 것 같아 조금씩 찾아보며 공부하고 있다. 언리얼 프로퍼티 시스템, 언리얼 리플렉션, 리플렉션 시스템 등으로 많은 정보를 찾을 수 있었다. 언리얼에서 말하는 프로퍼티 시스템이 뭘까? 공식 문서를 찾아서 봤을 때, 사실 번역이 이상한건지 말이 어려운건지 1..

[UE5] UScrollBox에 버튼이 들어있는 위젯 스크롤이 안될 때

UMG를 만들어서 확인하는데 ScrollBox 혹은 UListview와 같은 스크롤 기능이 있는 위젯에서 갑자기 스크롤이 되지 않는 경우가 생겼다. 마우스 휠을 움직이면 스크롤이 되는데 마우스 클릭후에 움직이려니 간헐적으로는 스크롤이 되는데, 계속 스크롤이 되지 않는 현상이 발생해서 원인을 찾아봤다. 원인은 버튼이 클릭되었음을 인지 하기 위한 이벤트 처리와, 스크롤박스의 스크롤이 되기 위한 조건 응답이 충돌하기 때문이었다. Button detail에 Advanced라는 카테고리에서 Click Method, Touch Method 세팅을 알맞는 방법으로 바꾸었더니 해결됐다. 자세한 내용은 아래에.. 내가 만들고 있는 위젯은 상품의 종류를 나열해 보여줄 수 있는 리스트다. 아직 리소스도, UI 구성도 없지만..

UnrealEngine/UMG 2023.01.26