본문 바로가기

Unreal/Udemy 강의

Unreal Engine 4 C++ The Ultimate Shooter Course Section 9-12

Interp to Multiple Locations

이제 실제로 보간해주는 작업을 구현해주자.

먼저 보간할 각 위치에 대한 Index를 얻는 함수를 구현해주자.

 

인덱스의 경우 ItemCount을 통해 계산하게 된다.

총알이 여러개 있을 경우 기본적으로 ItemCount가 0인 첫 번째 총알을 반환할 것이다.

다음으로 ItemCount가 증가했으므로 다시 해당 Count보다 작은 값을 찾게 된다.

처음에 초기화 했을 때 전부 ItemCount을 0으로 했기 때문에 바로 다음 인덱스를 가르키게 된다.

이를 반복하며 ItemCount가 1씩 증가하며 다음 ItemCount가 0인 인덱스를 순차적으로 반환하게 된다.

 

InterpLoc에 대한 Index 변수도 선언 및 초기화 해주자.

 

그리고 해당 Index에 방금 만들어준 GetInterpLocationIndex() 함수를 통해 얻은 Index를 저장해줄 것이다.

그리고 해당 내용은 StartItemCurve 함수에서 선언해준다.

 

다음으로 ITemCount 또한 증가시키는 함수를 작성해보자.

 

간단하게 범위 체크를 해주고, 해당 인덱스에 해당하는 ItemCount을 증가시킬 것이다.

 

먼저 StartItemCurve 함수에서 1을 증가시킨다.

 

그리고 보간이 끝났을 때 다시 증가시켰던 수치를 없앨 것이다.

 

다음으로 보간 위치를 얻는 함수이다.

Switch 문을 이용하여 아이템 타입에 따라 index를 달리하여 보간 위치 함수를 호출하게 된다.

 

해당 인덱스의 SceneceComponent 위치를 GetComponentLocation() 함수를 통해 얻게 된다.

이는 전 강의에서 Shootercharcater BP 클래스에서 직접 statc mesh을 할당해 위치를 지정해줬던 그 위치이다.

 

이제 ItemInterp 함수에서 CameraInterpLocation 위치를 위 함수를 통해 얻은 위치로 바꿔주자.

이러면 모두 같은 위치가 아닌 지정했던 총 7개 위치를 통해 보간을 하게 될 것이다.

 

그존 StaticMesh를 설정했던 것은 이제 위치를 모두 할당했으므로 없애주자.

 

그리고 총알의 ItemType을 맞게 할당해주자.

무기의 경우도 Weapon으로 할당해주어야 한다.

 

이제 컴파일을 해보면 각기 다른 위치로 보간을 하는 모습을 볼 수 있다.