상호작용 기술적 의사결정

조정원·2026년 1월 14일

1. 트레이스 방법

생각할 점

  • single / multi
    • 아이템 여러 개가 겹쳐 있는 경우
    • NPC가 여러명 인데 대화 할 때
  • line / sphere / capsule
    • 정면에 있는 오브젝트
    • 바닥에 있는 오브젝트
  • Overlap Sphere

의사결정

  • 스피디한 게임에서 라인 트레이스로 정교한 상호작용을 하면 게임의 템포가 늦어질 수 있음
  • 오버랩의 경우 주변에 있는 물체를 넓게 탐지하기에 좋아 여유로운 판정이 가능
  • 비용적 측면에서도 오버랩이 훨씬 가벼움
  • 대신 여러 물체가 오버랩 되었을 경우를 위해 일정 시간마다 대상 오브젝트를 선정

2. 상호작용 부드럽게 보정

생각할 점

캐릭터 특정 위치로 이동 후 상호작용

  • 순간이동(엘든링)
  • 특정 위치까지 걸어서 이동(스텔라블레이드)

의사결정

  • 먼 거리에서 순간이동 하면 캐릭터가 끊겨서 부자연스럽게 보임
  • 특정 위치까지 이동 후 상호작용은 대부분의 경우에서 부드럽게 연출 가능
  • 거리가 너무 가까울 시에만 회전을 제한하여 캐릭터를 자연스럽게 움직임

3. 상호작용 오브젝트

생각할 점

  • 상호작용 오브젝트 동작
  • GameplayAbility vs 인터페이스

의사결정

  • 모든 액터에 ASC를 부여하는 건 성능적 측면에서 좋은 선택이 아님
  • 인터페이스로 해당 액터의 동작을 정의
  • 느슨한 구조를 유지하여 가볍고 확장성이 높은 결과로 이어짐

4. 상호작용 어빌리티 실행

생각할 점

  • 각 주체의 동작 시점이 상호작용 마다 서로 다름
    • 캐릭터 상호작용 동작 시점
    • 캐릭터 위치로 이동 시점
    • 상호작용 오브젝트 동작 시점
    • UI 표시 및 해제 시점
  • 상호작용 전/후 공통 로직 존재

의사결정

  • 추상 클래스 + 템플릿 매서드를 선택
  • 공통 기능은 부모 클래스에서 정의
  • 자식 클래스에서 템플릿의 함수를 재사용 또는 재정의
  • ActiveAbility에서 템플릿 함수를 조합하여 원하는 순서로 동작을 구성하면 되는 편리한 구조
  • 재사용성, 확장성 측면에서 유리한 설계
profile
게임 AI 개발자 조정원입니다.

0개의 댓글