Make Unreal REAL.
article thumbnail
옆으로 도는 애니메이션 적용

Unreal Engine 5 C++ Multiplayer Shooter 현재 가만히 서서 무기를 조준하기 때문에, [-90°, 90°] 범위 밖의 회전을 수행하면 부자연스럽게 보이는 현상이 있다. 좌우측 회전에 따라 해당 방향으로 옆으로 도는 애니메이션을 재생해본다. 애님 인스턴스에서 가만히 있기, 왼쪽으로 돌기, 오른쪽으로 돌기를 판별하기 위해 열거형을 선언할 헤더를 생성한다. .cpp 소스 파일은 필요 없으므로, 언리얼 에디터가 아닌 VS에서 직접 생성한다. VS에서 소스 혹은 헤더 생성 시, 지워지기 쉬운 Intermediate 폴더가 기본 폴더로 설정되므로 바꿔줘야 한다. VS를 닫은 후 Binaries, Intermediate, Saved 폴더를 지우고 VS 파일을 재생성해주면 바뀐 폴더 구조가..

article thumbnail
FABRIK

Unreal Engine 5 C++ Multiplayer Shooter FABRIK(Forward And Backward Reaching Inverse Kinematics) 언리얼 엔진에서 제공하는 애니메이션 IK 기능이다. FABRIK Forward And Backward Reaching Inverse Kinematics, 앞뒤로 늘어나는 IK 를 사용하는 애니메이션 노드입니다. docs.unrealengine.com FABRIK을 활용해 현재 무기 장착 시 부자연스럽게 보이는 왼쪽 손의 위치를 조정해본다. 우선 무기 메쉬에 소켓을 추가한다. 나중에 다른 무기들에도 사용할 수 있도록, 소켓 이름에 일관성을 유지해야 한다. 애니메이션 블루프린트에서 FABRIK 노드를 사용할 때, IK 끝 지점의 Tran..

article thumbnail
회전 리플리케이션 시 고려할 사항

Unreal Engine 5 C++ Multiplayer Shooter 로컬에서는 잘 되는데, 클라이언트에서 테스트 해보면 특정 상황에서 왠지 하늘만 보고 있는 현상이 생긴다. 서버에서 왜 이상한 곳을 바라보고 있는지 확인하기 위해, Pitch 값을 출력해본다. 0도 기준 위를 보고 있을 때는 문제가 없다. 0도보다 낮은 곳을 보고 있으면, Pitch가 음수가 아닌 360° - θ°의 값을 갖는 것을 볼 수 있다. 왜 네트워크를 통해 복제된 Pitch는 양수 값을 갖는지 확인해보자. Character Movement 컴포넌트에서 PitchINT로 검색하면, 이 부분에서 Yaw, Pitch, Roll을 패킹하여 서버에 전송하는 것을 확인할 수 있다. 패킹된 Yaw, Pitch와 Roll의 자료형이 unsi..

article thumbnail
Aim Offset 적용

Unreal Engine 5 C++ Multiplayer Shooter Aim Offset의 Axis에 전달할 Yaw와 Pitch 값을 애님 인스턴스에서 관리하도록 한다. 애니메이션 블루프린트에서 사용하기 위해 Yaw와 Pitch 변수를 애님 인스턴스에 선언했지만, 실제로는 캐릭터와 관련된 값들이기 때문에 캐릭터 클래스를 통해 제공한다. 캐릭터 클래스에 Yaw와 Pitch 변수를 선언하고 Getter를 선언한 후, 매 Tick마다 값을 계산하는 AimOffset() 함수도 선언한다. 어느 방향을 보고 있든 동일한 Pitch와 달리, Yaw는 기준 회전으로부터의 차이만큼 계산해야 하기 때문에 StartingAimRotation 변수를 선언한다. 헤더를 포함한다. Aim Offset을 통한 무기 조준에서 Y..

article thumbnail
Aim Offset

Unreal Engine 5 C++ Multiplayer Shooter Aim Offset은 Blend Space와 매우 유사하게 동작한다. 다만, Axis에 해당하는 애니메이션을 블렌딩해 출력하는 Blend Space와 달리, Base Pose에다가 Axis에 해당하는 애니메이션을 추가(Additive)해 출력한다는 점이 다르다. What's the difference between AimOffset and BlendSpace? We know that AimOffset inherits from BlendSpace, but what is the core difference between the two? When should I use AimOffset instead of BlendSpace? When s..

article thumbnail
조준하면서 걷기

Unreal Engine 5 C++ Multiplayer Shooter 서 있을 때와 웅크렸을 때, 걷는 도중 조준하는데 사용할 블렌드 스페이스를 생성한다. 조준 시에는 몸 기울이기(Leaning)는 사용하지 않고 와리가리(Strafing)만 할 것이므로, 1D로 생성한다. 기존 블렌드 스페이스와 동일한 방식으로 구성한다. 걷는 도중에 조준할 수 있도록 블렌드 스페이스를 다음과 같이 수정한다. 가만히 서있거나 웅크리고 있을 때도 조준할 수 있도록 한다. 애니메이션 적용에 성공했으나, 조준 시에도 이동 속도가 동일해 부자연스럽다. bAiming 변수를 통해 조준을 관리하는 Combat 컴포넌트에서 조준 시 이동 속도를 줄이도록 해본다. 변수를 추가하고 생성자에서 기본값을 설정한 후, BeginPlay() ..

검색 태그