26 C
Seoul
Friday, July 10, 2020
Home Blog 2D 캐릭터 애니메이션과 IK

[아들과 2인개발] 2D 캐릭터 애니메이션과 IK

2D 프로젝트를 진행할 기회가 적어서 유니티의 2D 기능에는 관심을 두지 않았지만, 간간이 들려오는 캐릭터 애니메이션과 IK, 2D Light와 같은 기능은 궁금했습니다. 게임을 개발하기 전에 스펙을 확인해보려고 시험 사용을 해봤습니다.

종이에 그린 그림을 스캔한 다음에 배경 부분을 지워야 하는데 집에 포토샵이 없다 보니 뜻밖에 만만치 않았습니다. 오랫동안 GIMP를 써왔는데 마법봉에 연결된 부분만 선택하는 기능을 찾을 수가 없더군요. 이것저것 대체할 앱을 찾아보다가 Affinity Photo가 코로나로 인해 90일 체험행사를 진행 중이라는 정보를 획득. 마법봉으로 가볍게 배경을 지웠습니다.

Affinity Photo

유니티 3D 게임은 일반적으로 물리 설정의 편의 때문에 1유닛은 1미터라는 기준이 있어서 오브젝트의 크기를 맞추기가 좋았는데, 2D는 어디를 기준점으로 잡아야 할지 잘 모르겠습니다. 우선 보기 좋게만 맞춰놓고 하나씩 익혀가야겠습니다.

Sprite Editor에서 Skinning Editor를 고르고 Auto Geometry를 누르니 메시가 생성됩니다.

Create Bone을 누른 다음에 지오메트리 위에 클릭클릭하면 쉽게 본이 만들어지네요. (처음에 본이 안 보여서 당황했는데 Skinning Editor에서는 더블클릭할 때마다 본이 보였다 안 보였다 하네요. 버그일까요?)

Auto Weight로 자동 웨이트 설정을 해보았지만 잘 안되네요. 지오메트리가 빨간색으로 보이는 건 빨간 본의 영향을 받고 있다는 뜻입니다.

Weight Brush를 선택하고 슬슬 붓질하면 웨이트가 칠해집니다. 포인트는 붓질을 버텍스에 해야 된다는 점.

Apply를 눌러서 저장한 후에 씬에 올릴 때는 Sprite Renderer, Animator, Sprite Skin 컴포넌트를 붙입니다. Sprite Skin의 Create Bones 버튼을 누르면 본들이 자식 게임오브젝트로 생성됩니다. 그럼 해당 게임 오브젝트의 트랜스폼을 바꾸면서 애니메이션을 만들어주면 됩니다.

이렇게 만든 결과물입니다.

방금 보신 건 첫 번째 보스인 “책왕”이었고요. 다음은 주인공 UFO입니다. 레이저를 쏘는 부분에 IK를 적용해서 적을 가리킬 수 있게 할 겁니다. 동일하게 리깅을 하고.

씬에 올린 다음, 루트 게임 오브젝트에 IK Manager 2D 스크립트를 붙이고 + 버튼으로 솔버를 만듭니다. 저는 어차피 잘 몰라서 첫 번째 솔버 타입인 CCDSolver2D 선택.

그러면 CCD Solver 2D 스크립트가 붙은 자식 오브젝트가 생성되네요. 관절의 끝을 Effector에 대입하고, 가리킬 오브젝트를 Target에 지정하고 Chain Length를 통해 몇 번째 부모 관절까지 IK를 적용할지 지정하면 됩니다.

이렇게 완성한 결과입니다.

공부도 안 하고 대충 막 해봤는데 잘 되네요. 유니티에서 쓰기 편하게 잘 만들어둬서 그런 것 같습니다. 첨에 시작할 때는 귀찮은 마음도 조금 있었는데 잘 되니까 저도 모르게 이 프로젝트에 빠져들고 있습니다. 하다 보니 재미있네요. 다음번에는 잔몹도 하나 넣고 기본적인 공방을 구현해볼까 생각 중입니다. 이번에도 잘 되겠죠? 🙂

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay connected

58FansLike
56FollowersFollow
156FollowersFollow
128FollowersFollow
- Advertisment -

Recipe of the day