언리얼 로딩 구현하기아래의 글은 언리얼에서 로딩 화면 구현에 대한 글입니다.로딩을 구현하는 방법은 여러가지가 있지만 이 글은 그중 한가지를 보여주는 글입니다.맵 로드가 시작되기 전에 로딩 화면을 설정하고, 최소 2초 동안 표시되도록 설정했습니다.로딩 화면은 LoadingWidget으로 보여지며, 맵이 로드된 후 로딩 화면을 종료합니다.언리얼 로딩 구현하기 cpp UGameInstance는 게임을 종료하거나 맵을 전환할 때도 유지됩니다.이러한 특징으로 인해 맵 전환시에도 필요한 데이터를 유지하거나 로딩 화면을 표시하는 등의 작업에도 좋다고 생각해서 SlashGameInstace를 하나 만들어서 사용했습니다. 아래 코드들을 사용하기 위해서는 모듈을 추가해야 합니다. "MoviePlayer"USlashGame..
언리얼 위젯 애니메이션언리얼 블루프린트에서 Widget Animation을 만들고 Cpp에서 사용하는 방법에 대한 글입니다.위젯 애니메이션 만들기 Blueprint.저는 보통 블루프린트에서 위젯과 애니메이션을 먼저 만듭니다.순서는 이렇게 되겠네요.1. 위젯 만들기 : 애니메이션을 적용할 위젯을 만듭니다.2. 애니메이션 만들기 : 애니메이션 작업을 시작하기 위해 빈 애니메이션을 만듭니다.3. 위젯 요소 선택하기 : 애니메이션을 적용할 위젯 요소(텍스트, 버튼 등등)를 선택합니다.4. 열쇠모양을 누르기 : 이걸 눌러놓으면 Properties가 변경될 때 자동으로 Key를 추가합니다.5. 프레임에 Key 추가 : 타임라인에 Key를 추가하여 애니메이션 동작을 설정합니다.아래 사진은 예시로 보여드리는 사진입니다..
언리얼 부서지는 오브젝트언리얼5에서 부서지는 오브젝트를 만드는 방법에 대한 내용입니다.Geometry CollectionFracture Mode를 선택하고 New를 눌러줍니다.이름 설정하고 저장하면 Geometry Collection이 생성됩니다.생성된 Geometry Collection을 선택하고 다양한 Fracture설정 중에서 Planar를 골라보겠습니다.이후 Fracture Hierachy를 들어가서 0 으로 되어있는 SM_Claypot_01a를 눌러줍니다.여기가 잘리겠구나 라는 생각이 들도록 만드는 무언가가 나타납니다.아래 사진에서는 항아리 중간에 생겼네요.Fracture을 눌러 줍니다.대충 이런식으로 0 밑에 두개가 생겼습니다.이제 이걸 위에서 떨어뜨려보면!아까 설정한 부분으로 두조각이 되는것..
언리얼 RPG 프로젝트 2 C++GAS(GamePlay Ability System)프레임워크를 사용해보고 싶어서 사용해 봤습니다.(GAS에 대한 자세한 내용은 아래.)GAS를 사용하는데 RPG가 제일 맞는 것 같았습니다.게임에 대해.개발 언어: C++, Blueprint개발 엔진: Unreal 5.4개발 환경(실행 환경): Window 11코드.깃허브 주소.https://github.com/ykarr/RPG_Blade_1.git GitHub - ykarr/RPG_Blade_1Contribute to ykarr/RPG_Blade_1 development by creating an account on GitHub.github.com기능.캐릭터.-Attribute처음 시작할 때 동기적으로 데이터를 가져와서 A..
언리얼 RPG 프로젝트 1 C++언리얼 엔진을 처음 접하며 만든 첫 프로젝트로 기억합니다.당시 언리얼 엔진에 대해 전혀 알지 못했기 때문에, Unreal Engine의 기본적인 사용법과 C++을 활용한 게임 개발의 핵심 요소를 배우는 것이 목표였습니다.게임에 대해.개발 언어: c++, blueprint개발 엔진: unreal5개발 환경(실행 환경): window 10코드.깃허브 주소:https://github.com/ykarr/RPG_Slash_1.git GitHub - ykarr/RPG_Slash_1Contribute to ykarr/RPG_Slash_1 development by creating an account on GitHub.github.com기능.캐릭터.1. 상태.캐릭터의 상태를 체계적으로 ..
언리얼 멀티플레이 FPS C++멀티플레이 게임에 대해 공부하기 위해 만든 프로젝트입니다.멀티플레이 FPS를 개발하면서 Steam이나 Lan매칭을 위한 멀티플레이 플러그인을 만들어서 사용했습니다.처음에는 그냥 멀티플레이 FPS를 C++로 만들면서 공부나 해볼까 하면서 진행한 프로젝트였는데 이 프로젝트를 진행하면서 생각보다 멀티플레이 게임을 만들때 생각해야되는 것이 많구나 하는 것을 느낀 프로젝트였습니다.프로젝트.개발 언어 : c++ & 블루프린트(약간)개발 엔진 : Unreal5.4개발 환경(실행 환경) : 윈도우 11. 멀티플레이 FPS 코드(멀티플레이 플러그인 포함).https://github.com/ykarr/MultiFPS GitHub..
언리얼 호러게임 프로젝트 C++ 이 글에 나오는 호러게임은 언리얼을 공부하던 초반에 만든 프로젝트입니다.그 당시 언리얼 엔진의 기능에 익숙하지 않았고, C++에 더 익숙해지기 위해 개발을 시작했습니다.그래서 특별한 아이디어보다는 공포게임에서 흔히 볼 수 있는 요소들을 우선적으로 구현해보았습니다.공포게임은 스토리와 레벨 디자인이 가장 중요하다고 생각합니다.이 부분은 제가 자신이 없어서 프로젝트를 중단하게 되었습니다.나중에 특별하게 추가할 수 있는 요소가 생각나면 나중에 다시 개발할 계획이지만, 이 프로젝트를 이어서 계발하기보다는 처음부터 다시 시작할 생각입니다.게임에 대해.개발 언어 : C++개발 엔진 : Unreal 5.1 (현재는 5.4..
언리얼 인벤토리 플러그인 심심해서 만드는 중인 인벤토리 플러그인입니다.C++로 제작하였고, 거의 다 만들었지만 아직 미완입니다.앞으로 추가하려고 생각하고 있는것.1. QuickSlot 키보드로 사용할 수 있도록 하기.2. 장비창 부분 추가.3. 아이템 사용을 EffectActorClass를 추가해서 사용.4. 인벤토리 드래그 드롭으로 이동.완성한 부분.1. 아이템 저장(Stack가능한 아이템, Stack불가능한 아이템.)2. 아이템 버리기.3. 아이템 사용.4. 아이템 위치 변경(Swap)5. 아이템 툴팁.6. QuickSlot 구현.7. UI 구현(장비창, 인벤창, QuickSlot)8. ItemBase, ItemActor 구현.(ItemBase는 아이템 정보 저장소 같은 느낌.)코드 압축.UI에 사용..
던전 생성언리얼에서 절차적으로 던전을 생성하기 위해 작성한 코드입니다.작동은 하지만 미완성입니다.간단한 설명.1. Main Room을 생성하고, Arrow List(ChildrenArrow)를 가져옵니다.2. 'ChildrenArrow'에서 랜덤으로 Arrow를 선택합니다.3. 선택한 Arrow의 위치에 Room을 스폰합니다.4 스폰된 방이 겹치는지 확인합니다:4.1 충돌이 발생하면 방을 삭제하고 다른 Arrow로 시도합니다.4.2 충돌이 발생하지 않으면 방을 유지합니다.5. Room생성에 성공하면 Room의 Arrow를 'ChildrenArrow'에 추가합니다. 이렇게 Room Num을 만족하거나 Arrow없어질 때까지 3-5의 과정을 반복합니다.실행실행한 결과는 다음과 같습니다.방은 두개만 넣어서 실..
Unreal GameplayTag최근 Unreal프로젝트를 만들면서 GameplayAbility를 사용하면서 GameplayTag를 많이 사용해 보았다.그러면서 에디터 내에서 태그를 추가하고 관리하는 방법이 아닌, 따로 파일을 만들어서 코드 상태로 태그를 선언하는 방법을 사용해보았다.따로 에디터 내에서 태그를 추가하는 방식이 아닌, 파일을 만들어서 GameplayTag를 추가하고 관리하는 방식이 C++에서 태그를 사용할 때 꽤 편하다는 것을 느낄 수 있었다.1. 컴파일 타임에 확인할 수 있어 잘못된 태그를 쉽게 찾아낼 수 있었다.2. 자동완성 기능을 사용해 오타 없이 빠르게 작성해서 사용할 수 있었다.이 외에도 장점이 더 있지만, 개인적으로는 이것들이 가장 크게 느껴졌다. 개인적으로 이렇게 느꼈다는 것이..
문제발생.언리얼에서 플러그인을 제작하면서 플러그인 쪽에서 선언한 함수가 프로젝트에서 블루프린트로 호출했을 때 노출되지 않는 문제가 발생했습니다. 이 부분은 오류가 아니었고, 플러그인에 대해 잘 몰랐던 내용이라 해결방법을 찾아내기 어려웠습니다.해결방법 찾는중.UFUNCTION(BlueprintCallalbe) 설정을 했음에도 함수가 노출되지 않는 것을 보고 당황했습니다.프로젝트 안에 비슷하게 만들어서 확인해 보니 잘 되는것을 확인했고, 이로 인해 플러그인 문제라는 것은 알았지만 해결방법을 몰라서 열심히 삽질을 시작했습니다. UCLASS에 타입 설정을 해보기도 하고, 빌드쪽 문제인가 싶어 Binaries, Intermediate, Saved, sln (플러그인쪽도 포함) 삭제한 후 다시 빌드해보는등 이것말고..
Online Subsystem steam언리얼 엔진에서 스팀과 연동된 네트워크 기능을 효율적으로 구현할 수 있도록 지원해 주는 플러그인입니다.이 글에서는 언리얼에서 Steam플러그인을 사용하기 위한 기본적인 설정만을 작성할 겁니다.플러그인 활성화.에디터로 들어가서 Online Subsystem steam을 검색해서 플러그인을 활성화해 줍니다.아래 사진처럼 체크해 주면 에디터가 다시 시작하면서 활성화됩니다.프로젝트 파일로 들어가서 프로젝트명.Build.cs로 들어갑니다.여기에 "OnlineSubsystemSteam", "OnlineSubsystem"을 추가합니다.플러그인 추가로 오류가 생길 수 있으므로 모듈을 추가한 후 에디터로 들어갑니다.이후 Tools->Refresh Visual Studio를 눌러 p..