오늘 학습 진행 내용
2-1. 액터 움직이기
액터 이동을 위한 블루프린트 클래스 생성하기
새 블루 프린트 클래스 생성
컨텐츠 브라우저 -> 블루프린트 클래스(Actor)로 생성
Static Mesh 컴포넌트 설정
블루프린트 내 컴포넌트 탭에서 -> Stataic Mesh 컴포넌트 추가(생김새 추가)
레벨에 배치
무브번트 컴포넌트 활용
무브먼트 컴포넌트 대표적인 3가지
Character Movement Component
보행, 점프, 중력, 충돌 처리 등 캐릭터 행동에 특화된 컴포넌트(캐릭터 액터에 사용)
WASD,SPace 등으로 쉽게 이동 가능
FloatingPawnMovement
단순 부유 이동, 복잡한 물리·중력 계산없이 AddMovementInput 등을 통해 이동
폰 액터에 사용
캐릭터 형태가 아닌 간단한 오브젝트를 부유,이동시키기 편리
InterpToMovement
지정된 포인트 사이를 정해진 속도나 보간 방식으로 움직이는 컴포넌트
정해진 A->B->C 지점을 순차적으로 이동 플랫폼 구현
Easy In/Out,Linear,Ping Pong 같은 다양한 이동 방식을 옵션으로 지정 가능
FloatingPawnMovement(예시)
블루프린트 클래스(Pawn) 생성 -> 블루프린트 내 컴포넌트 탭에서 -> Stataic Mesh 컴포넌트 추가(생김새 추가), FloatingPawnMovement 추가
FloatingPawnMovement 사용 이동 구현
InterpToMovement(예시)
블루프린트 클래스(Pawn) 생성 -> 블루프린트 내 컴포넌트 탭에서 -> Stataic Mesh 컴포넌트 추가(생김새 추가), InterpToMovement 추가
InterpTomovement 사용 이동 구현(지점 및 이동 방식 지정)
컴포넌트 없이 이동시키기
Tick 이벤트와 SetActorLocation / AddActorWorldOffset
블루프린트 클래스(Pawn) 생성 -> 블루프린트 내 컴포넌트 탭에서 -> Stataic Mesh 컴포넌트 추가(생김새 추가)
-> 변수 추가(액터 기본 위치(vector), 액터 방향성과 속도(vector),움직일 거리(float))->velocity(Y=100) 설정
컴포넌트 없이 변수와 Event 처리 활용해서 이동 구현
타임라인 활용
타임라인은 시간에 따른 값 변화를 곡선으로 다룰 수 있어 부드러운 이동 간단히 처리 가능
블루프린트 클래스(Pawn) 생성 -> 블루프린트 내 컴포넌트 탭에서 -> Stataic Mesh 컴포넌트 추가(생김새 추가)
-> 변수 추가(액터 기본 위치(vector), 액터 마지막 위치( vector)
타임라인 설정으로 시간 구간 내 자연스럽게 천천히 이동하다가 빠르게 움직이는 이동(Lerp(선형 보간),TimeLine 그래프) 구현
액터 회전
Add Actor Local Rotation
객체의 로컬 좌표 기준으로 회전
객체가 기울어져 있어도 자기 축 기준으로 회전
Add Actor World Rotation
월드 좌표 기준으로 회전
액터 회전 구현
2-2 액터의 상호작용-오버랩,충돌이벤트
오버랩 이벤트
오버랩이란?
한 액터(또는 콜리전 컴포넌트)가 다른 액터(또는 콜리전 컴포넌트)의 공간 안에 들어오거나 겹쳤을 때 발생
레벨 블루프린트에서 오버랩 이벤트 구현
대표 이벤트
OnActorBeginOverlap : 다른 액터가 내 영역에 들어오기 시작할 때
OnActorEndOverlap : 다른 액터가 내 영역을 벗어날 때
레벨에 트리거 박스 배치
트리거 박스 내 On Actor Begin Overlap(Trigger Box)
에 Get Play Name 노드 연결-> Print String 노드 연결
트리거 박스에 캐릭터 다가갈 시 캐릭터 이름 출력
오브젝트 블루프린트 내부에서 오버랩 이벤트 구현
오브젝트용 블루프린트 생성->Box Collision 컴포넌트 추가->트리거 박스와 동일하게 이벤트 구성
트리거 박스와 동일한 기능 구현
캐릭터 회전 예시 (게임 연출 응용)
특정 Sphere 콜리전 범위 안에 플레이어 캐릭터 들어오면 Enemy가 플레이어 방향으로 회전
에너미 블루프린트 생성-> 블루프린트 내 컴포넌트 탭에서 -> Stataic Mesh 컴포넌트 추가(생김새 추가), Sphere Collision 컴포넌트 추가->캐릭터 변수(As BP Character) 추가
Cast To와 Find Look At Rotation,Lerp 추가 활용해서 플레이어 자연스럽게 회전해서 바라보게 하는 Enemey 구현
캐릭터와 충돌 : Launch character
Launch Character : 캘릭터를 특정 방향, 강도로 튕겨내는 기능
Launch Character와 On Component Hit 활용해서 충돌 시 폭발음과 함께 액터 사라지게 구현
실습
자동문 열기
문 액터 Static일 경우 Movable로 변경-> 문 컴포넌트->Box Collision 컴포넌트 추가
Cast To,Is Valid, Add Actor World Roatation으로 캐릭터와 오버랩 되면 문 회전되게 구현
TimeLine,On Component Hit, Launch Character 사용해서 다가오는 객체와 부딪히면 파괴 + 캐릭터 밀려나기 구현