문서 출력

게임 엔진용 스켈레톤 내보내기

파일 ▸ 내보내기 ▸ 스켈레톤(JSON)…은 본 리그와 그 애니메이션을 이미지로 렌더링하지 않고, 게임 엔진이 재생할 수 있는 데이터로 씁니다.

스프라이트 시트는 프레임마다 이미지 한 장을 저장합니다. 스켈레톤 내보내기는 리그 자체를 저장합니다. 본, 거기에 달린 이미지, 그리고 본이 시간에 따라 어떻게 움직이는지입니다. 그러면 엔진이 캐릭터를 직접 그리므로, 애니메이션은 용량이 작고 어떤 크기와 프레임 속도에서도 매끄럽게 재생됩니다.

내보내기

  1. 파일 ▸ 내보내기 ▸ 스켈레톤(JSON)…을 고르세요.
  2. 폴더를 고르세요. 내보내기는 파일 여러 개를 쓰므로 파일 이름이 아니라 폴더를 묻습니다.
  3. 파일은 바로 쓰입니다. 고를 설정은 없습니다.

폴더에는 skeleton.json, 본에 달린 이미지를 담은 아틀라스 skeleton.png, 그리고 메시마다 메시 레이어 이름을 딴 PNG가 하나씩 생깁니다. 파일 이름에 쓸 수 없는 문자는 다른 문자로 바뀌고, 두 메시의 이름이 같으면 두 번째 파일에 번호가 붙습니다. 이름이 고정되어 있으므로, 같은 프로젝트를 다시 내보내면 같은 파일을 바꿔 씁니다.

파일에 들어 있는 것

구조는 Spine을 본떴습니다. 본, 슬롯, 어태치먼트, 애니메이션입니다. Spine 파일은 아니어서 공식 Spine 런타임은 읽지 못하지만, 구조가 충분히 익숙해서 엔진용 가져오기 코드는 한 번만 쓰면 됩니다.

부분내용
본모든 본 레이어의 모든 본과, 부모에 대한 휴식 포즈. 고정 본, 즉 IK 목표는 들어가지 않습니다. 그 효과는 이미 그것이 움직이는 본에 담겨 있기 때문입니다
메시 어태치먼트모든 메시 레이어와, 휴식 상태의 정점, 삼각형, 그리고 정점마다 본별 웨이트
영역 어태치먼트레이어 연결로 본 하나를 단단히 따라가는 레이어. 아틀라스에 놓이며, 본에 대한 고정 오프셋을 가집니다
애니메이션타임라인의 그룹 마커마다 애니메이션 하나, 마커 이름을 따릅니다. 그룹 마커가 없으면 인 포인트에서 아웃 포인트까지의 default라는 애니메이션 하나만 있습니다

엔진이 원래 직접 재현해야 할 모든 것은 단순한 숫자로 구워집니다. IK, 본 다이내믹스, 컨트롤 본, 액션은 모두 평범한 회전, 이동, 크기 키프레임이 됩니다. 어떤 액션이 본 웨이트로는 표현할 수 없는 방식으로 메시 모양을 바꾸면, 그 애니메이션은 대신 메시 정점의 위치를 프레임마다 저장하므로, 엔진은 액션이 어떻게 작동하는지 알 필요가 없습니다.

아직 들어 있지 않은 것

  • 어느 본에도 연결되지 않고 자기 키프레임으로 움직이는 레이어. 이런 레이어는 스프라이트 시트나 PNG 시퀀스로 내보내세요.
  • 본 레이어 안의 자동 따라가기. 바인드하거나 칠한 웨이트, 그리고 레이어 연결로 이은 레이어만 내보내지므로, 유연이나 영역 바인드로만 리그를 따라가는 레이어는 내보낸 결과에서 움직이지 않습니다.
  • 본 위에 자기 위치, 회전, 크기를 따로 가진 메시.
  • 실시간 제약으로서의 IK, 변형, 패스, 물리 제약, 이벤트, 그리고 옷 갈아입히기에 쓰는 스킨.
실제로 움직이는 본만 이동과 크기 키프레임을 받습니다. 대부분의 본은 회전만 하므로 애니메이션에 회전만 들어 있습니다. 덕분에 파일이 작게 유지됩니다.