Unreal 게임 개발 온라인 학습 22

[2025-02-13 / Day 22] 게임 UI 설계와 시각 효과 및 사운드 효과 적용하기 (2/2)

UI 애니메이션 및 3D위젯 UI(체력 바) 구현하기4-2강에서는 게임 흐름에 맞춰 대략적인 UI를 만들어 봤다면이제 캐릭터의 체력이 3D 위젯으로 바 형태로 표시되게 하고게임 오버 이후 나타나는 UI의 애니메이션이랑 총점 등이 표시되게 구현을 하는 것이 목표다.UI 애니메이션UI 애니메이션은 Main UI에서 작동된다.Main UI 만드는 동안 건드린 것들블로그를 작성하는 시점에서는 강의에서 들었던 내용에서 수정을 많이했기 때문에 최종 결과물이 이렇게 다르게 나온다.먼저 처음에 게임오버 메뉴를 따로 안만들고 메인 메뉴에서만 모든 작업을 처리하기로 했다.그래서 메인 메뉴에서는 저기 게임오버 텍스트와 총점 텍스트가 안보여야 하니..여기서, GameOver 텍스트를 Hidden으로 안 보이게 설정했다.UI ..

[2025-02-10 / Day 21] 게임 UI 설계와 시각 및 사운드 효과 적용하기 (1/2)

UI 위젯 설계와 실시간 데이터 연동하기이번에는 4주차 1강 내용을 정리했다.1~3주차 강의를 들으며 게임의 틀을 만들었다면 이번에는 게임을 어떻게 더 꾸며서실제 게임처럼 만들지 고민해보는 시간이었다.HUD라는 곳에 실시간 정보를 어떻게 반영할 지 공부했다.HUDHUD는 보통 게임에 보면 미니맵이랑 캐릭터의 체력, 마나, 스태미나 같이 표시되는기본적인 UI들을 뜻한다. Heads-Up-Display의 약자다.즉, 사용자에게 정보를 알려주기 위한 화면이라고 보면 된다.Heads Up은 직역하면 "머리를 들어"라는 뜻인데 실제로는 고개를 들고 조심히 앞을 보라는 의미를 담아 "주의해!" 또는 "미리 알려줄게!"라는 뜻이다.그냥 머리(고개)를 들면 바로 볼 수 있는 디스플레이라고 생각해야겠다.HUD로 뭘 할 ..

[2025-02-07 / Day 20] 아이템 스폰 & 캐릭터 체력, 점수 관리 시스템 & 게임 루프 설계

그동안은 아이템 클래스 구조 설계와 충돌 이벤트를 활용해 획득 아이템을 구현했다. 하지만 실제 테스트할 때는 아이템을 하나하나 에디터에 꺼내줘서 테스트를 했다.그 부분을 아이템이 코드 부분에서 자동 스폰할 수 있게 만들고각각의 레벨에 난이도마다 아이템이 종류와 개수가 다르게 소환되도록 할 것이다.그리고 체력 및 점수 관리 시스템을 만들어 아이템을 먹었을 때실제 게임의 로그상으로 표시가 되도록 만들어 볼 것이다.아이템 스폰 및 레벨 데이터 관리하기3강 내용을 정리했다. 여기서는 어떻게 아이템에 스폰 확률을 지정할 지, 스폰 범위를 어떻게 설정할 지에 대한 전체적인 내용이 나온다.+혹시나 까먹을까봐 레벨 옮기는 방법을 적어뒀다.레벨 옮기기이런식으로 레벨을 옮길 수 있다.레벨 다시 설정언리얼 에디터 창에서 편..

[2025-02-06 / Day 19] 아이템 클래스 설계 & 충돌 이벤트로 획득 아이템 구현

앞으로는 일기 형식으로 블로그를 써보아야겠다.내일배움캠프에서 코딩 강의를 듣는다면 매일 블로그를 작성해야 한다.그 중 선생님들이 수강생들이 작성한 블로그 중 몇몇 우수한 블로그들을 선정해"이 달의 우수 블로그" 같이 만들어준다.그 분들의 블로그를 보고나서 앞으로는 일기 형식으로 적는 게 더 기억에 남겠다고 느꼈다.아 그리고 잘하는 분들이 너무 많아서 비교하지 않으려 해도자꾸 마음속으로 비교가 되서 나를 기준으로 비교하기 위해어제의 나보다 더 나아진 점을 적기로 했다.오늘은 언리얼 3주차 강의 1,2강을 정리했다.강의를 들으며 진행한 것언리얼에서 아이템 클래스 구조를 설계하고 클래스를 작성캐릭터와 아이템끼리 Overlap 이벤트가 일어났을 때 캐릭터에 아이템 효과 적용간단하게 동전(큰 동전, 작은 동전),..

[2025-02-04 / Day 18] 캐릭터 컨트롤 및 기본 애니메이션 구현하기(2/2)

캐릭터 동작 구현과 입력 처리들어가기 전.. 배운 것들 정리1. GameMode 클래스Character, Player Controller 클래스를 관리.그 외 여러가지 클래스들도 관리.2. Character 클래스월드의 PlayerStart 위치에 스폰됨.3. Player Controller 클래스사용자 입력과 Character를 연결함.캐릭터에 빙의하는 역할.4. IMC, IA 입력 매핑(Enhanced Input System)Local Player - Local Player Subsystem - IMC 활성화 Local Player는 사용자, 플레이어 그 자체라고 보면 된다.즉, 사용자가 플레이하는 캐릭터를 말한다.Local Player Subsystem은 Local Player가 갖고 있는 IMC를..

