언리얼5-18 C++ <프로그래밍 퀵스타트(2)>
언리얼엔진5 C++/C++ 프로그래밍 튜토리얼2024. 11. 21. 21:41언리얼5-18 C++ <프로그래밍 퀵스타트(2)>

UE5-17 C++ 프로그래밍 퀵스타트(1) 에 이어 직접 해보기라는 항목을 진행할 것이다프로그래밍 퀵스타트 | 언리얼 엔진 5.3 문서 (unrealengine.com) 첫 번째, FloatingActor에 파티클 붙이기두 번째, FloatingActor의 이동 속도를 하드 코딩이 아닌 프로퍼티로 만들어서 디테일 패널에 공개하고 사용하기세 번째, X축과 Y축에 움직임 추가하기 첫 번째로 파티클부터 추가해 보자 저번과 마찬가지로 파티클 시스템을 하나 만들기 위해서 생성자 함수에 UParticleSystemComponent 타입으로 ParticleSystem 프로퍼티를 만들어준다  소스파일에서 파티클을 추가하기 위해 #include "Particles/ParticleSystemComponent.h" 헤더를..

언리얼5-17 C++ <프로그래밍 퀵스타트(1)>
언리얼엔진5 C++/C++ 프로그래밍 튜토리얼2024. 11. 21. 21:41언리얼5-17 C++ <프로그래밍 퀵스타트(1)>

이번에는 언리얼엔진에서 제공하는 프로그래밍 퀵스타트 페이지를 따라 진행할 것이다프로그래밍 퀵스타트 | 언리얼 엔진 5.3 문서 (unrealengine.com) 이번 퀵스타트는 이미 전에 다루어 보았던 프로젝트 생성, C++ 클래스 만들기, 간단한 기능 구현, 프로젝트 컴파일, 레벨에 새로운 클래스 인스턴스 추가 등의 내용을 담고 있는데, 복습 & 총정리 정도로 생각하면 좋을 것 같다이 퀵스타트를 끝내고 나면 프로그래밍 퀵스타트 페이지에 있는 영상처럼 정육각형 모양 액터가 테이블 위에서 회전하며 둥둥 떠다니는 결과물을 얻게 될 것이다 먼저 위처럼 기본 템플릿에 프로젝트 타입을 C++로 하고 Starter Content를 포함시킨 채로 새 프로젝트를 생성한다  프로젝트 생성이 끝나면 [StartConten..

언리얼5-16 C++ <생성자에 BP_Class와 리소스 불러오기>
언리얼엔진5 C++2024. 11. 21. 21:40언리얼5-16 C++ <생성자에 BP_Class와 리소스 불러오기>

게임을 제작하는 과정에서 객체를 초기화할 때, 프로젝트에 포함된 다른 블루프린트 클래스나 에셋, 리소스를 가져와야 하는 경우가 종종 생긴다 블루프린트의 이벤트 그래프에서 작업하는 경우라면 블루프린트 노드의 드롭다운 메뉴를 통해서 선택하거나 콘텐츠 브라우저를 통해서 리소스나 블루프린트 클래스 등을 곧바로 선택할 수 있을 것이다  하지만 C++ 클래스에서는 직접 경로를 지정해서 블루프린트 클래스나 에셋을 불러오는 코드를 작성해야 한다C++ 클래스의 생성자에서 프로젝트에 포함된 블루프린트 클래스나 에셋을 가져오기 위해서는 ConstructorHelpers라는 클래스를 사용해야 한다.이 ConstructorHelpers 클래스는 생성자에서 클래스를 초기화하는데 도움을 주는 클래스로, 콘텐츠 브라우저의 리소스나 ..

언리얼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인칭 시점으로 조작할 수 있는 모습을 확인할 수 있다 이제 장애물을 배치할 맵을 적용시켜보자 에픽게임즈 런처로 접속해서 상단의 '마켓플레이스' 탭을 선택한다 '언리얼엔진 마켓플레이스'는 게임 개발에 필요한 다양한 자원을 구입, 판매할 수 있고, 이를 통해 개발 시간을 줄이고 품질 높은 게임을 만들 수 있으며, 지속적인 업데이트로 다양한 카테고리와 테..

image