https://youtu.be/J9lVADyd8ZQ?si=9k9aVd57OfBzXMfQ
바람이 부는 기계를 만들기 위해 유튜브 튜토리얼 영상을 참고하던 중이었다.

지정된 영역을 (촘촘히) LineTracing하여 쏘는 방향으로 AddForce 힘을 주는 건 무난히 이해했다.


이 유튜브는 여기서 나아가 위치, 각도와 상관없이 균일하게 받는 힘을 물리적으로 계산하여 보정을 하기에 따로 정리해보았다. (저렇게 범위적으로 바람을 쏘는데 오브젝트가 요란하게 구르는 게 어색해 보인다는 의도에서인듯?)

힘이 가해진 표면의 노말 벡터를 이용해 힘의 방향을 split한다. 힘의 방향과 노말 벡터 반대 방향을 이용해 Force를 Project(물리적인 방향을 특정 방향으로 투영)한다. 두 벡터 내적으로 힘 크기를 보정한다. (유튜버의 표현을 빌림)

HitResult가 ImpactNormal를 제공해주므로 이를 반대방향으로 (Negate Vector) 값을 얻은 뒤, 힘의 방향 벡터와 내적을 구한다. (캡쳐에서는 위 방향=Get Up Vector)
여기서 얻은 절대값을 힘의 값에 곱하면 비스듬히 맞아 줄어든 보정된 힘 값이 나온다.

여기서 나아가서 힘의 방향도 저 빨간 벡터합으로 바꿔야 한다고 하는데 강사왈 왜인지는 오래돼서 기억이 안난다고 한다.

표면 노말벡터 반대방향과 힘 벡터를 더하고 이를 Normalize한 것과 보정된 힘값을 곱하면 최종 힘값 완성.
'프로그래밍 > 언리얼엔진' 카테고리의 다른 글
| [언리얼] CharacterMovementComponent 파이프라인-1- (1) | 2024.09.12 |
|---|---|
| [언리얼] 엔진 분석 Character Movement Component -0- (3) | 2024.08.30 |
| [언리얼5] 카메라시퀀스 적용해보기 (애니메이션/컷씬) -인디게임 제작기 4- (1) | 2024.07.27 |
| [언리얼5] 애니메이션 적용시키기 (인디게임 제작기 3) (3) | 2024.07.13 |
| [언리얼5] 인디게임 제작기 2 : 캐릭터, 폰, 충돌, 피직스 (3) | 2024.06.28 |