Spine 4.3

슬라이더. 변형 제약 조건. 더 스마트한 리깅.

새로운 Spine 릴리스를 발표하게 되어 매우 기쁩니다! 4.3에는 스켈레톤을 더 세밀하게 제어할 수 있는 강력한 새 기능과 워크플로를 간소화하는 다양한 개선 사항이 포함되어 있습니다.

주요 내용을 살펴보겠습니다!

슬라이더

슬라이더는 애니메이션을 적용하는 새로운 제약 조건으로, 키를 지정할 수 있는 모든 속성을 제어할 수 있게 해줍니다. 슬라이더를 수동으로 설정하거나 뼈로 구동하여 복잡한 움직임을 자동화하고, 포즈를 재사용하며, 블렌드 셰이프를 믹스하거나 모핑할 수 있습니다. 이 인터랙티브 튜토리얼은 네 단계로 슬라이더를 설명합니다.

1 / 4 · 슬라이더 이전
2 / 4 · 수동 슬라이더 시간
3 / 4 · 뼈로 구동되는 슬라이더
4 / 4 · 전체 애니메이션
예전에는 애니메이션을 재사용하려면 같은 키를 여러 애니메이션에 복사/붙여넣기해야 했습니다.
슬라이더를 사용하면 대신 다른 애니메이션을 직접 적용할 수 있습니다.
슬라이더는 애니메이션의 특정 프레임을 적용합니다.
아래를 드래그하여 슬라이더의 프레임을 설정하고, 슬라이더 애니메이션 타임라인이 어떻게 적용되는지 확인해 보세요.
슬라이더는 선택적으로 로 구동할 수 있습니다. 회전, 이동, 크기 조정 또는 기울이기가 슬라이더의 프레임을 설정합니다.
아래를 드래그하여 제어 뼈 회전을 설정하거나 다이아몬드 위의 뼈를 드래그해 보세요.
뼈의 회전이 슬라이더의 프레임을 설정하고 슬라이더 애니메이션 타임라인을 적용합니다.
애니메이션슬라이더 또는 제어 뼈에 키를 지정하여, 모든 키를 복사/붙여넣기하지 않고도 기반 슬라이더 애니메이션을 재사용할 수 있습니다.
슬라이더 활성화 체크박스를 클릭하여 슬라이더를 끄면 슬라이더가 수행하던 모든 작업을 더 잘 볼 수 있습니다.
프레임
0
제어 뼈 회전
매핑 대상
프레임
0
제어 뼈 회전
매핑 대상
프레임
0

이제 슬라이더를 사용하는 몇 가지 예제를 살펴보겠습니다.

슬라이더 하나로 전체 애니메이션을

슬라이더 하나로 여러 타임라인이 있는 전체 애니메이션을 적용할 수 있습니다. 손을 드래그하면 나머지는 자동으로 일어납니다. 팔이 회전하면서 슬라이더를 구동하고, 그 슬라이더가 메쉬를 변형하고 손을 회전시키며 근육 음영과 혈관을 페이드합니다.

슬라이더 전환
손을 드래그해 보세요!

둘러보기

슬라이더는 마우스 움직임을 자연스러운 캐릭터 모션으로 바꿀 수 있습니다. 특별한 로직 없이도 얼굴과 몸을 조정하고, 입 이미지를 교체하며, 그리기 순서를 구동하여 팔이 몸 앞뒤를 자연스럽게 지나가도록 합니다.

슬라이더 전환

째깍거리는 시곗바늘

시계 바늘의 움직임은 변형 제약 조건으로 구동되고, 여기에 슬라이더가 마법을 더합니다. 슬라이더는 실제 아날로그 시계처럼 바늘이 앞으로 딱딱 움직이게 합니다. 속도를 바꾸고 슬라이더를 켜고 끄면서 슬라이더가 만들어내는 째깍 효과와 그림자를 확인해 보세요.

슬라이더 전환
속도 1.0x

변형 제약 조건

변형 제약 조건은 4.3에서 크게 개편되었습니다. 이제 트랜스폼 속성을 다른 속성 유형에 매핑할 수 있습니다. 예를 들어 뼈를 이동하면 다른 뼈가 회전하거나 크기 조정될 수 있습니다. 어떤 조합도 가능합니다! 또한 제약된 값을 범위 내로 클램프하고, 소스 뼈와 제약된 뼈 모두에 대해 월드 또는 로컬 공간을 선택할 수 있습니다.

