선형대수학 행렬 수학 핵심개념

핵심 개념

캐릭터가 벽에 부딪혔을 때 벽을 따라 미끄러지는 방향을 구하는 벡터.
이동 벡터에서 법선 방향 성분을 제거하면 벽에 평행한 성분만 남는다.


공식

  • V: 이동 벡터 (캐릭터가 움직이는 방향)
  • N: 법선 벡터 (벽의 수직 방향, 단위 벡터)
  • V·N: 내적 (V의 법선 방향 성분 크기)

직관적 이해

        N
        ↑
        |
V ──────+──────→ S (슬라이딩)
        |
────────────────── 벽
  1. (V·N)N → V에서 법선 방향 성분만 추출 (벽을 뚫고 들어가는 성분)
  2. 이걸 빼면 → 벽에 평행한 성분만 남음

벽을 뚫고 들어가는 성분을 제거하면 자연스럽게 미끄러진다.


반사 벡터와 비교

공식결과
슬라이딩V - (V·N)N벽에 평행하게 미끄러짐
반사V - 2(V·N)N법선 기준으로 대칭 반사

한 번 빼면 슬라이딩, 두 번 빼면 반사


게임 구현

Vector3 Slide(Vector3 V, Vector3 N) {
    return V - Dot(V, N) * N;
}
 
// 매 프레임 충돌 시
if (IsColliding()) {
    velocity = Slide(velocity, wallNormal);
}

활용 예시

  • 캐릭터가 벽에 붙어서 이동할 때
  • 경사면을 따라 미끄러질 때
  • FPS 게임의 벽 슬라이딩 구현

연관 개념