https://arca.live/b/koikatsu/93116912

순정 TimeLine에서는 두 핀 사이의 좌표이동이 직선적이기 때문에 곡선을 표현할려면 얄짤없이 좁은 간격으로 뺵빽하게 핀을 꽂아야됨.

그러다가 문득 ShalltyUtil에 있는 기능을 사용하면 가능하겠다 싶어서 대충 만들어봄. 



보시다시피 완벽한 원 운동은 아니지만 어느정도 구체의 외곽을 따라서 움직이는 것을 알 수 있음.

심지어 사용된 핀도 10개가 다임.

지금부터 어떻게 만든건지 알려주겠음.


준비물 : ShalltyUtils (양디코에 검색하면 모드 포럼으로 빠지는 링크 있음. 거기에 있음.)



1. 곡선 경로 위치값을 GuideObject Pos 인터폴러블에 90도 간격으로 핀을 찍어준다.



검은색 원으로 표시한 부분이 파란색 원을 중심으로 곡선 궤적이 90도 간격으로 나눠지는 지점임.

적힌 순서대로 저 부분에 물체를 옮기고 평상시처럼 핀을 박으면 됨.

아직까지는 재생하면 마름모 모양으로 움직일거임.


2. ShalltyUtil 기능 중에 Split Interpolables Axis를 눌러 X/Y/Z 축을 분리시켜준다.



타임라인에서 Help 아래에 있는 ShalltyUtils 버튼을 눌러주면 왼쪽에 뭐가 많이 뜸.

거기서 노랑색으로 칠한 Split Interpolables Axis 버튼을 눌러주면 다음과 같이 (GO) X Pos, (GO) Y Pos, (GO) Z Pos로 세 축이 각각 나누어짐.

Split Interpolables Axis는 ShalltyUtil의 기능 중에 pos와 rot 값을 x/y/z로 나누어서 사용할 수 있게 해줌.

물론 한 축을 지워서 사용하는것도 가능

우리는 지금 x와 y만 쓸꺼니 z는 지워줘도 됨.


3. Easing Fuction을 이용해서 애니메이션을 조정한다.


방금 2번에서 x축과 y축을 서로 분리한 데에는 이유가 있음.

그걸 이해하기 위해서는 Easing Function이라는 것과 삼각함수의 사인파, 코사인파에 대해 약간의 지식이 필요함.

Easing Function이 뭐냐면...



바로 이거다.

타임라인에서 핀을 선택하면 뜨는 이 창이 바로 Easing Function임.

Easing Functiondms 두 핀 사이의 값의 변화량을 조절해주는 기능을 함.

저걸 조절하면 두 핀의 값이 똑같더라도 전혀 다른 표현이 가능하다.

지면에 부딫혔을 때의 바운스나 브레이크를 밟고 급정거하는 것도 표현 가능함.

우측 하단에 있는 프리셋을 설명하자면 각각

등속으로 변화, 서서히 느려지게 변화, 서서히 빨라지게 변화, 2&3번 복합형, 순간적인 변화 (계단형) 이다.


다음은 삼각함수의 사인파, 코사인파임.



이 자리에서 수학을 배우자는 것은 아니니 그냥 쉽게 정리하자면 빨간선은 원 회전을 할 때 시간에 따른 Pos x 값이고, 파란선 Pos y 값임.


근데 내가 임의로 노란선으로 구역을 나누어봤는데 위에 거랑 비슷해보이지 않음?

맞음. 사실 사인파와 코사인파는 Easing function의 대표적인 예시임.

x축과 y축을 분리시킨 이유는 두 축이 시간에 따른 값의 변화량이 달라서 Easing Fucntion을 따로 써야 하기 때문임.

축이 분리가 안되면 Easing Function을 조절해도 직선으로 움직이게 됨.


이제 저 모양을 구간별로 핀에 Easing Function으로 박을 꺼임.

노란선으로 나누어진 구간을 왼쪽부터 빨간 그래프를 x축에, 파란 그래프를 y축의 Easing Function에 넣어주면 됨.

값이 아래에서 시작해서 위로 올라가는 모양이면 그대로 넣으면 되고,

위에서 시작해서 아래로 내려가는 모양이면 위아래를 뒤집어서 넣어주면 됨.

Easing Function 값은 프리셋에서 2번 3번 중 맞는 것을 택일 하면 됨.

가장 끝자리에 있는 핀은 Easing Function을 넣어도 의미가 없으니 안넣어도 됨.


내가 넣은 방식은 이렇게 됨.

x축 1,3번 & y축 2,4번 Easing Function 프리셋 3번


x축 2,4번 & y축 1,3번 Easing Function 프리셋 2번


여기까지 따라왔다면 ShalltyUtils과 Easing Fucntion을 사용해서 적은 핀으로 곡선 표현하기가 가능함.

곡선 모양이 마음에 안든다면 Easing Function을 직접 수정해주면 됨.

그건 노하우가 쌓이면 차차 좋아질것 같음.

늦은 시간이라 졸면서 쓴거라 어딘가 설명이 빠졌을 수도 있음.

있다면 댓글로 부탁함. 취합해서 내일 수정하게...

이만 자러감...