Spine 4.3의 변형 제약 조건 속성

이러한 변경으로 방향에 따라 스프라이트를 뒤집는 것부터 최소한의 애니메이션 작업으로 기계식 연결 장치와 복잡한 리그를 만드는 것까지, 자동 스켈레톤 움직임의 가능성이 크게 열렸습니다.

이 두루마리는 새로운 변형 제약 조건을 사용하여 이동을 회전과 크기 조정으로 변환합니다. 뼈 하나의 움직임만으로 전체 두루마리가 말리고 펼쳐집니다.

두루마리를 드래그해 보세요!

수많은 변경 사항

Spine 4.3에는 수많은 다른 개선 사항도 포함되어 있습니다. 그중 몇 가지 주요 내용을 소개합니다.

더 스마트한 메쉬 트레이싱

같은 작업을 하나씩 반복하는 대신 여러 메쉬를 한 번에 트레이스할 수 있습니다. 과정이 훨씬 빨라졌을 뿐만 아니라 트레이스 결과도 더 정확해졌습니다.

메쉬 트레이싱에는 균일 슬라이더도 추가되어 관절에서 더 자연스럽게 구부러지는 메쉬를 만들 수 있습니다.

여러 메쉬에 걸쳐 가중치 페인팅

한 번에 하나씩으로 제한되지 않고 여러 메쉬 어태치먼트에 걸쳐 가중치를 설정할 수 있습니다.

또한 여러 메쉬를 한 번에 바인딩, 결합, 스무딩, 자동 가중치 적용, 프루닝할 수 있습니다.

수정 기능이 있는 문제 뷰

새로운 문제 뷰는 경고와 프로젝트 문제를 한곳에 모아주므로, 더 이상 트리에서 경고 아이콘을 찾아 헤맬 필요가 없습니다. 문제를 선택하면 주의가 필요한 항목으로 바로 이동합니다.

많은 문제를 클릭 한 번으로 자동 해결할 수 있습니다!

HTML 내보내기

이제 Spine은 애니메이션을 보여주는, 바로 열 수 있는 HTML 페이지를 내보낼 수 있습니다. 모든 기능을 갖춘 임베디드 플레이어가 필요하면 Spine Player를, 애니메이션을 현대적인 웹 페이지에 자연스럽게 맞추고 싶다면 Spine Web 컴포넌트를 선택하세요.

HTML 내보내기는 스킨 조합도 지원하므로, 커스텀 코드를 작성하지 않고도 스킨 설정을 더 쉽게 미리 보고 공유할 수 있습니다.

그리기 순서 폴더 키 지정

이제 그리기 순서 폴더는 메인 그리기 순서 타임라인과 별도로 자체 키를 가질 수 있습니다. 이를 통해 스켈레톤의 나머지 키와 충돌하지 않고 단일 폴더의 내용을 애니메이팅할 수 있습니다.

서로 다른 트랙에서 서로 다른 폴더에 키를 지정하여 복잡한 그리기 순서 변경을 레이어링할 수 있습니다.

새 클리핑 옵션

이제 클리핑 어태치먼트는 반전 클리핑을 지원하므로, 클리핑 형태 바깥이 아니라 안쪽에 있는 것을 숨길 수 있습니다. 덕분에 많은 컷아웃 및 드러내기 효과를 더 쉽게 만들 수 있습니다.

클리핑도 더 효율적이어서 CPU를 덜 사용하며, 특히 새로운 볼록 설정을 사용할 때 그렇습니다.

더 유연한 연결된 메쉬

연결된 메쉬는 더 이상 소스 메쉬와 같은 슬롯으로 제한되지 않습니다. 소스 메쉬의 지오메트리와 가중치를 계속 공유하면서도 연결된 메쉬를 다른 슬롯에 배치할 수 있습니다.

덕분에 작업을 중복하지 않고도 스킨, 레이어드 어태치먼트, 대체 리그 구조 전반에서 같은 메쉬 설정을 더 쉽게 재사용할 수 있습니다.

부피 보존 스케일링

물리 및 IK 제약 조건에는 이제 scaleX와 반대로 scaleY가 커지거나 작아지는 부피 보존 scaleY 설정이 있습니다. 이를 통해 늘어나는 팔다리, 카툰 스타일 리그 또는 미묘한 바운스에 멋진 스쿼시 앤 스트레치 효과를 만들 수 있습니다.

