본문 바로가기

유니티 게임 개발하기/2D 게임 개발일지

유니티 - 탄막 슈팅 게임을 만들자 (3), itween 사용하기

안녕하세요! 윈디입니다. 7월의 첫 글이네요~!

단순히 개발일지라기 보다는 좀더 배운 내용을 잘 정리할 수 있도록 쓰고 싶어서,

며칠 전부터 구현한것들 움짤만 만들어 놓고서,

 어떻게 써야 할까... 고민을 해 봤습니다.

새로 배운 내용들도 물론 많지만, 사실 이전에 배웠던 것들의 응용이 개발을 하는데에 있어서 더 중요한 것 같아요. 한번 잘 배우면 계속 쓰기도 하구요.


그래서 이번에는 우선 구현해둔 것들을 보시면서, 어떤 것들이 사용되었는지 설명을 해 드린 다음, 거기에서 중요한 것들을 설명 드리는 것이 좋겠다는 생각을 했습니다.

특히 이번 주는 보스나 일반 몬스터들의 패턴과 이펙트를 구현하느라

 꽤 많은 시간을 썼기 때문에, 그런 '움직임'을 다루는 방법들을 설명드리게 될 것 같습니다.



첫번째 움짤은 자연스럽게 움직이는 적하고,

 플레이어 캐릭터를 추적하다가 분산되어 날아오는 탄을 구현 한 부분이에요.

itween.path 를 사용해서 구현했습니다.

itween 은 이전에 간단하게나마 설명해 드린 적이 있었을 텐데요, 

오브젝트를 움직이기 굉장히 간편하게 만들어주는 플러그인입니다.

MoveTo, ScaleTo, ColorTo 등등  한마디로,

lerp 나 time.dletaTime 을 쓰면서 하나하나 만들어야 할 것들을 미리 구현해 준

고마운 플러그인이죠. 


먼저 아이트윈을 간단하게 사용하는 방법부터 소개해 드릴게요.

해시 테이블을 쓰지 않는다면, 아이트윈을 사용하는 방법은 굉장히 간단합니다.




아이트윈이라는 문자를 쓰시고(물론 아이트윈을 받아서 임포트가 되어있으시다는 가정 하에)

이렇게 옵션과 간단한 설명을 모노디벨롭에서 확인하실 수 있습니다.

MoveTo 같은 경우, 해시테이블 없이 사용한다면 어떤 오브젝트를 어디까지 몇 초만에 이동시키는지를 정해서 움직일 수 있군요.

이런 식으로 조금만 설명을 읽어 보면 쉽게 사용할 수 있답니다.



하지만 해시테이블을 쓰지 않으면, 보시다시피 한 명령어가 한 개의 위치로밖에 이동하지 못하죠. 좀더 복잡한 사용을 위해서는 itween.path 와 해시 테이블 사용이 효율적입니다.


http://pixelplacement.com/v2/2010/12/03/visual-editor-for-itween-motion-paths/


아이트윈 패스에디터를 다운받을 수 있는 곳입니다. 이곳에 들어가셔서 아래쪽에 보시면

바로 다운로드를 하실 수 있습니다.


임포트까지 하시면 이런 식의 itween path 스크립트가 있는데요, 

이것은 패스 데이터라고 해서 여러 개의 위치를 배열로 지정해서 그 길을 쭉 따라가게 만드는

일종의 미리 그려놓는 길이라고 생각하시면 되겠습니다.

스크립트여서 약간 어지러워 보이지만 씬 화면에서는 매우 직관적으로 움직임을 정해둘 수 있습니다. 

저장은 어디에 해 두셔도 상관이 없습니다. 무브투에서는 그냥 이름으로 찾아내기 때문이죠.

저같은 경우엔 스테이지 매니저 안에 해당 길을 저장했습니다.


패스 네임을 지정해 두시면 나중에 itween.MoveTo 함수에서 호출해서 사용하실 수 있습니다.

▲씬 화면에서는 이렇게 직관적으로 움직임을 설정할 수 있습니다.



이 itween 패스를 사용하는 방법의 실제 예시입니다.



해시 테이블을 써서 세부적인 사항을 조작할 수도 있습니다, 제가 위에서 사용한

패스나 easetype,  time뿐만 아니라 


좀더 다양한 기능으로 아이트윈을 이용하시고 싶다면 한번 찾아보시는 것도 좋습니다.


http://itween.pixelplacement.com/documentation.php


여기에서 자세한 내용을 확인하실 수 있고, easetype 옵션 같은 경우엔 실제로 움직임을

확인할 수 있는 웹페이지도 있습니다.

사용하시기 전에 한번 확인해 보는 것도 좋을 것 같아요.


http://robertpenner.com/easing/easing_demo.html

▲간단한 페이지이지만, 직접 옵션을 사용하기 전에 정해보는 건 정말 큰 도움이 된답니다.



사실 많은 분들이 아는 내용이시고 즐겨 쓰는 옵션이시기는 하지만요, 아이트윈은 그냥 쓰는거랑 그 기능을 십분 활용하는건 차이가 있는 것 같아요, 여러분은 아이트윈의 기능들을 얼마나 유용하게 사용하고 계신가요?