1. 개요

  • Character MovementPaper Character 클래스에서 상속받아 생성된 컴포넌트로, 캐릭터의 물리적 이동, 속도, 가속도, 관성 등을 제어하는 핵심 컴포넌트입니다.
  • 단순히 좌표 이동(Set Actor Location)에서 벗어나 물리 법칙에 기반한 자연스러운 이동 및 다양한 이동 모드를 구현할 수 있습니다.

2. Character Movement의 장점

  1. 물리 법칙 통합:
    • 캐릭터 이동 시 중력, 관성, 가속도 등 물리적 효과를 자동으로 적용.
  2. 다양한 이동 모드 제공:
    • Walking, Jumping/Falling, Flying, Swimming 등 다양한 이동 방식이 포함.
  3. 유연한 설정:
    • 이동 속도, 가속도, 브레이킹 감속도 등 세부적인 값을 조정 가능.
  4. 확장 가능성:
    • 복잡한 게임에서도 여러 상황(예: AI 이동, 플레이어 이동)을 통합적으로 관리할 수 있음.

3. 주요 노드와 기능

3.1 Add Input Vector

  • 기능: 월드 좌표계에서 특정 벡터 값을 입력받아 캐릭터의 이동을 제어.
  • 활용: 캐릭터의 이동 방향이나 가속도에 영향을 주는 추가 입력값으로 사용.

3.2 Add Movement Input

  • 기능: 캐릭터의 로컬 좌표계(또는 월드 좌표계)에 따라 이동 방향과 속도를 제어.
  • 특징:
    • 좌우 이동은 X축, 상하 이동은 Z축을 기준으로 설정.
    • Scale Value로 입력 크기를 조정 가능.

4. 이동 구현 예시

  • 코드 흐름:
    1. 입력받은 방향(상하좌우)을 바탕으로 벡터 값을 계산.
    2. Add Movement Input 노드에 벡터 값을 전달해 캐릭터 이동을 처리.
  • 설정 값:
    • 이동 속도는 Speed 값으로 조정.
    • 프레임당 이동 거리 계산 시 Delta Seconds를 활용하여 프레임 독립적인 이동을 구현.

5. Character Movement의 상세 옵션

일반 설정 (General Settings)

  1. Gravity Scale:
    • 중력의 영향을 조정. (예: 1.0은 기본 중력, 0.5는 절반 중력)
  2. Max Acceleration:
    • 최대 가속도를 설정.
  3. Braking Deceleration:
    • 감속 시 속도 감소량 조절.

이동 모드 설정

  • Default Land Mode: Walking, Flying 등 기본 이동 모드를 지정.
  • Default Water Mode: Swimming과 같은 수중 이동 설정.

커스텀 움직임 (Custom Movement):

  • 캐릭터의 이동 방식을 완전히 커스터마이즈할 수 있음.

6. 코드 구현 시 유의점

  1. 성능 최적화:
    • 불필요한 물리 연산을 줄이기 위해 필요하지 않은 모드는 비활성화.
  2. 테스트 기반 조정:
    • 각 옵션을 조정하면서 실제 게임 환경에서 테스트를 통해 적합한 값을 찾는 것이 중요.
  3. 기능 확장:
    • AI 캐릭터, 네트워크 플레이어 등 다양한 상황에서 일관된 이동 로직을 제공.

7. 결과

  • Character Movement를 활용해 캐릭터의 자연스러운 물리적 이동을 구현.
  • 단순 이동부터 복잡한 AI 제어까지 확장 가능하며, 각종 물리적 효과를 손쉽게 적용 가능.

profile
李家네_공부방

0개의 댓글