전체 글 (842) 썸네일형 리스트형 Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-11 New Level Assets캐릭터 기반을 어느정도 다졌으니, 맵에 사용할 에셋을 다운로드하여 적용해주자.사용할 에셋은 Factory Environment Collection이라는 무료에셋으로, 용량이 상당하여 주의해야할 필요가 있다. 다운로드 후 프로젝트를 생성하고 해당 맵을 기존 프로젝트에 Migrate해주자. 그럼 이제 현재 프로젝트에 추가된 맵을 볼 수 있다.해당 맵을 열고 새로 저장해두자. 다음으로 게임모드를 기존에 만들어서 사용하던 것으로 교체해주자. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-10 Bullet Fire Aim Factor기존 FPS 게임 같은 경우 사격을 하다보면 반동으로 인해 조준점이 흔들린다.따라서 이번에는 사격 시 크로스헤어가 확산되도록 조정해보자.이를 위해 필요한 변수는 사격 시간, 사격 여부, 사격 타이머 이렇게 3가지이다. 마찬가지로 생성자에서 초기화 해주자. 사격 시작과 마침을 알리는 함수를 생성해주자.시작 함수에서는 SetTimer를 ShootTimeDuration 동안 타이머를 발동하고 마침을 알리는 함수를 호출해주자. 이제 StartCrosshairBulletFire() 함수를 FireWeapon() 마지막에서 호출해주자. 이후 확산도를 계산하는 부분에서 사격 여부를 나타내는 bFiringBullet 변수를 통해 값을 설정해주고 이를 더해주자. 추가적으로 현 상태.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-9 Crosshair Aim Factor이번엔 조준 시 확산도를 조정해주자.조준 할 때는 크로스헤어가 좁혀져야 하므로, 기존에 더해주던 것과 달리 이번엔 기존 값에 빼주게 된다. 그리고 기존의 조준 여부를 판별했던 bAiming 변수를 활용해 간단하게 구현이 가능하다. 추가적으로 확산에 관련된 변수들이 초기화를 해주지 않아 생성자에서 전부 초기화 작업을 해주었다. 이제 조준하면 크로스헤어가 좁혀지는 것을 볼 수 있다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-8 Crosshair In Air Factor공중에 있을 때 확산도를 변하도록 해보자.기본적으로 기존 확산도 계산 함수에서 CrosshairInAirFactor 변수를 더해주면 된다. 그리고 이를 GetCharacterMovement()에 속한 IsFalling() 함수를 통하여 공중 여부를 판별 후, CrosshairInAirFactor의 값을 설정해주면 된다.여기서는 저번에 사용했던 보간 함수를 사용하여 점진적으로 확산이 이루어지도록 하였다. 공중에서는 천천히 넓게 퍼지도록, 지상에서는 빠르게 원상복구 되도록 하였다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-7 Spreading the Crosshairs이제 크로스헤어의 확산을 적용해보자.크로스헤어는 언리얼에서 HUD 블루프린트 클래스를 통해 적용했었다.따라서 C++에서 선언한 크로스헤어 확산 변수에 접근하기 위해 Getter 함수를 만들어주자. 추가적으로 저번에 Tick 내에 함수를 호출해주는 것을 잊어서 이번에 작성해주었다. 먼저 HUD 블루프린트 클래스에서 Shooter Character에 대해 유효한지 체크를 해주자.우리는 Shooter Character에 있는 getter 함수를 필요로 하므로, 유효여부 체크를 해주는 것이 좋다.이러한 작업은 C++ 내에서 각 포인터 유효여부 체크 작업을 해줬던 것과 동일하다.관련 변수를 먼저 만들어주고 이를 이용해 체크해주자. 이제 HUD 클래스내에서도 확산에 대한 .. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-6 Crosshair Spread Velocity지금은 어떤 움직임에도 크로스헤어가 고정된 상태지만,캐릭터가 움직이거나, 줌 했을 때 등 움직임이 생겼을 때 크로스헤어도 마찬가지로 움직이는 것이 바람직하다.이번엔 이런 크로스헤어의 확산도에 대해 조정해보자. 먼저 관련된 변수들을 선언해주자.기본 확산 배율, 속도에 따른 확산, 공중에 따른 확산, 조준할 때의 확산, 사격 시의 확산 나타낸다. 이후 확산을 계산하는 함수를 작성해주자. 여기서 캐릭터의 걷는 속도에 따른 확산 배율을 계산해보자.걷는 속도는 0~600 사이인데, 이를 배율에 맞게 0~1로 매핑을 해주어야 한다.예를 들어 걷는 속도가 300이면 해당 배율은 0.5가 될 것이다. 여기서 사용하는 함수가 GetMappedRangeValueClamped 이.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-5 Aim Look Sensitivity이번엔 FPS 게임의 필수 항목이라고도 볼 수 있는 감도에 대해서 조절해보자.가까우면 보통 감도가 느려야 맞추기가 수월하니 이를 목표로 조정할 것이다. 처음에 우리는 좌우 화살표를 통해 캐릭터가 회전할 수 있도록 하였다.우선 이와 관련된 변수들을 우선 선언해주자.평상시와 조준시에 대한 TurnRate와 LookUprate 값들 이다. 마찬가지로 생성자에서 초기화 해주자. 조준 시와 비조준 시에 대해 값을 설정해주는 함수를 만들어 주자.매 순간 체크를 해야하므로 이를 Tick 함수 내에 위치시켜주면 된다. 다음으로 핵심이라고 할 수 있는 마우스에 대한 감도도 조절해주자.기존에 AddControllerPitchInput와 같은 함수로 간단하게 했던 것을 직접 함수를 생성하.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-4 Aiming State Machine현재는 항상 조준하는 상태이므로, 이를 스테이트 머신을 통해 자세 전환을 하도록 만들어주자.이를 위해 ShooterAnimInstance 클래스에 Aiming 여부에 대한 변수가 필요하다. 이는 기존의 ShooterCharacter 클래스에서도 선언했었다.따라서 해당 클래스에서 getter 함수를 만들어주자. 이제 이를 이용하여 ShooterAnimInstance 클래스에서 Aiming 여부를 얻어주자. 다음으로 새롭게 스테이트 머신을 생성해주자. 마찬가지로 state에 애니메이션도 할당해주자.기존에 Cached한 내용을 사용한다. Aiming의 경우 기존 내용을 또 Cached로 저장하고, 이를 사용해주자. 변환 조건은 Aiming의 상태에 따라 변화한다. 변환 시간.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 106 다음