Unreal Engine 54

[13강] Asset Migration

머터리얼 처리 Line Trace에서 color를 랜덤으로 변화시키는 방법 1. 기존에 연결된 컬러가 Linear Color 였기 때문에 "Make Linear Color" 함수를 생성한다. * Linear Color : Range가 0~1 이다. (RGB는 컬러, 알파값을 뜻하는 A는 반투명이다) * 현재 불투명 처리를 해 놨기 때문에 A값은 의미가 없다. 2. "Random Float In Range" 함수를 생성한 후 다음과 같이 연결 해 준다. * Random Float In Range : 랜덤한 범위 내에서 Float 형의 난수를 만든다. - Linear Color 의 Range가 0~1이기 때문에 Min 값에 0을, Max값에 1.0을 넣어 준다. - 각각의 RGB값을 다 변화시켜야 하기 때문..

[12강] Line Trace와 Material

Line Trace 실습 1. 저번에 제작해두었던 Actor Class 블루프린트인 "BP_05_LineTrace" 로 들어간다 2. 기존에 제작해두었던 "Draw Line"을 Delet 하고, 라인을 추적하기 위한 "LineTraceForObjects" 함수를 만들어 준다. 제거해야할 기존의 DrawLine 3. 라인을 추적할 시점이 기존 것과 같기 때문에 이전에 만들어둔 자료에 들어가서 위치 값을 복사해온다. 4. Tick 이벤트 함수를 다음과 같이 연결한다. 1) 0번은 시작 위치에 연결 2) 1번은 끝나는 위치에 연결 5. 자료형 연결 추적할 오브젝트타입이 Pawn (Character) 이기 때문에 Object Types 를 끌어서 다음과 같이 배열 자료형에 대한 자료형을 불러온 후, Pawn 으..

[11강] 객체 찾기와 반복문

객체화 복습 1. 작업중인 "BP_04_Trigger_Light" 를 화면에서 3개 복제한다. * 복사 단축 키 : Alt + drag 2. "BP_04_Trigger_Light" 블루프린트 변수에 "Light Color", Linear Color 변수를 추가한다. * Color 자료형 : 0~255, 빨간색이면 255, 0, 0 이런식으로 정의 * Linear Color : 0~1, 빨간색이면 1, 0, 0 이런식으로 정의 Linear Color 형이 비율을 맞추기가 더 쉬워서 라이트라던지 대부분의 컬러의 변수로 사용됨 3. 컴파일 후 빨간색(1, 0, 0) 지정 4. 만들어 둔 Light Color 변수를 가져오고, "Set Light Color" 함수를 불러와 다음과 같이 이벤트 함수 업데이트 * ..

[10강] Collision (Overlap / Hit)

기본 세팅 설정 프로젝트세팅 > 프로젝트 맵&모드 > StartupMap > "Collision" 당분간 충돌체크 맵 관련해서 작업을 할 것이기 때문에 작업에 용이하게 변경 이벤트 작성 3번째 작성해 두었던 블루프린트를 활용해 Collision의 두가지 종류를 정의할 수 있는 이벤트를 작성 1. Overlap (겹침) 1) "Generate Overlap Events" 가 체크되어 있는지 검토 기본적으로 Collision은 이 탭에서 관리를 하는데, "Generate Overlap Events" 가 켜져 있어야 Overlap 이벤트를 작동시킬 수 있음 2) "On Component Begin Overlap" 이벤트 함수 생성 On Component Begin Overlap : 겹침 시작 On Compon..

[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 ..