
Crosshair In Air Factor공중에 있을 때 확산도를 변하도록 해보자.기본적으로 기존 확산도 계산 함수에서 CrosshairInAirFactor 변수를 더해주면 된다. 그리고 이를 GetCharacterMovement()에 속한 IsFalling() 함수를 통하여 공중 여부를 판별 후, CrosshairInAirFactor의 값을 설정해주면 된다.여기서는 저번에 사용했던 보간 함수를 사용하여 점진적으로 확산이 이루어지도록 하였다. 공중에서는 천천히 넓게 퍼지도록, 지상에서는 빠르게 원상복구 되도록 하였다.

Spreading the Crosshairs이제 크로스헤어의 확산을 적용해보자.크로스헤어는 언리얼에서 HUD 블루프린트 클래스를 통해 적용했었다.따라서 C++에서 선언한 크로스헤어 확산 변수에 접근하기 위해 Getter 함수를 만들어주자. 추가적으로 저번에 Tick 내에 함수를 호출해주는 것을 잊어서 이번에 작성해주었다. 먼저 HUD 블루프린트 클래스에서 Shooter Character에 대해 유효한지 체크를 해주자.우리는 Shooter Character에 있는 getter 함수를 필요로 하므로, 유효여부 체크를 해주는 것이 좋다.이러한 작업은 C++ 내에서 각 포인터 유효여부 체크 작업을 해줬던 것과 동일하다.관련 변수를 먼저 만들어주고 이를 이용해 체크해주자. 이제 HUD 클래스내에서도 확산에 대한 ..

Crosshair Spread Velocity지금은 어떤 움직임에도 크로스헤어가 고정된 상태지만,캐릭터가 움직이거나, 줌 했을 때 등 움직임이 생겼을 때 크로스헤어도 마찬가지로 움직이는 것이 바람직하다.이번엔 이런 크로스헤어의 확산도에 대해 조정해보자. 먼저 관련된 변수들을 선언해주자.기본 확산 배율, 속도에 따른 확산, 공중에 따른 확산, 조준할 때의 확산, 사격 시의 확산 나타낸다. 이후 확산을 계산하는 함수를 작성해주자. 여기서 캐릭터의 걷는 속도에 따른 확산 배율을 계산해보자.걷는 속도는 0~600 사이인데, 이를 배율에 맞게 0~1로 매핑을 해주어야 한다.예를 들어 걷는 속도가 300이면 해당 배율은 0.5가 될 것이다. 여기서 사용하는 함수가 GetMappedRangeValueClamped 이..