도프 시트 중심 동기화 모드

Spine에는 이미 그래프 중심 동기화 모드가 있어, 그래프에서 키를 선택하면 해당 타임라인이 도프 시트에 표시되었습니다. 이제 그 반대도 가능합니다.

도프 시트에서 키를 선택하면 해당 타임라인이 그래프에 표시되어, 도프 시트가 특히 잘하는 많은 키 훑어보기 작업 중에도 곡선에 빠르게 접근할 수 있습니다.

개선된 곡선 편집

키 값이 변경될 때 Spine은 이제 베지어 핸들을 더 잘 조정하여 곡선이 형태를 유지하도록 하므로, 수동 정리 작업이 크게 줄어듭니다.

새로운 “마지막 선택” 기본 곡선 옵션은 새로 생성되는 키에 마지막으로 선택한 곡선 유형을 사용합니다.

제약된 값에 키 지정

“제약된 값에 키 지정” 핫키를 사용하면 제약 조건이 적용된 후의 값에 키를 지정할 수 있습니다. 물리 또는 다른 제약 조건에서 나온 모션을 키로 변환할 때 유용합니다.

숫자 필드의 수식

이제 숫자 필드는 수식을 이해하므로 값을 입력하는 위치에 계산식을 직접 입력할 수 있습니다. 현재 값을 참조하려면 value 또는 v를 사용하세요. 예: 10 + v * 8

+=, -=, *=, /= 같은 접두사는 현재 값을 수정합니다. boneLengthboneRotation 같은 상수는 물론 randomclamp 같은 함수도 사용할 수 있습니다.

이는 4.3의 개선 사항 중 일부에 불과합니다. 다른 많은 추가 사항은 각각은 작지만, 함께 모여 일상적인 리깅, 애니메이션, 가져오기, 내보내기를 훨씬 더 매끄럽게 만들어 줍니다.

개선된 스킨 워크플로

스킨은 드래그 앤 드롭으로 병합할 수 있으며, 더 스마트한 필터링과 필요한 다른 뼈 및 제약 조건을 자동으로 추가하는 기능을 포함한 많은 편의성 개선이 추가되었습니다.

프로젝트를 ZIP으로 패키징

“프로젝트 패키징” 명령은 프로젝트와 이미지가 포함된 ZIP을 만듭니다. 파일을 수동으로 모으지 않고도 팀원, 클라이언트 또는 지원팀과 완전한 프로젝트를 빠르게 공유할 수 있는 방법입니다.

상대 내보내기 경로

이제 내보내기는 상대 경로를 사용하므로, 서로 다른 폴더와 컴퓨터에서 파일을 올바른 위치로 더 쉽게 내보낼 수 있습니다.

고정된 스킨만 필터

“모든 스킨 어태치먼트 표시”에 이제 “고정된 스킨만” 옵션이 추가되어, 스킨이 많을 때 스킨 워크플로를 더 깔끔하게 유지할 수 있습니다.

이미지 노드의 PSD

이제 PSD 파일은 이미지 노드에서 직접 관리되어 반복 PSD 가져오기 및 동기화 워크플로가 개선됩니다. 또한 어태치먼트는 이제 자신이 어느 PSD에서 왔는지도 표시합니다.

스킨별 아틀라스 패킹

이제 텍스처 패킹은 각 스킨마다 별도의 아틀라스를 만들 수 있습니다. 스킨을 별도로 패키징, 로드 또는 스트리밍하는 프로젝트에 유용합니다. 런타임도 이 워크플로를 지원하도록 업데이트되었습니다.

다듬어진 편집기 UI

편집기 전반에서 아이콘, 슬라이더, 비활성 상태, 경고, 제약 조건 시각화가 개선되었습니다.

개선된 내보내기

이미지, 비디오, 데이터, CLI 내보내기가 멀티스레드로 처리되어 훨씬 빨라졌습니다. CLI에도 많은 가져오기/내보내기 옵션이 추가되어 자동화 파이프라인이 더 쉽고 유연해졌습니다.

더 많은 핫키

새 핫키에는 키 선택, 홀드, 뒤집기, 탐색뿐만 아니라 확대/축소, 뷰포트 뒤집기, 그리기 순서 작업, 이미지 경로, 시퀀스, 메쉬 편집이 포함됩니다.

