Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

스켈레톤

소개

3D로 작업할 때 골격 변형은 캐릭터와 생물체에서 흔히 발생하며 대부분의 3D 모델링 응용 프로그램에서는 이를 지원합니다. 2D의 경우 이 기능이 자주 사용되지 않기 때문에 이를 겨냥한 주류 소프트웨어를 찾기가 어렵습니다.

한 가지 옵션은 Spine 또는 Dragonbones와 같은 타사 소프트웨어에서 애니메이션을 만드는 것입니다. 이 기능은 내장에서도 지원됩니다.

왜 Godot에서 직접 골격 애니메이션을 만들고 싶나요? 대답은 다음과 같은 많은 이점이 있다는 것입니다.

  • 엔진과의 통합이 향상되어 외부 도구에서 가져오고 편집하는 번거로움이 줄어듭니다.

  • 애니메이션에서 파티클 시스템, 셰이더, 사운드, 스크립트 호출, 색상, 투명도 등을 제어하는 기능.

  • Godot에 내장된 골격 시스템은 매우 효율적이며 성능을 위해 설계되었습니다.

다음 튜토리얼에서는 2D 골격 변형에 대해 설명합니다.

설정

더 보기

시작하기 전에, Godot 내 애니메이션에 대한 일반적인 이해를 얻기 위해 컷 아웃(Cutout) 애니메이션 튜토리얼을 진행하는 것이 좋습니다.

이 튜토리얼에서는 단일 이미지를 사용하여 캐릭터를 구성합니다. :download:`gBot_pieces.png <img/gBot_pieces.png>`에서 다운로드하거나 아래 이미지를 저장하세요.

../../_images/gBot_pieces.png

또한 최종 캐릭터 이미지 :download:`gBot_complete.png <img/gBot_complete.png>`를 다운로드하여 서로 다른 부분을 합치는 데 좋은 참조가 되는 것이 좋습니다.

../../_images/gBot_complete.png

애니메이션 만들기

모델에 대한 새로운 만들기 씬(애니메이션 캐릭터가 될 경우 ``CharacterBody2D``를 사용할 수 있습니다). 사용 편의성을 위해 빈 2D 노드가 다각형의 루트로 생성됩니다.

Polygon2D 노드로 시작하세요. 지금은 씬 어디에도 배치할 필요가 없으므로 다음과 같이 간단히 생성하세요.

../../_images/skel2d1.png

이를 선택하고 이전에 다운로드한 캐릭터 조각으로 텍스처를 할당합니다.

../../_images/skel2d2.png

다각형을 직접 그리는 것은 권장되지 않습니다. 대신 다각형에 대한 "UV" 대화상자를 엽니다.

../../_images/skel2d3.png

포인트 모드로 가서 연필을 선택하고 원하는 조각 주위에 다각형을 그립니다.

../../_images/skel2d4.png

다각형 노드를 복제하고 적절한 이름을 지정합니다. 그런 다음 "UV" 대화 상자를 다시 입력하고 이전 다각형을 원하는 새 조각의 다른 다각형으로 교체합니다.

노드를 복제하고 다음 조각의 모양이 비슷한 경우 새 다각형을 그리는 대신 이전 다각형을 편집할 수 있습니다.

다각형을 이동한 후에는 다각형 2D UV 편집기에서 **편집 > UV에 다각형 복사**를 선택하여 UV를 업데이트해야 합니다.

../../_images/skel2d5.png

모든 조각을 매핑할 때까지 이 작업을 계속하세요.

../../_images/skel2d6.png

노드의 조각이 원본 텍스처와 동일한 레이아웃으로 나타나는 것을 확인할 수 있습니다. 기본적으로 폴리곤을 그릴 때 UV와 포인트가 동일하기 때문입니다.

조각을 재배열하고 캐릭터를 구축해 보세요. 이 작업은 꽤 빨라야 합니다. 피벗을 변경할 필요가 없으므로 각 조각의 회전 피벗이 올바른지 확인하지 않아도 됩니다. 지금은 그대로 두셔도 됩니다.

../../_images/skel2d7.png

아, 일부가 엉뚱한 부분을 덮고 있어서 아직 조각의 시각적 순서가 정확하지 않습니다. 이 문제를 해결하려면 노드의 순서를 다시 정렬하세요.

../../_images/skel2d8.png

그리고 거기 있습니다! 컷아웃 튜토리얼보다 확실히 훨씬 쉬웠습니다.

스켈레톤 만들기

만들기 루트 노드의 하위로 Skeleton2D 노드입니다. 이것이 우리 뼈대의 기초가 될 것입니다:

../../_images/skel2d9.png

만들기 a Bone2D 노드 를 스켈레톤의 하위로 사용합니다. 엉덩이에 얹습니다(보통 뼈대가 여기서 시작됩니다). 뼈는 오른쪽을 가리키겠지만 지금은 이를 무시해도 됩니다.

../../_images/skel2d10.png

계속해서 계층 구조로 뼈대를 만들고 그에 따라 이름을 지정합니다.

../../_images/skel2d11.png

이 체인 끝에는 노드가 있습니다. 다시 말하지만 매우 짧고 오른쪽을 가리키고 있습니다. 이는 자식 노드가 없는 뼈의 경우 정상입니다. tip 뼈의 길이는 인스펙터의 속성으로 변경할 수 있습니다.

