유니티로 2d 애니메이션을 찍고 싶다
몇년전에는 anima 2d라는 에셋으로 키프레임 애니메이션을 찍은 듯 하지만, 지금은 유니티 자체에 애니메이션을 찍을 수 있는 기능이 생겼다.
하지만 그 기능을 제대로 사용하려면 포토샵 파일(psb 또는 psd)이 있어야 한다.
안타깝게도 우리 팀원중에 포토샵 사용자는 아무도 없었다...
하지만 스프라이트 애니메이션은 소수개발팀에서 도저히 감당할 수 없는 작업량이었기 때문에 키프레임 방식으로 진행하기로 결정하였다.
오늘 포스팅은 anima 2d를 사용하면서 겪었던 오류와 고민에 대한 것이다.
1. anima 2D 임포트시 에러 발생 - XRsetting 관련
2. IK Limb 2D 사용시 흰 박스만 나타남
3. 키프레임 애니메이션에서 눈깜빡임을 구현하고 싶음
나도 유니티 초심자이고 내 선에서 답을 낸거라 더 좋은 방법이 있을 수 있다.
더 좋은 방법이 있거나 틀린부분이 있다면 꼭 알려주십쇼
유니티 버전 : unity 2021.3.7f
anima 2D 임포트시 에러 발생 - XRsetting 관련
일단, anima 2D는 더이상 에셋스토어에서 받을 수 없으므로 깃허브에서 다운로드 해야한다.
https://github.com/umm/anima2d
GitHub - umm/anima2d
Contribute to umm/anima2d development by creating an account on GitHub.
github.com
다운로드를 했다면 압축을 풀고 에셋창에 폴더째로 던져넣는다.


Failed to load 'C:/rigTest/Assets/anima2d-master/ProjectSettings/XRSettings.asset'. File may be corrupted or was serialized with a newer version of Unity.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
Failed to load 'C:/rigTest/Assets/anima2d-master/ProjectSettings/XRSettings.asset'. File may be corrupted or was serialized with a newer version of Unity.
버전에 따라서 위와같은 오류를 뱉을것이다.
XR세팅 파일에 문제가 있는 것 같다.
이에 대해 여러방면으로 문제를 찾아보았으나 명확한 이유는 찾지 못하였고 버전의 문제인듯 하다.
하지만 이 파일이 있든 없든, 키프레임 애니메이션을 찍는데에는 문제가 없다.
내가 지금하려는 것은 확장현실이 아니기 때문이다.

그래서 애니마 2d의 프로젝트 세팅 폴더에 있는 XRsetting 파일을 삭제했다.
이후 재실행해보면 문제없이 돌아간다.
png파일 파츠 분리
하나의 png파일로 되어있는 것을 파츠별로 분리해줄것이다.
간단히 사람모양 그림을 하나 준비했다.

프로젝트 파일에 집어넣으면 이렇게 하나의 사진만 뜬다.

아래 첨부한 영상을 보고 잘 설정한다.
Pixels Per Unit : 유닛 (저기 화면에 모눈 한칸) 한칸에 몇개의 픽셀을 넣을 것이냐
나는 영상보고 할때는 16으로 했다가 사진크기 생각하고 100으로 바꾸었다. 원래 디폴트값이 100이다.
잘 설정을 해주고 Apply하고 Sprite Editor를 켜준다.
나는 어플라이를 먼저 안눌러서 어플라이 하겠냐고 묻는 경고창이 떴다.


스프라이트 에디터를 켠 후 좌측상단의 slice를 눌러 slice 하면 우측 사진과 같이 파츠가 분리된다!

에셋 창을 확인해보면 잘 분리된것을 확인 할 수 있다.

이후 쭉쭉 본을 심어준다.

본을 심다보니 한가지 문제가 생겼다. 숨쉬는 포즈에서 정면이기때문에 머리가 위아래로 움직여야 하는데 본을 하나로 하면 양옆으로 밖에 움질일 수 없다는 것이다.
그래서 두개로 변경하였다. 이제 고개를 위아래로 움직일 수 있다.
IK(Inverse kinematics:역운동) 사용하기 - IK Limb 2D 사용시 흰 박스만 나타남
지금 내가 만드는 것 같이 본이 적다면 IK를 굳이 연결할 필요 없지만 관절 수가 많다면 쓰는것이 좋다.
하나하나 본을 다 건드리는 것도 고역이기 때문이다.
그래서 상황에 따라 IK를 추가해주긴 하지만 없어도 작동에 이상은 없다.

IK를 추가하면 이렇게 흰 박스가 나오는 경우가 있는 듯 하다.
비슷한 경우를 다룬 문서를 찾지 못해서 명확한 원인은 알 수 없었으나, 기즈모의 문제라고 추측하였다.

일단 기즈모가 모두 켜저있는것은 확인하였기때문에 위치의 문제라고 생각, 파일위치를 찾았다.
애니마 2d 안 에셋 파일에 있는 기즈모 파일을 프로젝트 에셋 파일로 꺼내주었다.

어째서인지 크기는 엄청 커졌지만, 아무튼 원형이 등장하였다.

헤드본에 연결해보니 연결도 잘 된다.
크기가 왜 저렇게 큰지는 잘 모르겠다. 아마 폴더를 이동하면서 꼬인듯 한데, 사용상의 문제는 없으니 일단 진행했다.
2D 키프레임 애니메이션에서 눈깜빡임을 구현하고 싶음
3D 모델로는 눈 깜빡임을 넣어본 적이 있다.(VRChat 짬빠)
하지만 2d로는 어떻게 해야할지 다소 막막했다.
눈 메쉬를 건드리기에는 메쉬 수가 너무 작았기 때문이다.
그래서 파츠를 분할하는 방법을 선택하였다.

그래픽 담당에게는 이렇게 파츠를 분리해달라고 요청한 상태이다.
그렇다면 키프레임 애니메이션을 녹화할때 오브젝트를 켜고 끄는것도 녹화가 되는지 확인해야한다.

인스펙터 창에서 이 체크박스를 건드렸더니

된다!! 찍힌다!!

이렇게 원하는 형태의 애니메이션을 만들 수 있게 되었다.
이제 이걸 프로젝트 파일에 적용시키고 새로운 애니메이션만 추가하면 된다!
참고 링크
<참고 강의>
anima 2d를 이용한 애니메이션 제작
https://youtu.be/ATOJLlgRTqw
2d animation을 이용한 애니메이션 제작
https://youtu.be/M7oW0H6iH50
'게임 제작 > 유니티' 카테고리의 다른 글
[unity 2D] 특정 오브젝트만 충돌 무시하기 (1) | 2023.04.13 |
---|
댓글