벡터 연산과 DeltaTime, 블루프린터 함수 라이브러리 활용
벡터 연산과 델타 타임 (Unreal Engine)
벡터 기본 개념
- 벡터(Vector): 크기(길이)와 방향을 동시에 가지는 값.
- 길이를 가지고 있는 것이 벡터이며, 좌표(x, y, z)로 표현됨.
- 벡터의 덧셈:
x끼리, y끼리, z끼리 더함 → 두 벡터의 정확한 가운데 방향.
- 벡터의 뺄셈: 덧셈과 동일하게
x, y, z 각각 빼줌.

벡터 연산의 쓰임
- 각도에 의한 동작, 물체의 방향 계산, 이동 속도, 충돌 판정 등에 활용.

단위 벡터 (Unit Vector)
- 크기가 1인 벡터.
- 벡터의 크기: 피타고라스 정리로 계산
길이 = √(x² + y² + z²)
- 정규화(Normalize): 벡터의 크기를 1로 맞추는 연산.
(x/길이, y/길이, z/길이)
내적(Dot Product)
- 공식:
A·B = Ax*Bx + Ay*By + Az*Bz
또는
A·B = ||A|| * ||B|| * cosθ
- 의미: 두 벡터 사이의 각도와 방향 관계를 계산.
- 결과가 1 → 같은 방향
- 결과가 0 → 서로 직각
- 결과가 -1 → 반대 방향
외적(Cross Product)
- 공식:
A × B = 두 벡터에 모두 수직인 벡터
- 보통 법선 벡터(노멀 벡터) 계산에 사용.
게임 루프와 프레임
- Tick: 매 프레임마다 호출되는 함수.
- FPS(Frame Per Second): 1초에 화면이 갱신되는 횟수.
- Unreal Engine은 기본적으로 120FPS 제한.
- 8.33ms → 한 프레임의 시간 (1초 ÷ 120프레임)

- 게임은 내부적으로
while 루프를 계속 돌면서 매 프레임 처리.
- FPS 차이는 게임 속도 차이를 발생시킬 수 있으므로, 프레임에 의존하지 않는 계산이 필요.

델타 타임 (Delta Seconds)
- Delta Seconds: 이전 프레임과 현재 프레임 사이의 시간(초).
초당 속도 * Delta Seconds = 현재 프레임 이동 거리
→ 프레임이 달라도 동일한 이동 속도를 유지.



- 장점: 프레임이 튀더라도 속도 차이 없이 부드러운 움직임 제공.
- 게임 이동 로직 기본 공식:
위치 += 방향 벡터 * 속도 * Delta Seconds

블루프린트 함수 라이브러리
- 함수 라이브러리: 여러 블루프린트에서 사용할 수 있는 전역 함수 모음.
- 로컬 변수: 해당 함수 내에서만 사용 가능.
- 입력(Input): 함수 인자.
- 출력(Output): 함수 반환 값.





함수 호출 예시
Self: 자기 자신 참조.
- 다른 블루프린트에서 전역 함수를 호출해 동일한 동작 수행 가능.


핵심 요약
- 벡터 연산(덧셈, 뺄셈, 내적, 외적)은 게임 수학의 기본.
- 단위 벡터와 정규화를 이해하면 방향 계산이 쉬워짐.
- Delta Seconds를 곱해주면 FPS 차이 없이 동일한 속도 유지.
- 블루프린트 함수 라이브러리를 사용하면 재사용 가능한 전역 함수 작성 가능.