[Unity 기능] 2D Bone Animation 제작

2025. 1. 5. 15:30·유니티(Unity)/콘텐츠 개발

✍️ 개요

 

 

 

Bone Animatin은 Skeletal Animation 기법을 의미하며, Sprite에 뼈대를 생성하여 모델을 움직이는 기법입니다.

 

더 자연스러운 움직임을 재공하며 재사용성이 높아 많이 활용되고 있습니다.

 

오늘은 2D 환경에서 Bone Animation을 제작하는 방법에 대해 알아보도록 하겠습니다.

 

 

 

 

 


📌 환경 설정

 

 

UPM(Unity Pacakge Manager)에서 2D Animation 패키지를 설치합니다.

 

이 패키지는 Bone Animation 제작 기능을 제공합니다.

 

 

 

 

추가로 2D PSD Importer 패키지를 설치합니다.

 

이 패키지는 포토샵(PSD) 파일을 Unity에 Import 할 수 있도록 해줍니다.

 

포토샵에서 제작한 레이어들을 온전히 보존해주기 때문에 Rigging 작업에 큰 도움을 줍니다.

 

※ 만약 포토샵이 없다면, Sprite을 각 부위 별로 쪼개 하나의 이미지로 제작해야 합니다.

 

 

 

 

PSD 파일 Import 한 모습

 

 

부위 별로 쪼개 하나로 표현한 PNG 파일

 

 

저는 PSD 파일로 Bone Animation을 제작하도록 하겠습니다.

 

 

 

 

 


📌 Asset 제작하기

 

 

먼저 포토샵을 통해 움직이고 싶은 부위 별로 레이어를 나눠 제작합니다.

 

 

 

 

저는 사람 모델을 제작하였습니다.

 

위 사진을 보시면 총 13개의 Sprite로 구분되어 있는게 보이시죠?

 

각 Sprite 부위마다 1개의 레이어를 가지므로 총 13개의 레이어가 필요합니다.

 

제작이 끝났다면 파일을 저장하여 Unity에 드래그하여 Import 합니다.

 

 

 

 

Asset을 눌러 Importer을 PSDImporter 방식으로 변경합니다.

 

 

그러면 PSD 파일이 Asset으로 Import 된 것을 확인할 수 있습니다.

 

 

 

 

 


📌 Sprite 뼈대 제작

 

 

PSD Asset을 누르고 Open Sprite Editor 버튼을 누릅니다.

 

 

 

 

Sprite Editor - Skinning Editor 선택합니다.

 

 

 

 

왼쪽 상단에 도구 툴을 확인해보면 Create Bone이 있습니다. 클릭해주세요.

 

이제 골반을 기준으로 이미지에 맞춰 뼈대를 생성해줍니다.

 

 

 

 

이제 Auto Geometry을 선택하여 Generatre For All Visible을 클릭합니다.

 

이 기능은 Sprite의 Mesh을 자동으로 생성하도록 합니다.

 

Detail을 직접 설정할 수 있지만, 저는 그냥 이대로 생성하도록 하겠습니다.

 

 

 

 

다음으로 Auto Weights을 선택하여 Generate All을 클릭합니다.

 

그러면 위 사진처럼 생성한 뼈대를 Sprite에 영향을 주도록 설정할 수 있습니다.

 

※ Bone Influence을 선택하고 Sprite을 클릭하여 세부적으로 Bone 설정을 할 수 있습니다.

 

 

 

 

설정이 끝났다면 우측 상단에 Apply 버튼을 눌러 Sprite Editor 창을 종료합니다.

 

 

 

 

 


📌 Bone Animation 제작

 

 

설정한 Asset을 Scene에 배치하면 위처럼 생성됩니다.

 

Bone의 위치와 회전을 조정하면 Sprite가 움직이는 것을 확인할 수 있습니다.

 

하지만 이 방법으로 Animation을 구현한다면 엄청난 고통에 시달리실 겁니다.

 

 

 

 

