1. 개요
Character Movement
는 Paper Character
클래스에서 상속받아 생성된 컴포넌트로, 캐릭터의 물리적 이동, 속도, 가속도, 관성 등을 제어하는 핵심 컴포넌트입니다.
- 단순히 좌표 이동(Set Actor Location)에서 벗어나 물리 법칙에 기반한 자연스러운 이동 및 다양한 이동 모드를 구현할 수 있습니다.
2. Character Movement
의 장점
- 물리 법칙 통합:
- 캐릭터 이동 시 중력, 관성, 가속도 등 물리적 효과를 자동으로 적용.
- 다양한 이동 모드 제공:
- Walking, Jumping/Falling, Flying, Swimming 등 다양한 이동 방식이 포함.
- 유연한 설정:
- 이동 속도, 가속도, 브레이킹 감속도 등 세부적인 값을 조정 가능.
- 확장 가능성:
- 복잡한 게임에서도 여러 상황(예: AI 이동, 플레이어 이동)을 통합적으로 관리할 수 있음.
3. 주요 노드와 기능
- 기능: 월드 좌표계에서 특정 벡터 값을 입력받아 캐릭터의 이동을 제어.
- 활용: 캐릭터의 이동 방향이나 가속도에 영향을 주는 추가 입력값으로 사용.
- 기능: 캐릭터의 로컬 좌표계(또는 월드 좌표계)에 따라 이동 방향과 속도를 제어.
- 특징:
- 좌우 이동은 X축, 상하 이동은 Z축을 기준으로 설정.
- Scale Value로 입력 크기를 조정 가능.
4. 이동 구현 예시
- 코드 흐름:
- 입력받은 방향(상하좌우)을 바탕으로 벡터 값을 계산.
Add Movement Input
노드에 벡터 값을 전달해 캐릭터 이동을 처리.
- 설정 값:
- 이동 속도는 Speed 값으로 조정.
- 프레임당 이동 거리 계산 시
Delta Seconds
를 활용하여 프레임 독립적인 이동을 구현.
5. Character Movement
의 상세 옵션
일반 설정 (General Settings)
- Gravity Scale:
- 중력의 영향을 조정. (예: 1.0은 기본 중력, 0.5는 절반 중력)
- Max Acceleration:
- Braking Deceleration:
이동 모드 설정
- Default Land Mode: Walking, Flying 등 기본 이동 모드를 지정.
- Default Water Mode: Swimming과 같은 수중 이동 설정.
커스텀 움직임 (Custom Movement):
- 캐릭터의 이동 방식을 완전히 커스터마이즈할 수 있음.
6. 코드 구현 시 유의점
- 성능 최적화:
- 불필요한 물리 연산을 줄이기 위해 필요하지 않은 모드는 비활성화.
- 테스트 기반 조정:
- 각 옵션을 조정하면서 실제 게임 환경에서 테스트를 통해 적합한 값을 찾는 것이 중요.
- 기능 확장:
- AI 캐릭터, 네트워크 플레이어 등 다양한 상황에서 일관된 이동 로직을 제공.
7. 결과
Character Movement
를 활용해 캐릭터의 자연스러운 물리적 이동을 구현.
- 단순 이동부터 복잡한 AI 제어까지 확장 가능하며, 각종 물리적 효과를 손쉽게 적용 가능.