이론
- Game Engine : 게임을 개발할 수 있는 구성요소들을 모아놓은 도구이다.
- 블루 프린트 프로젝트 만들고 C++도 넣을 수 있지만, 불안정하니 끼얹지 않는게 좋다.
- 퀄리티 프리셋 : 프로젝트를 빌드시킬때 창모드로 할거냐, 풀화면으로 할거냐를 고르는 옵션이다.
- Maximum : 풀화면, 화면의 성능을 프로그램에 몰아주는 옵션이다.
- Scalable : 창모드
- 레벨 : 맵 하나 → 스테이지 또는 맵 하나의 개념이다.
- 레벨 에디터 : 씬 화면, 액터(오브젝트)를 배치하는 화면
- 액터 : 화면에 배치될 수 있는 클래스
- 추가 기능(뭐를 그려라, 뭐 입력받을거야, 뭐 해라)등을 끼우는 속성 : 컴포넌트
- 아웃라이너 창 : 레벨 에디터에 배치되어있는 액터들의 목록, 하이어라키
- 디테일 창 : 레벨 에디터에 배치되어있는 액터의 설정을 조절하는 창, 인스펙터
- 화면에 배치 되는 기준 : 액터(액터 클래스로부터 상속받아 배치된다.)
- 창 - 출력로그 : 프로그래밍 한 결과를 볼 수 있는 창
- 창 - 액터 배치 : 액터를 쉽게 생성할 수 있게 하는
- 창 - 콘텐츠 브라우저 : 콘텐츠들을 볼 수 있는 창, 유니티 프로젝터 창
- 에셋(이미지, 캐릭터, 모델, 사운드)을 의미하는 단어 : 콘텐츠
블루 프린트 실습 예시
- 콘텐츠 브라우저 - 블루 프린트 클래스 - 어느 누구로부터 상속받을지 선택하는 창(지금은 액터로 선택) : 액터로 하면 화면에 배치하는 블루프린트를 생성할 수 있다.
- 뷰포트 : 액터의 모양을 보여주는 창
- Construction Script : 스크립트의 생성자를 의미하는 창
- 이벤트 그래프 : 실제로 블루프린트 프로그래밍을 하는 창
- 이벤트 : 어떠한 사건을 발생했을때 이것을 호출해라 를 설정할 수 있는 창
- BeginPlay 이벤트 : 액터가 플레이를 시작할 때 이벤트를 발생시키는 이벤트
- 틱 이벤트 : 매 프레임(기본 - 1초에 60프레임)마다 실행되는 이벤트 - 유니티의 Update 함수를 생각해라
- 처음 시작할때 뜨는 설명창은 지우는게 더 귀찮으니 처음부터 전부 지우고 시작해라
- 이벤트 그래프 - 우클릭 - BeginPlay 이벤트 클릭
- 프로그래밍 실행 순서 : 위 → 아래
- 이벤트 노드에 있는 화살표 : 실행 핀
- 실행 핀 클릭 - 끌어다 놓으면 어떤 노드를 생성할지 고르는 창 나온다. - print string : 문자열을 출력하는 이벤트 - In String에 문자를 작성하고 플레이를 누르면 레벨 에디터 왼쪽 상단에 결과가 출력된다.
언리얼 좌표계
- X축 : 유니티의 Z축 (정면)
- Y축 : 유니티의 X축 (축면)
- Z축 : 유니티의 Y축 (상단)
- 디테일 - 트랜스폼 : 바꾼 값이 있다면 유턴하는 아이콘이 활성화되는데 그것을 누르면 초기값으로 리셋된다.
- 회전 : 회전값은 시계방향으로 돈다.
- 오른손 좌표계는 반시계 방향을 쓴다.
- 롤 : 전방 회전
- 피치 : 측면 회전
- 야 : 하단에서 상단 방향으로 찌르고 회전
저사양 세팅
- 세팅 - 엔진 퀄리티 세팅 - 섀도 : 가장 많이 바꾸는 옵견이다.
- 보통은 중간으로 하고 필요에 의해 높이거나, 높음으로 하고 필요에 의해 낮추기도 한다.
새로운 블루프린트 예시 (정석으로 큐브 생성)
- 콘텐츠 브라우저 - 우클릭 - 블루프린트 클래스 클릭
- 컴포넌트 창 : 액터에 추가 기능을 넣을 수 있는 창
- 액터 이름(셀프) : thisPointer(자기 자신을 가리키는 포인터)를 의미한다.
- 자기 자신을 ‘셀프’라고 부른다고 알고있어라
- 즉, 셀프 액터를 하나의 클래스라고 생각하고 그 밑에 기능들을 추가하는 것이다.
- BP_Cube(셀프) 클릭 - 좌측 상단 추가버튼 클릭 - 스테틱 메시 컴포넌트 클릭
- 콘텐츠 브라우저 - 우측 상단 세팅 버튼 클릭 - 엔진 콘텐츠 표시 클릭 : 언리얼 엔진에서 공통적으로 사용할 수 있는 에셋들을 표시한다.
- 블루 프린트 창 - 뷰포트 - 디테일 - 스테틱 메시 - (엔진 콘텐츠 표시를 눌렀으니 메쉬 관련 콘텐츠들이 표시된다.) Cube 입력 - Cube(Engin/basicMesh) = 액터 배치 창에서 배치할 수 있는 큐브의 메쉬와 동일한 메쉬다.
- 디테일 - 메테리얼 - basicShape 클릭
- 위의 과정이 액터 배치 창에서 배치되는 큐브와 동일한 큐브를 ‘정석’으로 만드는 방법이다.
큐브 예시에 블루프린트 이벤트 추가
- 이벤트 그래프 - 우클릭 - BiginPlay 이벤트 클릭
- 내 블루프린트 창 - 변수 - 추가버튼 클릭 - (추가하면 디테일 창으로 볼 수 있다.)변수 타입 인티저(정수) - 컴파일 버튼 클릭 (컴파일 버튼을 눌러야 기본값을 입력할 수 있다)
- 생성된 변수를 이벤트 그래프 창에 끌어다 놓으면 Get 또는 Set을 고를 수 있게 된다.
- Get : 설정한 기본값(지금은 10과 20)을 가져다 쓰겠다는 의미이다.
- Set : 변수에 값을 작성하겠다는 의미이다.
- 변수 끌기 + ctrl키 : 끌은 변수 Get으로 자동 설정
- 변수 끌기 + Alt : 끌은 변수 Set으로 자동 설정
+연산 예시
- A 변수의 핀을 끌고 놓기 - +입력해서 ‘덧셈 연산 노드’ 생성
- B 변수의 핀을 덧셈 연산 노드로 연결
- BeginPlay 핀을 끌고 놓기 - C 변수를 Set으로 놓고 연결 - 덧셈 연산 노드의 결과를 C 변수 입력 핀에 연결 - C의 실행 핀을 끌고 놓기 - Print String 노드 생성 후 연결
- C의 출력 핀을 Print String의 In String 함수 핀에 연결 ⇒ 캐스트 노드 자동 생성된다.
- 정수 출력인 C를 String으로 변환해준다.
- Print String 시간 늘리기
- Print String 노드 클릭 - 개발 전용 버튼 클릭
- Print to Screen : 화면에 나타나게 해주는 옵션(체크 해제하면 레벨 에디터에 결과 출력이 안된다.)
- Print to Log ; 출력 로그에 나타나게 해주는 옵션(체크 해제하면 출력 로그에 결과 출력이 안된다.)
- Text Color : 텍스트 색상설정
- Duration : 화면에 표시해주는 시간
- 빨간색 핀 : bool 자료형
- 파란색 핀 : Color 자료형
- 녹색 핀 : float 자료형
- 자주색 핀 : Name 자료형(이건 나중에 배운다)