그래서 저희는 IK Manager 2D Component을 사용할 겁니다.

 

IK는 Inverse Kinematic의 줄임말로, 역운동학을 의미합니다.

 

끝 관절만 움직이면 나머지 관절들이 자동으로 계산되는 기법을 의미합니다.

 

 

 

 

Asset에 IK Manager 2D Component을 추가합니다.

 

그 후 IK Solvers에 '+' 기호를 눌러 Limb를 선택합니다.

 

 

 

 

그러면 IK Solver가 생성됩니다.

 

이제 끝 관절을 생성하여 적용해주도록 하겠습니다.

 

 

 

 

마지막 뼈대에 우클릭하여 Create Empty을 선택하여 빈 오브젝트를 생성합니다.

 

※ 참고로 저는 왼쪽 팔 끝 뼈대를 선택했습니다.

 

 

 

 

이제 다음 과정을 수행합니다.

 

① New LimbSolver2D 오브젝트의 이름을 변경한 후 클릭하여 Inspector 창을 활성화합니다.

② 아까 생성한 빈 프로젝트(Effector)을 Limb Solver 2D 컴포넌트의 Effector에 추가해줍니다.

③ Create Target 버튼을 클릭하여 적용합니다.

 

 

 

 

작업이 끝났다면 위처럼 IK을 움직임에 따라 관절이 자연스럽게 따라오는 것을 확인할 수 있습니다.

 

 

 

 

이제 Animator을 사용하여 IK을 움직여주면서 자연스러운 연출을 제작하면 됩니다.

 

 

 

 

처음에는 연출 제작이 어렵지만 조금만 연습한다면 위처럼 좀비 달리기 같은 애니메이션을 쉽게 제작할 수 있습니다.

 

 

 

 

 

'유니티(Unity) > 콘텐츠 개발' 카테고리의 다른 글

[Unity 기능] 2D Endless Platform 구현 (2편)  (1) 2025.01.02
[Unity 기능] 2D Endless Platform 구현 (1편)  (2) 2025.01.01
[Unity 기능] 컴파일 시점 제어하기  (1) 2024.12.25
[Unity 기능] Sprite Atlas에 대하여  (1) 2024.12.15
[Unity 기능] 9-Slicing Sprite 제작  (1) 2024.12.07
'유니티(Unity)/콘텐츠 개발' 카테고리의 다른 글
  • [Unity 기능] 2D Endless Platform 구현 (2편)
  • [Unity 기능] 2D Endless Platform 구현 (1편)
  • [Unity 기능] 컴파일 시점 제어하기
  • [Unity 기능] Sprite Atlas에 대하여
게임을 제작하는 사람
게임을 제작하는 사람
안녕하세요, 게임 개발자 천냥입니다! 게임을 제작하는 개발자들에게 도움이 될만한 정보와 지식을 제공하는 블로그입니다 ;)
  • 게임을 제작하는 사람
    천냥의 게임 개발 일지
    게임을 제작하는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기 (95) N
      • 유니티(Unity) (64) N
        • 콘텐츠 개발 (7)
        • 툴 개발 (15) N
        • 이슈 도감 (10)
        • 최적화 기법 (4)
        • 쉐이더 (3)
        • 포톤 (0)
        • 이론 정리 (15)
        • 유용한 패키지 정리 (3)
        • 패키지: Cinemachine 정리 (7)
      • C# (2)
      • IT (29)
        • 기술 정리 (2)
        • 알고리즘 (26)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    쉐이더
    Cinemachine
    upm 개발
    시네머신
    verdaccio
    유니티
    코딩 테스트
    custom package
    티스토리챌린지
    editor
    Shader
    코테
    Unity
    커스텀 패키지
    addressable
    최적화
    upm
    가상머신
    C++
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
게임을 제작하는 사람
[Unity 기능] 2D Bone Animation 제작
상단으로

티스토리툴바