본문 바로가기

UE5(언리얼)

언리얼5/UE5 총 구 방향과 사격 방향 매칭시키기

반응형

 

 

 

 

 

빨간 Line : 총구 ~ 총구 x방향으로 쭉

주황 Line : 총구 ~ 내 에임 방향(crosshair 위치)

 

일반적인 상황에서는 큰 문제는 없는데,,,,

 

 

 

이렇게 우측이나 좌측으로 크게 돌렸을 때 문제가 생긴다...

 

정확히 말하면 총이 회전을 안해서 이런 문제가 생긴 것이다.

 

 

  • **GetSocketBoneByName**은 소켓이 연결된 뼈의 이름을 가져오는 함수입니다.
  • **GetSocketByName**은 소켓 자체의 정보를 가져오는 함수입니다.

 

 

오른 손이 socket을 두고
그 소켓의 Transform을 가져온다.

UKismetMathLibraray를 이용해서 회전값을 가져온다.

회전값은 소켓방향이 타켓 방향을 바라보는 회전값이다.

 

이 값을 BP에서 사용한다.

 

이 회전 값으로 오른 손을 돌려준다

-> 오른손도 돌아가고, 총도 돌아가고!

 

그럼 왼손은??

 

왼손을 캐릭터의 오른손 뼈 공간으로 변환시킨다. 

1. TransformToBoneSpace는 특정 위치(여기서는 LeftHandTransform.GetLocation()로 얻은 위치) 지정된 뼈의 로컬 공간으로 변환한다.

 

2. 여기서는 왼손 소켓 위치를 오른손 뼈의 로컬 공간으로 변환하고, 그 변환 결과를 OutPosition과 OutRotation에 저장합니다.

 

 

 

오른손 회전하고 왼손을 오른속 로컬 공간으로 변환시키면 완료!

반응형