적 ABP 파일 - 무기 안드는 블랜드 스페이스 빼고 전부 정리 - (속도를 위해) 이벤트 그래프 - 플레이어 ABP 파일의 속도 관련 노드들 복붙 - ‘적’ 블루프린트 변수 생성 후 ‘검증된 Get’으로 배치하고 Is Valid 핀과 연결한다. - 우클릭 후 ‘Valid’ 를 검색하고 함수 호출의 Valid를 클릭한다. - 형변환 노드와 Set 노드도 적으로 바꾼다. - 방향 관련 노드들은 사용하지 않는다.
사망 (전날 것과 이어서 진행)
사망 시 충돌 안들어가게 설정
적 블루프린트 - ‘사망’ 이벤트 노드 확인 - ‘Set Collision Enabled’ 검색 후 갬슐 컴포넌트를 Get으로 끌고와서 연결하고 No Collision으로 설정한다.
사망 종료 노티파이 설정
적 블루프린트 - 커스텀 이벤트 생성(사망 종료) - ‘Destroy Actor’ 검색 후 연결 - ‘사망 종료’ 노티파이 생성 - 형변환 Enemy로 바꾸고 적의 블루프린트에 있는 ‘사망 종료’ 이벤트 연결 - 사망 애니메이션 - ‘사망 종료’ 노티파이 넣긱
히트 시 색 변경
적 블루프린트 - 메시 노드를 가져온다. - ‘Get Materials’ 검색(복수형이기 때문에 ‘배열’로 리턴된다.) - ‘BeginPlay’ 이벤트 노드 확인 - 다른 시퀀스 핀을 끌고 ‘For Each Loop’ 검색 - Loop Body 핀을 끌고 ‘Create Dynamic Material Instance’ 검색 후 Parent에 Array Element를 연결 - 생성된 메테리얼 인스턴스들을 저장할 ‘메테리얼들’ 변수를 ‘dynamic material instance’ 타입의 배열로 생성한다. - ‘메테리얼들’ 변수를 Get으로 배치하고 끌어서 ‘Add’를 검색하고 배열의 추가를 클릭한다. - 메시 컴포넌트를 Get으로 배치하고 ‘Set Material’을 검색하고 Create로 만들어진 메테리얼 인스턴스를 연결하고 반복문의 Array Index를 Element Index에 연결한다. -
For Each Loop : 한번씩 실행하는 함수다.
Loop Body : 실행할 배열
Array Element : 실행하는 배열 중 하나씩 반환된다.
Array Index : 실행하는 순서(배열의 몇번째 순서인지)
Completed : 반복을 다 돌고 빠져나온다.
Create Dynamic Material Instance : 게임 실행 중 변경 가능한 동적 메테리얼 인스턴스를 생성하는 함수다.
Add - 배열 - 추가 : 그냥 배열 추가
Add - 배열 - Add Unique : 중복 없이 추가
Add - 배열 - Add Items : 중복 허용 추가
정리
적의 메테리얼 2개를 가져온가. - 반복문을 돌린다. - 가져온 메테리얼의 인스턴스를 생성한다. - 생성한 배열 변수에 저장한다. - 메테리얼에 세팅한다.
새로 생성한 메테리얼들을 이용하여 히트시 색을 바꾸고 돌려줄 것이다.
히트시 색 변경 설정
AnyDamage 이벤트 노드 확인 - ‘메테리얼들’ 변수 Get으로 가져오고 Damaged 출력 핀에 ‘For Each Loop’로 같이 연결 - Array Element를 끌고 ‘Set Vector Parameter Value’ 검색 후 Parameter Name(변경될 파라미터 이름 : 여기서는 메테리얼의 색이니 BodyColor가 된다.)을 변경할 파라미터의 이름으로 바꾼다.(BodyColor) - Value는 바꾸고 싶은 색으로 바꾼다.
메테리얼 인스턴스의 베이스 색 확인 : 인스턴스 파일 - 디테일 - Global Vector Parameter Values - BodyColor
바꾼 색 돌아오게 설정
적 블루프린트 - 색 변경 노드 확인 - 반복문의 Completed 끌고 ‘Delay’를 검색하고 유틸리티의 플로 컨트롤의 ‘딜레이’를 클릭한다. - ‘메테리얼들’ 변수 가져다가 색 변경 노드들처럼 설정하고 연결한다.
딜레이 : 정해진 시간만큼 실행을 지연시키는 함수다. ⇒ 이건 블프에서만 되고 C에서는 안된다.
히트 시 공격자 바라보기
AnyDamaged 이벤트 노드 확인 - ‘Find Look at Rotation’ 검색 후 Start 핀을 끌고 ‘Get Actor Location’을 검색해서 연결하고, ‘공격자’ 변수를 Get으로 끌고 ‘Get Actor Location’을 검색해서 연결한다. - 반환 핀을 구조체 분할 하고 z를 끌어 ‘Make Rotator’를 검색하고 z에 연결한다. - 이것들을 ‘Set Actor Rotation’을 검색해서 연결한다.
Find Look at Rotation : 회전하여 바라보게 하는 함수
Start : 찾으려는 주체 : 자기 자신
Target : 찾는 객체 : 공격자
이 함수는 회전이기 때문에 ‘피치’, ‘롤’, ‘야’를 다 갖고있기 때문에 반환 핀이 구조체로 되어있어서 ‘구조체 핀 분할’이 가능하다.
넉백
적 블루프린트 - AnyDamaged 이벤트 노드 확인 - ‘Get Actor Forward Vector’ 검색 - 밀릴 거리를 곱하기 위해 ‘*’를 검색하고 밀릴 값이 들어올 핀을 우클릭하여 핀 변환을 누르고 플로드(단정밀도)를 클릭한다. - 100만큼 밀릴건데 전방에서 뒤로 밀릴것이니 ‘-100’으로 설정한다.(여기까지가 뒤로 밀릴 힘의 값이고 이 뒤에 나올것이 실질적으로 뒤로 밀쳐내는 함수노드들이다.) - 핀을 끌로 ‘Launch Character’를 검색
Get Actor Forward Vector’ : 해당 액터의 전방 벡터를 반환하는 함수다.
Launch Character : 캐릭터를 미는 함수다.
Launch Velocity : 미는 거리
XYOverride : 체크를 안하면, 밀리는 중에 다시한번 더 밀라는 명령이 들어오면 밀리는 값에 더해서 더 가속도가 붙어 밀리지만 체크하면, 가중치가 안붙고 밀리는 상태 그대로 더 밀리는 옵션이다.
ZOverride : XY에서 축만 바꾼것이다.
카메라 쉐이크
카메라 쉐이크 블루프린트 생성
콘텐츠 브라우저 - 우클릭 - 블루프린트 클래스 - 모든 클래스에서 ‘CameraShake’를 검색하여 ‘MatineeCameraShake’를 클릭한다.
카메라 쉐이크 설정
카메라 쉐이크 파일 - 진동 옵션 조절
진동 기간 : 진동을 얼마만큼 흔들릴지, 얼마만큼의 시간동안 흔들릴지 설정하는 옵션이다.
진동 블렌드 인 시간 ; 가만히 있는 때 부터 카메라가 흔들리기까지 걸리는 시간이다.
진동 블렌드 아웃 시간 : 카메라가 흔들리다가 원래상태로 돌아올때까지의 시간이다.
회전 진동 : 회전 축에 맞춰서 흔들리는 옵션이다. (잘 안쓴다.)
위치 진동 : 위치 축에 맞춰서 흔들리는 옵션이다.
X축 진동은 앞뒤로 흔들린다. ⇒ 총을 발사할때 사용한다.
진폭 : 흔들림의 세기
주파수 : 흔들림의 간격
초기 오프셋 : 흔들림이 시작될 지점
Zero : 원래 카메라의 위치에서 흔들림을 시작하겠다. (이걸로 설정)
Random : 흔들림이 시작될 지점을 랜덤으로 하겠다.
웨이브 폼
Parlin Noise : 부드러운 랜덤값(지그재그 값이 아닌 부드러운 곡선으로 강도가 올라간다.)
FOV 오실레이션 : 시야각 조절
스나이퍼 모드, 레이싱 게임의 부스트 등에서 사용하는 옵션이다.
카메라 쉐이크 실행
적 블루프린트 - AnyDamaged 노드 확인 - ‘Get Player Camera Manager’ 검색 - ‘Start Camera Shake’ 검색하고 타깃에 연결 후 Shake Class에 ‘카메라 쉐이크 파일’을 선택한다.