[2025-02-03 / Day 17] 캐릭터 컨트롤 및 애니메이션 구현하기(1/2)

Character 클래스 활용해 캐릭터 구현게임을 플레이하려면 캐릭터가 필요하다. 그 캐릭터의 실체를 만드는 것을 해보았다.우선, 게임의 캐릭터를 만드려면 GameMode 클래스와 Character 클래스에 대한 이해가 필요하다.게임에 필요한 핵심 클래스 종류GameMode 클래스게임 클래스들의 총괄 관리자 역할.아래에서 나오는 것들을 총괄/관리하는 클래스.게임을 실행하면 PlayerStart 위치에 캐릭터가 스폰되게 한다.1. 플레이어 캐릭터Pawn 클래스 or Character 클래스위 두 클래스가 액터 클래스를 상속 받기 때문에 액터의 라이프사이클 함수가 포함되어 있다.Pawn 클래스는 캐릭터 클래스 중 최상 클래스다.Character 클래스에 비해 기본 컴포넌트 밖에 없기 때문에복잡한 자동차, 기..

[2025-01-24 / Day 16] 리플렉션 시스템 활용

리플렉션 시스템리플렉션 시스템이란?블루프린트와 C++을 서로 연동시켜서 언리얼에서 C++ 클래스 구현할 때자연스레 언리얼 에디터와 Visual Studio를 왔다갔다하며 구현할수 있도록도와주는 시스템이다.블루프린트블루프린트가 뭐였더라?C++ 코드를 언리얼에서 노드 형태로 감싸 프로그래밍을 모르는 사용자도쉽게 로직을 짤 수 있도록 도와주는 도구다.단점은 이렇게 노드가 많아지면 선이 복잡해질 수 있다는 것이다.하나의 이벤트 그래프 안에 노드들이 들어가 있기 때문에 노드가 많아지면 많아질 수록디버깅할 때나 이벤트 그래프 창을 띄웠을 때 컴퓨터가 버벅되게 된다.C++ 코드를 호출해서 불러오는 형태기 때문에 1번의 작업이 더 있어서C++ 코드보다 블루프린트는 로됭 속도가 느리다.그래서 블루프린트는 가볍고 빠르게 ..

[2025-01-21 / Day 15] Actor 클래스 #2

Actor의 라이프 사이클 이해언리얼에서 액터를 제대로 활용하려면 액터가 생성되는 시점, 활성화 되는 주기, 액터가 소멸되는 시점을 알고 있어야 한다.디버깅의 제일 기본이 되는 로그(Log)로 그 시점을 판단할 수 있다.UE_LOG 정리 기억하면 좋은 것void AItem::BeginPlay(){ Super::BeginPlay(); UE_LOG(LogTemp, Warning, TEXT("로그 테스트"));}여기서 Super는 자식 클래스에서 부모클래스에 접근할 때 쓰는 키워드다!로그로그 비우기에디터의 출력 로그에서 우클릭 후 로그 비우기를 누르면 깔끔하게 로그가 비워진다.카테고리 선언괄호 안의 첫번째 인자는 카테고리의 이름,두번째 인자는 로그의 심각도(예: Warning, Display 등),세번째..

[2025-01-20 / Day 14] Actor 클래스 #1

액터 클래스 생성 및 삭제ArtResource 예제 프로젝트 셋업이렇게 기존의 언리얼 프로젝트 공간에 폴더로 추가해주었다.이런식으로 에셋들이 프로젝트 형태로 들어가 있다.언리얼 엔진에서는 에셋들이 서로 참조하거나 연관되어 있는 경우가 많다.만약 그 프로젝트 구조가 깨지게 되면 소스들이 깨지는 경우가 많다.그 구조를 유지하며 에셋을 옮기기 위해 프로젝트 형태로 배포를 했다고 한다.추가 후에 에픽 게임즈 런처를 재시작해보니 프로젝트가 추가된걸 확인할 수 있었다.Migrate(이주) 기능 이용Migrate 기능은 기존 프로젝트에 있던 에셋들이 묶여 있는 그 관계의 구조를 유지하면서 다른 프로젝트로 에셋을 옮길 수 있는 기능이다.이주 전이주 후이렇게 이주가 끝나면 에셋이 다른 프로젝트로 복사되는게 아니라 실제로..

[2025-01-20 / Day 13] 언리얼 C++ 개발 환경 준비 및 빌드 프로세스 이

언리얼 C++ 개발환경 준비빌드 오류 감소를 위한 읽기 전용 체크 해제이렇게 UE_(현재 버전) -> Engine 폴더에서 속성을 누르고 읽기 전용을 체크 해제하면빌드 오류가 조금이라도 덜 생긴다고 한다.Visual Studio 연동 설정언리얼 에디터에서 상단 바에 편집 -> 에디터 개인설정으로 들어간다.여기서 일반 탭의 소스 코드를 선택하면 이런 창이 뜬다.여기서 보통 Visual Studio로 설정되어 있어 최신버전을 쓰게 되는데선생님은 Visual Studio 2022로 설정하라고 하셨다.연동 후 마주치는 수많은 코드 파일들언리얼 엔진과 Visual Studio를 연동하면 언리얼 엔진의 전체 소스 코드를 들고와서이렇게 많은 코드들을 볼 수 있다.엔진의 소스나 내부 API들을 직접 수정하고 커스터마이..