profile image

L o a d i n g . . .

반응형

https://youtu.be/552b3wzVlzo

 

벡터 공간을 사용해 이동 구현하기

  • 게임에서 사용하는 가상 공간의 체계와 물체를 구성하는 데 사용되는 수학.
  • 게임의 가상 세계는 다차원으로 구성된 수의 데이터, 벡터공간으로 구성되어 있다.
  • '공간'이라는 단어를 사용하지만, 이는 실제로 어떤 대상이나 성질을 표현하는 데이터! 현실 세계의 공간과는 다른 개념이다.
  • 하지만 우리는 캐릭터를 조종해서 탐험할 수 있는 가상 공간을 만들어 내야 하는데 어떻게 하지?
    → 공간의 차원을 늘린다!
  • 2차원 벡터를 이용해 방패연을 표현하는 건 무리 없다. 연을 움직이도록 실을 연에 연결한다. 2차원이 연이라면, 3차원을 만들어서 연과 거기에 딸린 실을 구성하고... 해당 실을 조종해서 연을 움직인다.
  • 2차원 물체의 2차원 이동을 구현하려면 3차원의 공간을 만든다. 2차원으로 물체를 표현하고, 나머지 한 개 차원으로 이동을 구현하는 것이다.
  • 만약 3차원을 3차원 볼륨으로 움직이려면? 4차원 공간을 만들고, 3차원으로 물체, 나머지 1차원으로 이동을 구현한다.

 

아핀 공간의 점과 벡터의 개념

  • 벡터 공간이라는 것을 크게 만들어서 이것을 둘로 쪼개고, 물체와 이동을 각각 나누어서 관리하는 시스템 기반으로 구축되어 있다.
  • 물체를 표현하는 공간 = 아핀 공간
  • 아핀 공간에 속해 있는 벡터 ⇒ 점 (Point)
  • 가상 공간의 물체는 점으로 구성되어 있다.

 

  • 이동을 위한 공간에 속해 있는 벡터 ⇒ 벡터(Vector) 또는 이동 벡터
  • 수학적 벡터: 벡터 공간의 원소
  • 물리적 벡터: 크기와 방향을 가진 대상.
  • 이동 벡터는 '물리적 벡터'에 해당한다.

 

  • 아핀 공간에 점을 만들면, 이 점은 이동 벡터의 크기와 방향을 사용해서 이동할 수 있다.
  • P1 (점) + v (벡터, 힘) = P2
  • 두 점 사이에는 하나의 벡터가 대응된다.
  • 점과 점을 빼면 이동 벡터를 구할 수 있다. v = P2 - P1
  • 서로 분리된 공간이지만, 두 점의 뺄셈을 통해 이동 공간에 있는 벡터를 구할 수 있음을 이해하자.

 

가상 공간에서 물체를 배치하는 원리

  • 게임 공간 = 월드 공간
  • 월드 공간 자체가 움직일 일이 없기 때문에 3차원만 사용해도 되며, 나머지 차원은 (0, 0, 0)으로 고정되어 있다.
  • 물체의 공간 = 로컬 공간
  • 아핀 공간의 점으로 되어 있다. 물체는 계속해서 움직여야 하기 때문에 나머지 한 차원을 적극적으로 사용해야 한다.
  • 월드 공간이 있고, 위치를 담는 로컬 공간을 포갠다고 생각하면 된다.
  • 물체를 구성하는 점은 로컬 공간을 계속 유지한다.
  • 로컬 공간에서 물체를 표현하고 남은 한 차원! 그 한 차원을 조정해서 이동시키는 것이다. 그러면 월드 공간에서 물체가 이동되는 것처럼 보인다.

 

정리

  • 벡터 공간은 대상의 성질을 표현하는 데 사용하나, 게임 제작에서는 대상과 이동을 함께 구현하는 기법을 사용한다.
  • 게임을 구성하는 모든 물체는 4차원을 가진다.
  • 확장된 공간의 개념에서 용도에 따라 물체를 구성하는 점과, 물체를 이동하는 (이동) 벡터로 나누어진다.

 

 

해당 포스트는 이득우 교수님의 '수포자를 위한 게임 수학' 동영상을 보며 개인 백업용으로 메모하였습니다.

반응형
복사했습니다!