더 자세한 내용이 궁금하다면 아래의 변경 로그 주요 내용을 펼쳐 보세요.

기타 변경 로그 주요 내용은 다음과 같습니다.

  • 뼈 아이콘 크기 및 회전 컨트롤을 추가했습니다.
  • 편집기 선택 항목에 브레드크럼을 추가했습니다.
  • 경로, 경계 상자, 클리핑 어태치먼트, 그리기 순서 폴더에 재설정 버튼을 추가했습니다.
  • 보기 사이드바 버튼 아이콘을 추가했습니다.
  • 메쉬 이미지 크기를 조정할 때 표시되는 대화 상자에 “모두 선택”을 추가했습니다.
  • 텍스처 패킹에 브루트 포스 설정을 추가했습니다.
  • “시퀀스” 및 “영역 - 메쉬” 핫키를 추가했습니다.
  • 파일 대화 상자로 선택할 수 있는 이미지 경로와 “이미지 경로” 핫키를 추가했습니다.
  • 모든 내용을 포함한 폴더 복제를 추가했습니다.
  • PSD 가져오기는 스마트 오브젝트 재사용, 소스 메쉬 매칭, 누락된 PSD 경고, 다른 슬롯의 연결된 메쉬, [rotate:degrees] 태그, 출력 경로 기본값, 크기 조정 및 병합 태그, 삭제와 덮어쓰기 동작을 개선합니다.
  • 프로젝트 파일 크기가 더 작아졌습니다.
  • 트리 성능, 트리 주석, 선택 동작, 스크롤/패닝을 개선했습니다.
  • 프로젝트 경고, 어태치먼트 경고, 누락된 파일 보고를 개선했습니다.
  • 메쉬 편집 안정성, 정점 처리, 잘못된 메쉬 복구를 개선했습니다.
  • 자동 가중치와 가중치 페인팅 워크플로를 개선했습니다.
  • 물리의 부드러움, 응답성, 결정적 동작을 개선했습니다.
  • 미리보기 애니메이션 믹싱과 내보내기 미리보기 응답성을 개선했습니다.
  • JSON 가독성, 크기, 숫자 정밀도를 개선했습니다.
  • 제약 조건 정렬, 아이콘, 비활성 상태, 제약 조건 경고를 개선했습니다.
  • 파일 대화 상자, 파일 모니터링, Windows 네트워크 경로 보안을 개선했습니다.
  • 많은 충돌, 내보내기, 가져오기, 실행 취소/다시 실행 문제를 수정했습니다.

Web 컴포넌트

Spine 4.3에는 Spine 애니메이션을 어떤 웹 페이지에든 직접 쉽게 임베드할 수 있게 해주는 커스텀 HTML 요소 세트인 Spine Web 컴포넌트가 도입되었습니다. JavaScript 코딩은 필요 없습니다. HTML에 태그 하나만 추가하세요!

Web 컴포넌트는 매우 효율적입니다. 하나의 웹 페이지에 수십 개의 스켈레톤이 동시에 있어도 성능 문제가 없습니다.

<spine-skeleton> 요소를 사용하면 아틀라스, 스켈레톤 데이터, 애니메이션, 스킨에 대한 간단한 HTML 속성만으로 Spine 스켈레톤을 표시하고 상호작용할 수 있습니다. 로딩, 렌더링, 재생은 자동으로 처리됩니다.

<script
	src="/spine-webcomponents.min.js"
></script>

<spine-skeleton
	atlas="spineboy-pma.atlas"
	skeleton="spineboy-pro.json"
	animation="walk"
></spine-skeleton>

Web 컴포넌트는 랜딩 페이지, 포트폴리오, 인터랙티브 문서, 그리고 코드를 작성하지 않고 웹에서 Spine 애니메이션을 선보이고 싶은 모든 곳에 완벽합니다. 실제로 이 페이지의 모든 인터랙티브 예제는 Spine Web 컴포넌트로 표시됩니다!

spine-cpp, spine-c 및 다운스트림 런타임을 위한 새로운 기반

