TIL_007 (InterpToMovement, FloatingPawnMovement, 타임라인)

김펭귄·2025년 8월 5일

Today What I Learned (TIL)

목록 보기
7/109

블루프린트 연산

총알 발사 / 재장전

  • 초기에 총알 30발이 제공

  • 마우스 좌클릭 시, 총알 발사

  • R 누르면 30발로 재장전

구구단을 외자

총알 발사 / 재장전 과제

  • 총알이 남아있을 경우에만 발사 가능

  • 총알이 30발로 가득 차있으면 재장전 불가능

액터 움직이기

InterpToMovement

  • 원하는 위치로 actor가 이동할 때 순간이동하는 것이 아니라 부드럽게 이동하게 해주는(interpolate) component

  • Control Points로 원하는 위치 설정

  • Behaviour Typ에서 Ping Pong 설정으로 왔다갔다 하게 설정

InterpToMovement 직접 구현

  • StartLocation: Actor의 처음 위치
  • MoveDistance: 이동할 거리
  • Vector: 이동할 방향
  • 매 이벤트 tick마다 아래의 과정 수행
    1. delta 시간이 지난만큼 vector따라 이동
    2. StartLocation에서 MoveDistance만큼 이동하였으면 현재 위치를 StartLocation으로 설정, Vector 방향 반대로 설정

FloatingPawnMovement

  • 중력이나 지형 영향 없이 자유롭게 이동하는 Pawn에 사용하는 무브먼트 컴포넌트

  • 드론, 우주선, 호버크래프트, 유령, 비행기 등에 사용

  • Add Movement Input 함수로 움직임을 주어 Pawn을 이동시킬 수 있다

타임라인을 이용한 FloatingPawnMovement 구현

Timeline

  • 시간을 기반(축)으로 하여 변화하는 여러 종류의 값을(Float, Vector, Event) 생성

  • 시간의 흐름에 따른 해당 값을 실시간으로 출력

  • 기능
  1. 애니메이션 보간 / 연출 구현
    시간에 따른 변화가 필요한 효과에 유용 (조명 점멸, 문의 회전)

  2. 재생 제어
    시작(play), 멈춤(stop), 반복(loop), 역재생(reverse) 가능

  3. Use last keyframe: 마지막 key가 시간범위 밖이어도 이거까지는 쓰게 해주는 기능

Lerp

  • A, B의 linear interpolation을 해줌

구현

  • timeline을 통해 alpha값을 얻고, 이 alpha로 A-B 구간의 선형보간 위치를 찾아 그 위치로 actor를 배치

profile
반갑습니다

0개의 댓글