Unreal Engine/게임클래스 - 언리얼엔진 기초 30

[9강] Collision

레벨 생성 이번 시간에는 본격적으로 Collision을 다루기에 앞서 간단한 맵 세팅과 재질을 다루었다. 1. Floor 생성 Ctrl + N > Default > 바닥제거 > 큐브 불려와서 > 위치 reset, 크기 40*40*1 2. Wall 생성 바닥복사(Ctrl+W) > Scale x,y,z(1, 40, 5) > Transform z(300) 뷰포트 위에 이런거 보면서 안쪽으로 대충 세워주기 * 탭으로 뷰 바꾸면서 작업하면 수월하다 3. 아웃라이너 정리 보기깔끔하게 Floor, Wall으로 Rename 해서 정리해주었다. Material(재질) 만들기 1. 폴더를 생성해준다 2. 뷰옵션 > 엔진 콘텐츠 표시 * View options에서 Engine 컨텐츠 옵션켜주면 기본적으로 엔진에서 사용되는 ..

[8강] State Machine

Jump 구현 1. 프로젝트세팅 > 입력 > Action Mappings > Jumping 생성 > 키보드 스페이스 바 버튼을 눌렀다 뗐을때의 값으로 입력받는 것이기 때문에 "Action Mappings" 기능으로 구현 2. "BS_Player" 스크립트에 "Jumping 입력" 액션 이벤트 함수 추가 플레이어 블루프린트에 들어가서 설정을 해준다 3. "Moving" 접힙 그래프 업데이트 그래프를 접어놨었는데, Moving과 관련되어 있는 움직임이니 여기에 다음과 같이 추가하여 주었다. 1) "Jump" 함수 추가 *Jump : 실행시 Z(수직) 값이 가속되면서 점프를 시작하게 해주는 함수 2) "StopJumping" 함수 추가 * StopJumping : Z(수직) 값이 가속되면서 점프를 수행하는 것..

[7강] 카메라 방향으로 이동과 줌 인/아웃

카메라 이동구현 카메라를 회전시켰을 경우, 회전시킨 카메라의 방향으로 이동 저번 시간에 다루었던 엑터의 전방방향으로 이동하는 구현법을 응용 1. 생성했던 "MoveForward", "MoveRight" 이벤트 함수생성 > 후 작업을 위해 BP_Player 노드 정리 2. GetControlRotation 함수 생성 후 사용할 핀 분리 * GetControlRotation : 카메라의 회전값을 얻어옴 방법1. 구조체 핀분할 방법2. Break Rotator 함수 사용 3. Make Rotator 함수 > Get Forward Vector > Normalize 2D * Get Forward Vector : 회전된 방향에서의 전방 값 값을 분해해서 가져왔기 때문에 일반 Normalized 사용해도 문제는 없지..

[6강] 카메라의 회전과 벡터의 특성

카메라 회전 구현 세팅 > 프로젝트 세팅 > 입력 1. Axis Mapping 카메라 마우스로 축회전(-1, 0, 1)을 시킬 것이기 때문에 Axis mapping 기능을 이용해 구현 1) HorizontalLook 생성 > 마우스 X * 왼쪽으로 가면 자동으로 Scale -1 오른쪽으로 가면 1 그래서 스케일은 1로 고정 2) VerticalLook 생성 > 마우스 Y * Default 값의 경우 위로가면 1 아래로 가면 -1 이나 Vertical Look 은 회전의 반대로 이루어짐. 아래로 가면 고개를 위로 들것이기 때문에 -1 값으로 설정 2. BP_Player 1) HorizontalLook 축 Event 생성 < Add Controller yaw Input Yaw : 수직 (Z) 방향으로 회전하..

[5강] Animation Blueprint

파일 정리 플레이어 캐릭터는 특별하기 때문에 애니메이션 작업을 이어 나가기 전에 따로 폴더를 만들어 관리해 주는 것 같다. 콘텐츠 폴더에 Player 폴더 생성 > Blueprints 에서 작업한 플레이어 블루프린트 파일 "BP_Player", "ABP_Player" 이동 애니메이션 이벤트 그래프 작업 1. 애니메이션 블루프린트 > 이벤트 그래프 * Animation Blueprint 는 클래스의 일종으로 AnimInstance 로부터 상속받은 상태이다 2. 게임모드인지 아닌지 판단 Try Get Pawn Owner는 게임모드일때만 활성화되는 함수이다. 게임모드인지 판단하기 위해 Try Get Pawn Owner 노드 > Return Value 끌어와서 > ? Is Valid 게임모드이면 Is Valid..

[4강] Animation Blueprint

