Let's Make An FPS in the Godot Engine
- 이 튜토리얼 시리즈는 이전 버전의 선형적이고 단편적인 문제점을 개선한 Godot Engine FPS 튜토리얼 시리즈 버전 2입니다. 🔄
- Godot 4.1 stable 버전을 사용하며, 프로젝트의 기본 구조와 파일 시스템 조직화에 중점을 둡니다. ⚙️
- 레벨 지오메트리, 플레이어 컨트롤러, 월드 환경을 포함하는 프로토타입 레벨 설정 방법을 설명합니다. 🏗️
- 플레이어 캐릭터는
CharacterBody3D를 기반으로 하며, 시각적 메시와 충돌 메시를 분리하여 구성합니다. 👤
- 카메라는
CameraController 노드 내에 배치되며, 마우스 회전 노드와 Camera3D를 분리하여 향후 카메라 효과 추가를 용이하게 합니다. 🎥
- 마우스 움직임을 캡처하는
MouseCaptureComponent와 같이 스크립트를 모듈화하여 코드의 가독성과 유지보수성을 높입니다. 🖱️
- 카메라 컨트롤러 스크립트는 마우스 입력을 받아 카메라의 상하좌우 회전을 처리하며, 수직 회전(틸트)에는 제한을 둡니다. 🔭
- 플레이어의 좌우 회전은
PlayerController에, 상하 회전은 CameraController에 각각 적용하여 플레이어가 뒤집히는 것을 방지합니다. 🤸
- WASD 키를 이용한 플레이어 이동은
_physics_process 함수 내에서 move_and_slide를 사용하여 구현하며, 중력 설정을 포함합니다. 🚶
- 이동 속도 계산 시 대각선 이동 속도 증가를 방지하기 위해 벡터를 정규화하고, 가속 및 감속에
lerp와 move_toward를 사용하여 자연스러운 움직임을 만듭니다. 💨
- 수직(Y) 속도를 수평(X, Z) 속도와 분리하여, 플레이어가 떨어지거나 점프할 때 수평 이동 입력에 영향을 받지 않도록 합니다. ⚖️
- 향후 더 견고한 플레이어 동작 관리를 위해 상태 머신을 도입할 예정임을 언급합니다. 🤖