Spine 4.3에는 네이티브 런타임 스택의 대규모 리팩터링이 포함되어 있어, 더 많은 언어를 더욱 높은 품질로 지원할 수 있게 되었습니다. 이제 spine-cpp는 저희가 제공하는 모든 C 계열 런타임의 공유 구현이며, spine-c, spine-ios / SpineSwift, spine-flutter는 모두 그 위에 자동 생성되는 래퍼로 다시 작성되었습니다.

spine-cpp는 이 새로운 스택을 지원하도록 확장되었습니다. 헤더는 spine-cpp/spine-cpp/include/spine/에서 spine-cpp/include/spine/으로 이동했으며, 공개 API는 4.3 모델을 중심으로 재구성되었습니다. 뼈 포즈와 적용된 포즈 분리, Pose / Posed / PosedActive 기본 클래스, 통합된 제약 조건 타임라인 계층, 새로운 Sequence 모델, 볼록 및 반전 클리핑, holdPrevious 대신 가산 블렌딩, 슬라이더 등이 포함됩니다. 또한 다른 언어에서 관용적인 바인딩을 생성할 수 있도록 가벼운 RTTI 시스템도 추가되었습니다.

spine-cspine-cpp를 감싸는 자동 생성 C 래퍼로 완전히 다시 작성되었습니다. 이전의 수작업 유지보수 sp* API는 사라졌습니다. 새 API는 불투명한 spine_xxx 핸들을 사용하고, 생성된 캐스트 함수를 통해 전체 C++ 타입 계층을 노출하며, 생성된 헤더에 null 허용 힌트(/*@null*/)와 Doxygen 스타일 문서를 포함하고, C++와 완전한 기능 동등성을 달성합니다. 이는 spine-c 사용자에게 브레이킹 변경입니다. 새 API와 문서는 esotericsoftware.com/spine-c에서 확인할 수 있습니다.

spine-ios / SpineSwiftspine-flutter는 이제 새 C 런타임 위에서 완전히 자동 생성됩니다. 두 런타임 모두 전체 spine-cpp 타입 계층을 Bone : PosedActive, Posed, Update와 같은 올바른 상속을 갖춘 실제 Swift 및 Dart 클래스로 노출하고, 불투명 포인터 대신 언어 네이티브 null 허용성(Swift와 Dart의 Bone?)을 사용하며, spine-cpp에서 전파된 인라인 문서 주석을 제공합니다. 내부 재작성 규모는 크지만 일반적인 앱 코드 마이그레이션은 대부분 기계적입니다. 임포트가 변경되고(Spine / SpineCppLiteSpineSwift / SpineiOS가 됨), 일부 메서드는 spine-cpp와 맞도록 이름이 변경되었으며(setAnimationByNamesetAnimation으로, setToSetupPosesetupPose로, parentMeshsourceMesh로, AnimationState.getCurrentgetTrack으로), Dart의 getter/setter 쌍은 관용적인 속성이 되었습니다(getData().setDefaultMix(0.2)data.defaultMix = 0.2가 됨). 4.3 브랜치의 업데이트된 예제 앱은 전체 마이그레이션 범위를 보여줍니다.

이 스택을 기반으로 구축된 다른 네이티브 런타임(spine-sfml, spine-sdl, spine-glfw, spine-godot, spine-ue)도 새 spine-cppspine-c API로 업데이트되었습니다. 이 중 하나를 사용한다면 업그레이드 전에 Spine 런타임 변경 로그에서 해당 런타임 항목을 읽어보세요.

spine-cocos2dx는 4.3에서 제거되었습니다. Cocos2d-x는 2020년 v4.0 이후 안정 릴리스가 없었으며, 현재 Xcode 및 iOS SDK에서는 수동 패치 없이 바로 빌드되지 않습니다. 아직 cocos2d-x로 출시 중이라면 spine-cocos2dx의 4.2 브랜치에 머무르세요.

spine-libgdx에 대한 스냅샷 테스트

Spine 4.3에는 핵심 언어 런타임을 위한 스냅샷 테스트 하네스도 도입되었습니다. spine-libgdx는 여전히 기준 구현이며, 저희는 공개 API에 대한 LSP 기반 분석을 사용해 다른 런타임용 매칭 직렬화기를 자동 생성합니다. 지원되는 각 런타임에는 스켈레톤을 로드하고, SkeletonAnimationState를 빌드하고, 애니메이션을 적용한 뒤, 전체 객체 그래프를 결정적 JSON으로 직렬화하는 HeadlessTest가 있습니다. 그런 다음 하네스는 해당 출력을 spine-libgdx 출력과 바이트 단위로 비교하므로, 어떤 필드나 계산이 달라졌는지 정확히 찾아낼 수 있습니다.