상속 개념 정리 (Unreal Engine) 이번강의에서는 실습보다 이론 위주 강의가 진행되었는데 강사님이 서두에 지루할 수도 있다고 걱정하신 것에 비해, 지금까지 들었던 것들중 가장 최고의 강의였다. Unity로 게임을 제작하며 "상속"의 개념을 미리 익혀왔기 때문에 이해가 더 쉬었을 수 있는데 블루프린트 안에서의 상속이 어떻게 진행되는지 완벽하게 정리해주셨다. * 상속 : 부모의 기능을 자식이 쓰고, 자식이 자식만의 기능을 추가해서 사용하기 위해서 필수적인 개념 - 클래스 : 특성 모아놓은 묶음 - 객체 : 클래스의 변수 (멤버변수 : 클래스에 정의되어 있는데 필요시 추가해서 사용할 수 있음 ) - 상속 : 클래스 받아와서 다른 특징 추가해서 씀 클래스 순서 (in ..

[3강] Player Setting (Input)

* 맵저장 / 모두저장 종종 눌러두는 습관들이기 Unity 에서는 Scene 이고 Unreal 에서는 Level 이지만 맥락은 같다. Unity, Unreal 공통되는 특징이다. Default 맵 설정 앞으로 작업을 용이하게 하기 위해 Editor Start Map 탭에서 default Map "Player" 로 설정해 두기 프로젝트 세팅 > 맵 / 모드 > Editor Start Map 프로젝트 세팅 창 열기 방법 1. 상단 탭을 통해 편집 > 프로젝트 세팅 다른 프로그램들에서 보통 방법1. 을 사용하기 때문에 자연스럽게 이렇게 진행하였으나 강사님은 방법2. 를 사용하셨다. 방법 2. 플레이화면 상단의 탭을 통해 세팅 > 프로젝트 세팅 플레이어 입력 설정 1. 입력 설정 (총 2단계) 2. Posses..

[2강] Blueprint

UI 세팅 추천 창 > 컨텐츠브라우저2 > 끌어서 하단 오른쪽에 붙이기 블루프린트 작업에 사용되는 방식 2개 1. 간단히 만들때만 사용 하며 실무에서 거의 사용되지 않는 방식 2. 보편적이며 앞으로 계속 사용되는 방식 블루프린트가 어떻게 실행되고 프로그램되는지 확인하기 위해서 진행 1. 큐브를 끌어다 화면에 놓는다. 큐브를 선택한 후, 좌측에서 블루프린트 / 스크립트 > 콘텐츠 > 이름지정 "BP_cube"로 큐브 블루프린트 생성 2. 이벤트 그래프 탭으로 이동 생성된 블루프린트는 3가지탭 (뷰포트 / Constratin Script / 이벤트 그래프)으로 나뉘어져 있다. - BeginPlay 이벤트 : 플레이가 시작되는 순간에 실행되는 함수 - ActorBeginOverlap ..

[1강] 엔진 설치와 기본적인 UI

강의 내용은 좋겠지만, 4.22버전은 너무 옛날버전 인 것 같다는 생각이 든다. 예전에 미국에서 작업했던 것도 이 버전이였고 인기가 많았던 것 같지만 에픽에서 새로 나왔다고 광고하는 5.2.1버전에서 작업하고 싶은데 구글링 좀 하면서 오류 생길 리스크를 각오하며 신 버전을 쓸까 하다가 4.22를 하기로 결심했다. 어느정도 익숙해졌다 하면 5.21버전으로 강의내용을 변환하여 수강하면 좋을 것 같다. 그래서 4.22와 5.21을 둘다 설치하였다. 라이선스 구분 퍼블리싱 : 게임제작에 적합 크리에이터 : 게임 외 콘텐츠 제작에 적합 * 게임 작업을 위해서 퍼블리싱 라이센스를 발급받아 설치를 진행하였다 설치 통합폴더(폴더이름 "Engine" 등으로 하면 알기 쉬움) 생성 후 여러 가지 버전 종류대로 설치해 사용..

시작하며

좋은 게임을 제작하고자 하는 마음으로 2달간 C언어를 익혔다. 그후 언리얼, 유니티 등의 수업을 듣고 있지만 좋은 포트폴리오로 이어지기에는 부족한 수업이라고 느꼈다. 이를 보완하기 위한 조사를 열심히 진행했고, 다른 사람들은 좋은 게임을 제작하기 위해 어떤 과정을 밟는지 궁금해 조사하던 중 유튜브에서 괜찮은 Unreal Engine 개발자 포트폴리오를 발견했다. 포트폴리오 제작자가 어떤 사람인지 알아보던 끝에 같은 수업을 수강하셨다는 공통점을 발견했다. 내가 생각하는 방향성과 맞기 때문에 나도 그 수업을 수강하기로 했다 비용은 작지 않은 금액이였다. 사실 금액 지불 관련하여 여러가지 방안이 있겠지만 지금 내 상황에 해당하는것은 없어서 사비로 정직하게 지불 후 수강하며 기록을 남기기로 하였다 ^-^..  ..