• [Unity Engine] 유니티3D 강좌 - Lerp22014.09.01 PM 02:22

게시물 주소 FONT글자 작게하기 글자 키우기

1번 강좌에서 했던 보간 방식은 선형보간 방식이다.
큐브가 (0,0,0) (2,2,2)지점으로 2초간 이동한다고
가정해보자 큐브는 0.5초가 지난후엔 (0.5,0.5,0.5)이점에 있을 것이고
1초 후에는 (1,1,1)을 지나고 있을 것이다.

그런데 이렇게 고정된 형식으로 보간을 하면 이런 의견이 있을 수 있다.
"좀더 부드럽게 이동 못하나요?.", "움직임이 너무 딱딱하네요."
따라서 프로그래머는 아래 링크과 같은 여러가지 옵션을 제공해줘야할 의무가 있다.



-> 구글에서 easing을 검색

여기서 직접 만든다거나 하는 방법도 있겠지만
유니티의 강점인 Inspector를 최대한 활용하기 위해서
AnimatinoCurve 클래스를 활용하여 만들어보자.
생각보다 쉽다. 이전강좌에서 LerpVector3를
다음과 같이 바꾸었다. Vector3는 자료형임으로
이름을 Lerpp-osition으로 수정하였다.



여기서 Vector3.Lerp를 쓰지 않는 이유는 이 함수는 0과1사이로 강제
Clamp하기 때문에 직접 수식을 집어 넣었다.
스크립트처럼 AnimationCurve를 Serialize하면 Inspector에 다음과 같은
UI가 표시된다.



Curve 부분을 더블 클릭하면 AnimationCurve창이 따로 표시된다.



밑에 있는 프리셋 중 아무거나 클릭한 뒤에 커브를 고쳐보자
매우직관적인 인터페이스임으로 따로 설명이 필요 없을 것이다.
다음과 같은 그래프를 만들어보자.



이것을 실행하면 다음과 같은 동작이 나온다.



여기다가 LOOP기능이라던가 대기기능 트리거 기능 등을 넣으면
따로 iTween같은 보간 라이브러리를 사용하지 않고 나만의
라이부라리를 만드는 것이 가능할 것이다.

댓글 : 6 개
라이부라리
오, 루리웹에서 이런 좋은 강좌를 하시다니 감사합니다. ^_^
저도 친추 부탁 드리겠습니다.
오오 강좌 감사합니다
감사합니다 친추 부탁드립니다!! ^^
그 유니티가 아니네 .. 아싸신 생각하고 들어왔는데 ..
에고 죄송합니다. 제목 수정할께요~
친구글 비밀글 댓글 쓰기