4.3에서 스냅샷 하네스는 spine-cppspine-libgdx 기준 구현과 비교합니다. 다른 핵심 언어 런타임(spine-c, spine-ts, spine-haxe, spine-csharp) 연결은 진행 중입니다. Unity, Godot, Unreal 같은 엔진 통합은 직접 대상으로 삼지 않으며, 그 기반이 되는 핵심 런타임을 통해 간접적으로 검증됩니다.

런타임 변경 사항

모든 공식 런타임은 Spine 4.3에 맞게 업데이트되었으며 새로운 편집기 기능을 지원합니다. 가장 중요한 런타임 변경 사항은 다음과 같습니다.

  • 새로운 Slider, SliderData, SliderTimeline, SliderMixTimeline API를 통해 슬라이더를 지원합니다.
  • 변형 제약 조건은 4.3 제약 조건 개편에 맞게 업데이트되었으며, 속성 매핑, 클램핑, 오프셋, 로컬/월드 공간 동작을 포함합니다.
  • 새 포즈 모델은 설정, 비제약, 제약, 적용 상태를 명확히 분리합니다. 예를 들어 뼈는 포즈 및 적용된 포즈 데이터를 노출하고, 슬롯과 제약 조건은 각각 자체 포즈 객체를 노출합니다.
  • AnimationState 홀드 시스템이 개선되어 holdPreviousinterruptAlpha 없이도 크로스페이드 중 값이 내려앉는 현상을 피할 수 있습니다. 타임라인 apply 메서드는 이제 새로운 fromSetup, add, out 매개변수를 사용하며, 트랙 엔트리는 가산 블렌딩을 직접 노출합니다.
  • TrackEntry.mixInterpolation은 AnimationState 믹스에 비선형 보간을 허용하여, 크로스페이드가 표준 선형 믹스보다 더 부드럽거나 더 스타일화된 느낌을 주도록 합니다.
  • 물리 동작은 특히 낮은 업데이트 또는 렌더링 속도에서 더 정확하고 반응성이 좋아졌습니다. 런타임에는 스켈레톤 수준의 바람 및 중력 컨트롤도 추가되었고, 물리 재설정 타임라인 처리도 개선되었습니다.
  • 클리핑은 이제 볼록 및 반전 클리핑을 지원하며, 클리핑 성능이 향상되고 반전 클리핑의 엣지 케이스가 수정되었습니다.
  • 새로운 DrawOrderFolderTimeline이 그리기 순서 폴더를 지원하여 애니메이션이 그리기 순서 폴더 변경에 키를 지정할 수 있습니다.
  • 스킨별 아틀라스 워크플로가 더 직접적으로 지원됩니다. AtlasAttachmentLoader는 스킨별 아틀라스로 내보낸 스켈레톤에 대해 누락된 영역을 허용할 수 있으며, AttachmentLoader API는 이제 스킨 자리표시자와 해결된 어태치먼트 이름을 모두 받습니다.
  • 연결된 메쉬 API가 업데이트되어 연결된 메쉬가 다른 슬롯의 소스 메쉬를 사용하고 변형 및 시퀀스 타임라인을 올바르게 상속할 수 있습니다.
  • 시퀀스 어태치먼트는 프레임별 영역, UV, 오프셋을 미리 계산하도록 리팩터링되어 정확성이 향상되고 런타임 전반에서 시퀀스 렌더링이 더 안전해졌습니다.

항상 그렇듯이 Spine 런타임 4.3을 사용하려면 Spine 편집기 4.3으로 스켈레톤을 다시 내보내야 합니다. 자세한 내용은 Spine 버전 관리 가이드를 참조하세요.

spine-ts: 더 강력한 웹 런타임

TypeScript 런타임과 웹 백엔드는 4.3에서 많은 실용적인 개선을 받았습니다.

  • WebGL, Three.js, Pixi, Phaser, Player, Web 컴포넌트는 PMA와 스트레이트 알파 텍스처를 자동으로 처리할 수 있습니다. 스트레이트 알파 텍스처는 필요할 때 PMA로 업로드되므로, WebP 같은 형식으로 다운로드 크기를 줄이면서도 올바른 블렌드 모드 같은 PMA 렌더링 이점을 얻을 수 있습니다.
  • 공유 SkeletonRendererCore는 렌더러 간 중복을 줄입니다.
  • Pixi, Phaser, Three.js에는 물리 위치 및 회전 상속 설정이 추가되었습니다.

