Apply impulse 관련 질문

motion에서 cancel contrary motion와 cancel contrary motion xyz의 차이점이 뭔가요? 설명을 봐도 잘 모르겠네요.
상대 속도를 상쇄한다는 것은 기존 운동량을 0으로 잡고 충격을 가한다는 건가요?

cancel contrary motion과 cancel contrary motion xyz의 차이점은 이렇게 나뉩니다.
이하 전자와 후자로 칭함

xz축은 영향이 없고 y축만 영향이 있는 apply impulse를 10의 값으로 적용하면, 방향 예시: (0, 1, 0), (0, -1, 0) 이런 경우에 전자와 후자의 차이가 분명하게 나뉩니다.

전자에 경우 xz축의 움직임또한 0으로 상쇄시키고, y축의 움직임또한 상쇄한 뒤 10만큼 y축의 움직임으로 올리거나 내립니다.
최종 움직임: (0, -10, 0), (0, 10, 0)

허나 후자에 경우엔 xyz를 한번에 계산하기 때문에 apply impulse에 영향이 없는 xz축은 아예 영향을 주지 않습니다. xz의 움직임은 그대로 준채 y값만 상쇄한 뒤 10만큼 올리거나 내리죠.
최종 움직임: (x, -10, z), (x, 10, z)

이것을 확실하게 체감하는 방법은 아래와같은 세팅
action
{
Apply Impulse(Event Player, Direction From Angles(0, -90), 15, To World, Cancel Contrary Motion);
}
action
{
Apply Impulse(Event Player, Direction From Angles(0, -90), 15, To World, Cancel Contrary Motion XYZ);
}
이 두가지를 해당 플레이어가 허공에서 관성이 있는 상태로 (오버워치 시스템 특성상 움직이면서 점프하면, 키가 계속 눌려있지 않아도 그쪽방향으로 향하려는 경향이 존재)실행할시

  • 전자에 경우엔 xz축의 움직임이 없어지지만, 후자에 경우엔 관성이 그대로 유지가 됩니다.

이것이 전자와 후자의 용도 차이입니다.

하지만 가장 큰 문제점은 전자로 인하여 관성이 삭제되더라도 삭제되는 순간에 플레이어가 진행방향으로 향하는 키를 계속 누루고 있다면, 영향이 없습니다. 물론 움직일수 없는 상태이상이 적용된채로 적용을 시킨다면, 관성을 유지시키거나 없애는 형태로 만들수 있습니다.

결국 전자와 후자 둘다 y값을 상쇄시키지만 차이점은
전자는 x, z도 상쇄시키고
후자는 x, z를 상쇄하지 않는다는 거죠?

네 그런셈이죠

좋아요 1개