[Unity] Spline

Learning 

When: 1학년 9월 3일

 

How:

학교 수업 시간에 날아다니는 몬스터의 이동을 구현해야 했는데, 선생님이 Spline이라는 기능을 알려주셔서 공부하게 되었습니다.

 

Understanding:

  • 사용법 :
    1. Spline은 맵에 마우스로 경로를 만들어서 오브젝트가 그 경로를 따라 이동하게 만들 수 있는 기능입니다.
      앞서 말한 것처럼, 특정 사물의 이동 패턴을 만들 수 있습니다. Spline을 만드는 방법은
      하이라키 창에서 오브젝트를 만드는 방법과 같은데, 우클릭 -> Spline -> Draw Splines Tool을 눌러
      직접 Spline을 만들거나 Square, Star 등의 모양의 Spline을 만들 수도 있습니다.
      클릭해서 Spline을 만들고 esc 키를 둘러 만드는 것을 종료하면 Spline을 만들 수 있습니다.
    2. 만든 Spline을 사용하기 위해선 움직일 오브젝트에 Spline Animate 컴포넌트를 붙이고
      설정을 조정하면 끝납니다.
  • 설정 
    • Spline : 만들어진 Spline을 넣어주면 됩니다.
    • Up/Forward Axis : Spline은 3D 게임을 기준으로 하므로 그냥 위를 Y로,
      앞은 Z로 설정한다면 오브젝트가 Spline에 관통되며 움직입니다. 그래서 위쪽으로 90도 돌려주면 딱 맞는데,
      Up이 Y일 때 카메라 방향이 되기 때문에 Z로 바꿔주고, Z가 아래 방향이기 때문에 Y로 바꿔주면
      원하는 대로 움직입니다.
    • Align To : 방금 제대로 움직이지 않았던 이유가 Align To가 Spline Element 였기 때문인데,
      World SpaceSpline Object로 설정한다면 오브젝트가 Spline에 맞게 돌아가진 않아도
      Spline을 따라 잘 움직인다.
    • Play On Awake : 시작할 때 Play를 하게 됩니다.
    • Start Offset : * 1000%로 해서 시작할 때 처음에서부터 몇 %만큼 앞에서 시작할지 정할 수 있습니다.
      0.5로 하면 Spline의 중간에서부터 시작합니다.
    • Method : Time은 그 밑의 DurationSpeed 중 하나를 정해 속도를 조절할 수 있습니다.
      Time으로 하면 Duration을 조정하여 Spline의 끝까지 가는 데 얼마나 걸리게 할지를 정할 수 있고,
      Speed로 하면 Speed를 조절하여 속도를 조절할 수 있습니다.
    • Easing : Easing으로 속도의 변화를 설정할 수 있습니다. Ease In Only는 갈수록 빨라지는,
      Ease Out Only는 갈 수록 느려지는, Ease In-Out은 처음부터 중간까지는 느려지고,
      중간에서 끝까지는 빨라지는 다른 2개를 섞은 Ease입니다.
    • Loop Mode : 재시작을 어떻게 할지 정할 수 있습니다. Once는 한 번만 실행하고
      재시작하지 않는 것이고, Loop Continuous는 계속 처음부터 재시작하는 것입니다.
      Ease In Then Continuous는 계속 처음부터 다시 시작하되, Easing으로 빨라진 속도는
      초기화되지 않기 때문에 Easing이 Ease In Only일 때 처음에는 한 바퀴에 1초가 걸렸다면
      두 번째 바퀴에선 0.5초만 걸리게 됩니다. Ping Pong은 Spline이 끝났을 때 역방향으로
      다시 되돌아가는 것이 반복됩니다.

 

Result: 최근에 이런 이동을 쉽게 하는 것을 DOTween으로 밖에 못했는데, 마침 필요할 때 배워서 좋았습니다.

'UnityEngine' 카테고리의 다른 글

[Unity] 글자에 맞게 UI 크기 조절하기  (0) 2025.09.05
[Unity] Layout Element  (0) 2025.09.04
[Unity] DOTween Seqence  (3) 2025.08.21
[Unity] Unity 이벤트 메서드  (5) 2025.08.18
[Unity] Y-Sorting  (1) 2025.08.17