spine-unity: 멀티스레드와 모듈화

이제 spine-unity 런타임은 스레드 애니메이션과 메쉬 생성을 지원하여, 스위치 하나만 켜도 성능을 크게 향상시킬 수 있습니다!

Spine 환경설정에서 설정 하나만 활성화하면 됩니다. 스켈레톤 이벤트 콜백에서 메인 스레드에서만 가능한 작업을 수행하더라도 걱정하지 마세요. 모든 콜백은 자동으로 메인 스레드에서 호출됩니다. 또한 더 단순한 스레딩 구현에서 자주 문제가 되는 업데이트 주기의 할당도 없앴습니다. 기성 옵션으로는 이를 달성할 수 없었기 때문에, 코어 전체에서 부하를 효율적으로 균형 조정하는 자체 작업 탈취 스케줄러를 만들었고, 필요에 맞게 시스템을 조정할 수 있는 구성 설정도 제공합니다.

멀티스레딩

표준 C# 스레드 위에 구축되었으므로 ECS나 Job System 같은 최신 Unity 기능이 필요하지 않습니다. Unity 2017.1까지 호환됩니다.

그뿐만 아니라 Skeleton 컴포넌트를 렌더링 컴포넌트와 애니메이션 컴포넌트로 분리하여, SkeletonMecanim이 처음으로 SkeletonGraphic UI 요소를 애니메이팅할 수 있게 되었습니다.

이제 SkeletonRendererSkeletonGraphic 컴포넌트가 렌더링을 담당하고, SkeletonAnimationSkeletonMecanim은 애니메이션을 처리합니다. 각 씬을 열 때 컴포넌트가 자동으로 업그레이드되므로, 씬별로 모든 것이 여전히 작동하는지 확인할 수 있습니다. 모든 것이 올바르게 실행된다고 확신하면 버튼 한 번으로 전체 프로젝트를 업그레이드할 수 있습니다. 코드가 영향을 받는 API를 건드린다면 몇 가지 조정이 필요할 수 있습니다. 이를 안내하는 완전한 업그레이드 가이드를 준비했습니다. spine-unity 4.3 런타임을 설치하면 관련 정보가 모두 담긴 대화 상자가 표시되므로, 여러분이나 동료가 이 변경 사항을 놓치지 않을 것입니다.

최신 Unity UI Toolkit 개선 사항을 바탕으로, Spine UI Toolkit UPM 패키지는 이제 PMA 아틀라스 텍스처, 모든 블렌드 모드, 후면 삼각형 렌더링을 지원합니다. SpineVisualElement의 새로운 Detect 버튼은 올바른 머티리얼을 자동으로 선택해 주며, 클릭 한 번이면 끝납니다.

마무리로, 다양한 편의성 개선도 추가했습니다. 그중에는 새 스켈레톤을 가져올 때 PMA와 스트레이트 알파 불일치를 자동으로 감지하는 기능이 있습니다. 간단한 대화 상자가 표시되어 문제를 더 쉽게 해결할 수 있습니다. Spine 환경설정에서 PMA와 스트레이트 알파 워크플로 설정을 전환하는 것도 이제 클릭 한 번이면 됩니다. 또한 스킨 재패킹도 블렌드 모드를 처리하게 되어 과거의 제한이 해소되었습니다.

다음으로

저희는 Spine 4.3에 매우 만족하고 있습니다! 슬라이더와 새로운 변형 제약 조건은 더 적은 노력으로 복잡한 리그를 만들 수 있는 강력한 새 방법을 제공하며, 많은 편의성 개선은 일상적인 워크플로를 더 빠르고 매끄럽게 만들어 줍니다.

문제를 보고하고, 베타를 테스트하고, 새로운 기능을 만드는 데 도움이 되는 제안과 피드백을 보내주신 커뮤니티의 모든 분들께 감사드립니다. 여러분의 의견은 매우 소중합니다!

즐겁게 애니메이팅하세요!
–Spine 팀

Spine 포럼에서 이 게시물에 대해 토론해 보세요.