언리얼5-19 C++ <장애물 피하기(5) - 마무리[2]>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 11. 21. 21:40언리얼5-19 C++ <장애물 피하기(5) - 마무리[2]>

지난 글인 언리얼5-18 C++ 에서 5번, 위 아래로 움직이는 발판밟고 이동하는 부분까지 제작해보았다.  이번 글에서는 6번, 회전하고 있는 기다란 발판을 밟고 이동할 수 있도록 제작해보자  콘텐츠 브라우저에서 [C++ Classes > AdventureTrap] 폴더에서 Obstacle C++ Class에 우클릭하고 이 클래스를 기반으로 하는 블루프린트를 하나 생성한다  이름은 BP_Obstacle5로 한 후에 생성해보자  발판의 역할을 할 메시를 [Content > EnvironmentPack1 > Meshes > EnvironmentPack_1] 폴더에서 찾아보자(다른 메시를 변형해서 사용해도 되지만 간단하게 SM_Bridge_01 메시를 사용하였다)  SM_Bridge_01 메시를 끌어다 놓고 ..

언리얼5-18 C++ <장애물 피하기(4) - 마무리[1]>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 11. 21. 21:39언리얼5-18 C++ <장애물 피하기(4) - 마무리[1]>

이번에는 장애물들을 더 다양하게 배치하여 목표지점에 도착하는 것을 방해하도록 제작할 것이다. 레벨을 디자인하는데 있어서 단순히 이동과 회전만 이용하면 장애물 맵이라고 할 수 없을 것이다. 이때까지는 가장 기본이 되는 이동과 회전을 통해 장애물을 배치해보았지만,이를 활용해서 캐릭터를 밀어버린다던가, 다른 레벨로 이동하도록 할 수도 있다. 이 프로젝트는 어디까지나 장애물 맵을 제작하기 위한 하나의 "참고자료"일 뿐 맵 지형, 디자인, 장애물타입, 레벨 크기, 목표지점 도달 조건 등등 수많은 아이디어들을 본인이 계획하여 맵을 제작하는 것을 추천한다.하지만 너무 많은 아이디어는 오히려 쉽게 질릴수도 있기 때문에 범위를 줄여서 생각해보자.  본인도 맵을 제작하기 전에 아주 간단하게 코스를 짜보았다.이동과 회전은 ..

언리얼5-17 C++ <장애물 피하기(3) - 장애물 제작하기(회전)>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 1. 22. 23:50언리얼5-17 C++ <장애물 피하기(3) - 장애물 제작하기(회전)>

이전 글에서는 C++ 코드를 이용해서 오브젝트를 움직일 수 있게 하였다. 하지만 단순히 상하좌우로 움직이기만 한다면, 게임의 재미 요소가 줄어들 수 밖에 없다. 이번에는 성 위에 올라갔을 때 생기는 작은 버그를 해결하고, C++로 회전도 추가하여 플레이어의 움직임을 방해하도록 제작해보자 이전에 제작했던 발판을 이용해서 성 위로 올라가면 바닥이 뚫려버린다  이것 또한 언리얼5-15 C++ 장애물 피하기(1) - 프로젝트 세팅하기 에서도 한번 다루어봤는데, 이번에는 조금 다른 방식으로 문제를 해결해보자콘텐츠 브라우저에서 [All > Content > EnvironmentPack1 > Meshes > EnvironmentPack_1] 폴더에서 SM_Castle을 검색하여 'SM_Castle_Back'을 우클릭..

언리얼5-16 C++ <장애물 피하기(2) - 장애물 제작하기(이동)>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 1. 22. 23:21언리얼5-16 C++ <장애물 피하기(2) - 장애물 제작하기(이동)>

저번 글에 이어 이번에는 장애물을 제작해보자이제 장애물 역할을 할 액터를 만들기 위해, 상단 메뉴바에 [Tools > New C++ Class..]을 선택한 다음, Actor를 부모 클래스로 상속받아서 'Obstacle' 라는 이름의 클래스를 생성한다 그리고 헤더파일로 가서 오브젝트의 속도를 결정할 ObjectVelocity 변수를 선언해준 다음 초깃값으로는 (0,0,0)을 넣어준다 이 변수에서는 언리얼 에디터에서 수정할 수 있도록 UPROPERTY 매크로와 EditAnywhere 지정자를 넣고, Category = "ObjectSettings" 지정자로 새로운 카테고리를 생성해준다 이제 이 변수들을 사용할 차례인데, 이번 실전 프로젝트에서는 변수들을 그냥 사용하지 않고 함수를 만들어서 사용해보자헤더파일..

