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

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

변수(Variable): 간단하게 게임에서 캐릭터의 체력, 공격력, 공격속도와 같은 값과 상태를 저장하고 조작하는 데 사용한다 (게임이나 프로그램에 필요한 여러 종류의 값들을 담아두는 것) 코딩을 조금 해봤던 사람들이라면 int, float, double, char, bool 등등 변수의 타입이 있다는 것을 알고 있을 것이다 언리얼엔진에서도 결국 C++코드를 가지고 진행을 하기 때문에 이 변수들을 사용하여 제작한다 이외에도 언리얼 엔진에서 제공하는 여러 클래스도 있고 다른 변수들을 묶음으로 다룰 수 있는 컨테이너들 역시 변수로 사용된다 직접 C++ 클래스를 Visual Studio를 사용하여 코드를 짠 다음 에디터와 연결시켜 작업을 해 보자 그럼 먼저 언리얼 엔진을 실행하고 새 프로젝트를 생성한다 카테..

로그란 개발 중에 스크립트에서 발생하는 문제나 상황에 따른 피드백을 얻기 위해 사용하는 중요한 도구이다스크립트에서 발생하는 문제나 상황을 개발자가 보기 쉽게 출력해 주는 것을 '로그(Log)'라고 한다 먼저 언리얼 엔진에서 로그가 출력되는 출력 로그 패널을 여는 방법부터 알아보자 [빈 템플릿, C++ 프로젝트로 생성한다] 언리얼 에디터의 상단 메뉴바에서 [Window > Output Log] 항목을 선택하거나, ContentDrawser 옆에 Output Log를 클릭하면 로그 창을 열 수 있다(이 방법은 오른쪽에 Dock in Layout 버튼을 눌러야 고정이 된다) 그러면 출력 로그 패널이 열리는 것을 볼 수 있다 스크립트에서 우리가 출력하도록 명령한 로그들은 이 출력 로그 탭에서 출력될 것이다 간..

언리얼 에디터에서 예기치 못한 에러가 생겨서, 해결하려 컴파일 창을 보았을 때 문자가 몇 개 정도 깨져 있는 것을 본 적이 있을 것이다 이번에는 이러한 문제를 한번 다루어 볼 것이다 우선 언리얼 엔진에서 컴파일 에러 로그가 뜨는 모습을 보기 위해서 새 C++ 클래스를 생성한다 클래스가 생성되고 나면 스크립트 에디터를 열고 일부러 컴파일 에러가 나도록 코드의 글자를 하나 지운 뒤 코드를 저장한다 그다음 언리얼 에디터에서 컴파일 버튼을 누르면 컴파일에 실패한다 이때 무슨 에러가 발생했는지 확인하기 위해 LiveCoding 로그 메시지 로그 창을 보면, 어느 한 부분이 전부 깨져있어서 무슨 에러가 발생했는지 확인하기가 어렵다 프로그래밍에 익숙하신 분들이라면 에러코드인 C2039를 구글에 검색해서 어떤 버그인지..

UE5-3 C++ 에서 말했듯이 언리얼 엔진에서 게임 기능을 만드는 방법은 C++와 BLUEPRINT 이렇게 두 가지가 존재한다 C++는 프로그래머가 직접 타이핑으로 코드를 작성해서 프로그래밍을 하는 방법이고, 블루프린트는 눈에 보이는 노드와 노드를 이어 기능의 흐름을 눈으로 보면서 만들어내는 비주얼 스크립팅이다 C++ 프로젝트를 위해서 생성 시 프로젝트 세팅을 C++를 선택한다 (필요가 없기에 시작용 콘텐츠는 해제한다) 프로젝트의 생성이 끝나고나면 제일 먼저 C++클래스를 생성해 보자 C++ 클래스를 생성하기 위해서는 상단 메뉴 바에서 [Tools > New C++ Class...]를 선택하면 된다 그러면 추가할 클래스의 부모 클래스를 선택할 수 있는 창이 뜨는데, 여기서 부모 클래스를 선택하면 우리가..

액터는 아주 간단하게 설명해서 레벨에 배치할 수 있는 모든 오브젝트를 말한다 새로 생성한 언리얼 프로젝트에서 보면 기본 레벨에 있는 모든 것이 액터라고 할 수 있다 의자나 테이블, 바닥은 물론 눈에 직접 보이지는 않지만 환경에 영향을 미치는 광원이나, 배경소리를 구성하는 음원 등 여기 아웃라이너 패널에서 보이는 모든 것들은 액터라는 뜻이다 우선 언리얼엔진을 실행하고 시작용 콘텐츠를 포함한 상태로 새 프로젝트를 하나 생성한다 그리고 [StarterContent > Maps > Minimal_Default] 맵을 찾아 더블클릭 해준다 그럼 액터를 생성하는 방법을 알아보자 먼저 메인 툴바에서 육면체에 +모양이 표시된 액터 추가 버튼을 누르면 여러 가지 항목을 볼 수 있다 만들 수 있는 액터의 종류에 따라 분류..

이번에는 레벨을 다루는 방법을 배우고 본인만의 프로토타입 맵을 제작해 볼 것이다 게임 카테고리에서 삼인칭 템플릿을 선택한 다음 프로젝트를 생성해 준다 처음으로 언리얼 엔진을 배울 때는 이렇게 템플릿에서 기본으로 생성해 준 레벨을 이용해서 작업을 하게 된다 하지만 기본으로 제공되는 레벨에는 이미 환경이 세팅되어 있어서 원하는 대로 환경이 설정이 되지 않는 경우가 종종 있다 그래서 자신만의 환경을 세팅하고자 할 때는 빈 레벨을 새로 만들어서 환경을 세팅하는 것이 좋다 그럼 먼저 빈 레벨을 만들어보자 상단 메뉴 바에서 [File > New Level...] 항목을 선택하면 New Level 창이 뜬다 [단축키: Ctrl + 'N'] 여기서 Empty Level을 선택하고 Create 버튼을 누른다 그러면 완전..