../../_images/skel2d12.png

이 경우 뼈를 회전할 필요는 없지만(우연히도 턱이 스프라이트에서 바로 가리킵니다) 필요한 경우에는 자유롭게 회전할 수 있습니다. 다시 말하지만, 자식 노드가 포함된 노드에는 일반적으로 길이나 특정 회전이 필요하지 않기 때문에 이는 팁 뼈에만 실제로 필요합니다.

계속 진행하여 전체 뼈대를 구축하세요.

../../_images/skel2d13.png

모든 뼈대가 휴식 자세 누락에 대한 경고를 표시하는 것을 볼 수 있습니다. 휴식 포즈는 골격의 기본 포즈로, 원할 때 언제든지 다시 돌아올 수 있습니다(애니메이션화에 매우 편리함). 씬 트리에서 스켈레톤 노드를 한 번 클릭하도록 설정하려면 도구 모음에서 Skeleton2D 버튼을 클릭하고 드롭다운 메뉴에서 ``Overwrite Rest Pose``를 선택합니다.

../../_images/skel2d14.webp

경고가 사라집니다. 뼈대를 수정(뼈 추가/제거)하는 경우 나머지 포즈를 다시 설정해야 합니다.

행성 색칠하기

이전에 생성된 다각형을 선택하고 노드 뼈대를 해당 Skeleton 속성에 할당합니다. 이렇게 하면 결국 변형될 수 있습니다.

../../_images/skel2d15.png

위에 강조 표시된 속성을 클릭하고 뼈대 노드를 선택합니다.

../../_images/skel2d16.png

다시 한 번 다각형에 대한 UV 편집기를 열고 Bones 섹션으로 이동합니다.

../../_images/skel2d17.png

아직은 가중치를 칠할 수 없습니다. 이를 위해서는 스켈레톤의 뼈 목록을 폴리곤과 동기화해야 합니다. 이 단계는 한 번만 수동으로 수행됩니다(뼈를 추가/제거/이름을 변경하여 뼈대를 수정하지 않는 한). 이는 노드 뼈대가 실수로 손실되거나 뼈대가 수정된 경우에도 리깅 정보가 다각형에 유지되도록 보장합니다. 목록을 동기화하려면 "뼈대를 다각형에 동기화" 버튼을 누르세요.

../../_images/skel2d18.png

뼈 목록이 자동으로 나타납니다. 기본적으로 다각형에는 가중치가 할당되어 있지 않습니다. 가중치를 할당할 뼈대를 선택하고 페인팅합니다.

../../_images/skel2d19.png

흰색 점에는 전체 가중치가 할당된 반면 검은색 점은 골격의 영향을 받지 않습니다. 여러 뼈대에 대해 동일한 점이 흰색으로 칠해지면 영향이 뼈대 사이에 분산됩니다(따라서 일반적으로 굽힘 효과를 다듬으려는 경우가 아니면 중간에 음영을 사용할 필요가 별로 없습니다).

../../_images/skel2d20.gif

가중치를 페인팅한 후 뼈대(다각형 아님!)에 애니메이션을 적용하면 그에 따라 다각형을 수정하고 구부리는 원하는 효과를 얻을 수 있습니다. 이 접근 방식에서는 뼈대만 애니메이션화하면 되므로 작업이 훨씬 쉬워집니다!

하지만 장미가 전부는 아닙니다. 다각형을 구부리는 뼈를 애니메이션하려고 하면 종종 예상치 못한 결과가 발생합니다.

../../_images/skel2d21.gif

이는 Godot가 다각형을 그릴 때 점들을 연결하는 내부 삼각형을 생성하기 때문에 발생합니다. 그들은 항상 당신이 기대하는 방식으로 구부러지지 않습니다. 이 문제를 해결하려면 형상에 힌트를 설정하여 형상이 어떻게 변형될 것으로 예상하는지 명확히 해야 합니다.

내부 정점

각 뼈대에 대한 UV 메뉴를 다시 열고 Points 섹션으로 이동합니다. 형상이 구부러질 것으로 예상되는 영역에 일부 내부 정점을 추가합니다.

../../_images/skel2d22.png

이제 다각형 섹션으로 이동하여 좀 더 자세하게 다각형을 다시 그려보세요. 다각형이 구부러질 때 변형을 최소화해야 한다고 상상해 보십시오. 올바른 설정을 찾기 위해 약간의 실험을 해보세요.

../../_images/skel2d23.png

그리기를 시작하면 원래 다각형은 사라지고 자유롭게 나만의 다각형을 만들 수 있습니다.

../../_images/skel2d24.png

이 정도의 세부 묘사는 일반적으로 괜찮지만 삼각형이 어디로 가는지 더 세밀하게 제어하고 싶을 수도 있습니다. 원하는 결과를 얻을 때까지 스스로 실험해 보세요.

참고: 새로 추가된 내부 정점에도 웨이트 페인팅이 필요하다는 점을 잊지 마세요! Bones 섹션으로 다시 이동하여 올바른 뼈대에 할당합니다.

모든 설정이 완료되면 훨씬 더 나은 결과를 얻을 수 있습니다.

../../_images/skel2d25.gif