언리얼5-15 C++ <장애물 피하기(1) - 프로젝트 세팅하기>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 1. 22. 23:21언리얼5-15 C++ <장애물 피하기(1) - 프로젝트 세팅하기>

이번에는 이때까지 했던 모든 내용들을 사용하여 본인만의 맵을 만들고 장애물을 배치하여 간단한 게임을 제작해 보자 언리얼엔진을 실행 후 GAMES 카테고리에 Third Person 형식을 선택한 다음, C++ 타입으로 프로젝트를 생성해준다 그러면 이렇게 언리얼엔진에서 기본으로 제공하는 3인칭 템플릿 맵이 열린다 여기서 게임을 플레이 해보면 언리얼엔진 마네킹을 3인칭 시점으로 조작할 수 있는 모습을 확인할 수 있다 이제 장애물을 배치할 맵을 적용시켜보자 에픽게임즈 런처로 접속해서 상단의 '마켓플레이스' 탭을 선택한다 '언리얼엔진 마켓플레이스'는 게임 개발에 필요한 다양한 자원을 구입, 판매할 수 있고, 이를 통해 개발 시간을 줄이고 품질 높은 게임을 만들 수 있으며, 지속적인 업데이트로 다양한 카테고리와 테..

언리얼5-14 C++ <액터 이동시키기>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 1. 22. 23:20언리얼5-14 C++ <액터 이동시키기>

이번에는 액터를 이동시키는 방법에 대해서 알아볼 것이다 그걸 위해서는 먼저 언리얼엔진에서 게임을 플레이 할 때 게임이 어떻게 진행되는지를 알아야 한다https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Framework/GameFlow/  게임 흐름 개요엔진 시작 및 게임이나 에디터에서 플레이 세션을 실행시키는 프로세스입니다.docs.unrealengine.com 언리얼엔진에서 게임의 흐름은 초기화 단계, 게임 루프 단계, 종료 단계로 크게 세 단계로 나누어 설명할 수 있다. 1. 초기화 단계(Initialization Phase): 이 단계는 게임이 시작될 때, 즉 프로그램을 실행했을 때 발생한다엔진 및 서브 시스템 시작(Engine and Sub..

언리얼5-13 C++ <함수와 UFUNCTION>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 1. 22. 23:19언리얼5-13 C++ <함수와 UFUNCTION>

함수: 일정한 동작을 하는 코드들을 묶어놓은 것 클래스에 함수를 만들기 위해서 두 단계의 과정을 거쳐야 한다 -> 함수의 선언과 함수의 구현 함수 원형 선언은 이 클래스에 이런 함수가 있음을 알리는 것으로 함수의 반환형, 이름, 매개변수를 적고 세미콜론을 찍어주면 된다 -> 반환형 함수이름(매개변수); 반환형: 함수의 동작이 끝나고 나서 돌려줄 결괏값의 종류 [ex) 동작의 성공 or 실패(bool), 남아있는 아이템의 개수(int) 등] 만약 반환형이 int로 되어있다면 함수가 안에 있는 코드들의 모든 동작을 끝내고 나서 돌려줄 결괏값의 타입이 정수형이라는 의미이다 (함수가 동작을 끝내고 나서 결괏값을 돌려줄 필요가 없다면 void라는 타입으로 결괏값을 돌려주지 않을 것을 알릴 수 있다) 함수이름은 이..

언리얼5-12 C++ <구조체와 USTRUCT>
언리얼엔진5 C++/언리얼섹션1 - 장애물 피하기2024. 1. 22. 23:18언리얼5-12 C++ <구조체와 USTRUCT>

구조체란 기존에 존재하는 데이터 타입들을 조합하여 새로운 데이터 타입을 만들어 내는 유용한 개념이다 예를 들어 정수인 int, 실수인 float, 문자열인 string, 이 3가지 타입을 이용해서 int로 hp 회복량, float으로 물약 재사용 쿨타임, string으로 물약 이름을 정의해서 구조체로 묶으면 물약의 데이터를 저장할 수 있는 새로운 데이터 타입을 만들어 내는 방식이다 일반적인 C++ 프로젝트에서는 구조체를 대충 이렇게 정의하고 사용한다 하지만 언리얼 엔진 프로젝트에서 이러한 구조체는 C++ 코드 내부에서는 사용할 수 있지만, 에디터의 디테일 패널에 노출되지 않고 블루 프린트에서도 사용이 불가능하다 그렇다면 이제 이러한 언리얼 구조체에 대해서 알아보자 우선 구조체를 만들어보기 위해 Start..

image