20220111 언리얼 익숙해지기 - '쉽게 배우는 프로그래밍'이란 강좌 참조
방탈출 게임을 제작하는 동영상 강좌가 있다.
완전 초보에게 가르치기 때문에 쉽고, 또 장르가 방탈출이니 매우 도움이 될 것 같다고 팀원의 추천이 있었다.
쉽게 배우는 프로그래밍
Arduino, xamarin, scratch, design pattern 등 다양한 프로그래밍 강좌
www.youtube.com
이것으로 익숙해져보자.
새로운 프로젝트를 생성 → Game → First Person Template → 기본 생성.
* 언리얼 엔진 에디터 구조
1. Place Actors : 유니티로 따지면 오브젝트 목록창. 화면 상에 설치할 수 있는 것들의 리스트이며, 언리얼에서는 이를 액터라고 부른다.
2. Tool Bar : 빠른 실행 메뉴와 같다. 자주 사용하는 중요한 기능들이 있다.
3. World Outliner : 올라와있는 모든 오브젝트가 목록화된 창.
4. Details : 선택한 오브젝트에 대한 모든 정보 창.
5. Content Browser : 아직 게임에 올라가있지 않지만 쓸 수 있는 것들이 있는 장소. 생성된 프로젝트 폴더의 내용물을 볼 수 있음.
6. Viewport : 게임이 진행되는 곳이자, 액터를 배치할 수 있는 장소. 플레이 모드 시, 화면을 클릭하면 게임처럼 사용할 수 있고 ESC키를 누르면 빠져나갈 수 있다.
* 에디터에서 이동하는 방법
1. 마우스 우클릭 + WASD : 직선이동
2. 마우스 우클릭 + QE : 상하이동
3. Alt + 마우스 좌클릭 드래그 : 중심 고정, 공전 이동.
4. 우클릭 드래그 : 중심 고정, 자전 이동.
5. 마우스 좌클릭 드래그 : 높이 고정, 자유 이동.
6. 원하는 액터로 이동 : 선택(직접 선택 or 월드와이드창 선택) + F키
* 액터 이동시키는 팁
End 키 누르면 바닥에 완전히 붙음(Y축 설정하기 어려울 때 좋을 듯).
* 지오메트리
말 그대로 '지형'. 때문에 월드아웃라이너에 브러시Brush라고 이름이 붙는다. 레벨을 그린다는 의미인듯.
지오메트리에는 빼기 기능이 있다.
위치를 지정하고 Alt키 누른 채로 브러시를 통과했다가 빼면 공간이 액터만큼 사라진채로 남는다.
다른 액터와 달리 지오메트리의 머티리얼/텍스처는 해당 면에만 붙는다. 면마다 다르게 매핑할 수 있다.
단, 지오메트리는 움직이는 액터Movable로 만들 수 없다. 오직 지형만 가능하다.
* 동영상 강좌 레벨1
한 칸짜리 방에 문을 만들고 가까이 가면 문이 사라지는 블루프린트.
1. 박스 트리거 액터를 문 앞에 설치
2. 닿았다는 이벤트가 발생하면 블루프린트 들어가서
마우스 우클릭 → 가장 위에 있는, 선택한 액터인 'Trigger Box1에 대한 이벤트 추가(Add Event for Trigger Box1)' → Collision → 'Add On Actor Begin Overlap'
블루프린트는 프로그래밍을 쉽게 하기 위해서 노드 단위로 배치하고 연결하는 시각적인 툴이다.
레벨 블루프린트 : 레벨의 전체를 관리하는 프로그램
3. 실행(Exec) → Executable Actions → 검색창에 Print Text 입력 후 클릭. → '닿았다!'는 문장 입력.
- 닿으면 사라지게 하는 방법은 많다. 이번에 할 것은 '닿으면 순식간에 문이 내려가서 사라지는 것'이다.
월드아웃라이너에 있는 액터는 블루프린트로 드래그해올 수 있다.
Door를 끌어다 놓고 '레벨의 액터에 대한 레퍼런스를 저장한다(Brush object Reference)' → 검색창에 location → SetActorLocation : 타겟 액터의 위치를 정해준다.
여기까진 타겟 액터가 이동하는 것만 알려줬지, 닿고 실행하게 만드려면 아까 만든 노드를 연결해야 한다.
"에러가 '모빌리티 없음' 이네? 그럼 붙여주면 되겠다!" → 없음... 왜? 지오메트리는 지형이라서. 이건 기본적으로 움직일 수 없다. 움직이는 것들은 브러시를 쓸 수 없다.
문을 지운다.
블루프린트에 참조된 액터를 지울 땐 경고문이 뜬다.
* 액터 이름 바꾸는 방법
1. 액터 우클릭 → Edit → Rename.
2. 액터 클릭 → F2
* Mobility
1. 스태틱(Static) : 어차피 움직이지 않으니까 미리 그림자 그려놓음. 높은 수준의 그림자.
2. 스태이셔너리(Stationary)
3. 무버블(Movable)
왜 나눠놨을까? 라이팅 때문에.
* 번쩍 하는 효과: Particle 검색.
* 노드끼리 연결된 선 끊는 방법: Alt + 줄 클릭.
* 변수 만들기
왼쪽에 My Blueprint → 변수(Variables) → + 버튼 누르고 변수 이름 만들어주기
→ (변수 선택한 채로) 오른쪽 Details → Variable Type 에서 변수형 선택.
C# bool → Boolean
C# int → integer
C# Update() → Tick 이벤트
* 혹시 뭔가 보이지 않으면 컴파일 해보기.
* Get, Set
변수 가져올 때 Ctrl 누르고 드래그해 놓으면 Get(읽다, 값을 가져오다), Alt 누르고 드래그해 놓으면 Set(쓰다, 값을 넣다)
* 블루프린트는 if문으로 조건 주는게 아니고 Branch 로 조건을 준다.
알만툴이랑 거의 같네
B 를 누른 채로 마우스 좌클릭하면 Brach노드 생김.