Spine 3.7 릴리스
January 4th, 2019
많은 새로운 기능, 향상된 기능 및 버그 수정을 제공하는 Spine 3.7이 릴리스되었습니다!
전체 변경 사항은 에디터 변경 로그와 런타임 변경 로그를 확인하십시오. 모든 런타임은 이미 최신 상태이며 3.7에서 작동합니다. 다음은 주목할 만한 새로운 기능 및 기타 변경 사항 중 일부입니다.
오디오 지원
3.7 릴리스에서 오디오에 대한 지원이 추가되었습니다! 이제 Spine 에디터 내에서 직접 그래픽 및 오디오 자산을 미리보고, 동기화하고, 반복할 수 있습니다.
이 기능은 Audio
라는 계층 뷰에 새 노드를 도입하여 작동합니다:
이것은 Images
노드와 비슷합니다. 지정된 경로에 있는 모든 오디오 파일은 설정 모드의 Audio
노드 아래에 나열됩니다. Spine은 현재 WAV, MP3 및 OGG 오디오 포맷을 지원합니다.
프로젝트에 오디오 파일을 추가하면 오디오 파일을 Events
노드에 드래그하거나 오디오 파일을 선택하고 New Event
버튼을 클릭하여 이벤트를 만들 수 있습니다. 최종 결과는 오디오 파일과 연결된 새로운 이벤트로서 애니메이션에 키로 입력할 수 있습니다.
보시다시피 이벤트에는 3가지 새로운 속성이 있습니다.
Audio path
는 이벤트와 연결된 오디오의 위치를 지정합니다. 이 옵션이 설정되면 애니메이션에서 이 이벤트에 대한 키가 일치할 때 오디오 파일이 재생됩니다.Volume
을 사용하여 재생 음량을 설정할 수 있습니다.Balance
를 사용하여 스테레오용 좌우 채널의 음량을 설정하거나 모노용 패닝을 설정할 수 있습니다.
오디오 이벤트를 입력하면 볼륨 및 밸런스 값을 설정 값과 다르게 입력할 수 있습니다.
스크린샷에서 footstep 오디오 이벤트가 Spineboy의 walk 애니메이션에 대하여 두 번 입력되었습니다. 도프 시트에서 오디오 이벤트의 지속 시간은 자주색 가로선으로 표시됩니다. 도프 시트에는 새로운 Audio
뷰가 있습니다. 이 뷰는 도프 시트와 동기화되어 모든 활성 오디오 이벤트의 파형을 표시하며 사용자는 마스터 볼륨과 출력에 사용할 오디오 장치를 제어할 수 있습니다. 오디오 뷰 타임라인이나 도프 시트 타임라인을 통해 스크럽(Scrub: 타임라인을 앞뒤로 드래그하기)하여 오디오를 스크럽할 수도 있습니다.
오디오 처리를 위한 내보내기 시스템을 업데이트했습니다. 애니메이션을 동영상으로 내보낼 때 Spine은 오디오도 포함합니다.
오디오 재생은 에디터 전용 기능입니다. 런타임 시 3개의 추가 이벤트 속성을 사용할 수 있지만 Spine Runtimes는 오디오 로드 및 재생을 관리하지 않습니다. 런타임에서 오디오를 Spine 애니메이션과 동기화하는 것은 이전과 같이 관리됩니다. AnimationState
또는 TrackEntry
로 이벤트 처리기를 등록하여 각 이벤트에 대해 원하는 오디오 재생을 트리거하십시오.
뷰포트 픽셀 그리드 스케일링(3.7.14)
유명한 Axiom Verge의 Tom Happ 등 일부 사용자가 픽셀 아트에 Spine을 사용하고 있습니다. Spine에서 픽셀 아트 워크플로를 지원하도록 뷰포트 픽셀 그리드 스케일링 기능을 추가했습니다. 이 기능을 활성화하면 Spine은 픽셀 아트를 1:1 비율로 렌더링한 다음 최종 이미지를 뷰포트 크기까지 확대하여 모든 픽셀 선명도를 그대로 유지합니다.
이 기능을 사용하면 Spine 에디터에서 바로 복고풍 스타일 픽셀 스케일링 및 회전으로 도입된 앨리어싱과 기타 아티팩트를 미리볼 수 있습니다.
Spine 설정에서 이 기능을 활성화할 수 있습니다. 이 주제에 대한 자세한 내용은 포럼 스레드를 확인하십시오.
신축성, 압축 및 균일 역운동학(IK)
Spine은 1개 또는 2개의 뼈가 다른 타겟 뼈를 가리키도록 하는 1개 또는 2개 뼈 역운동학 제약조건을 지원합니다. 그러나 이러한 제약조건은 엄격했습니다. IK 체인 내의 뼈는 자동으로 늘어나거나 압축되지 않았습니다.
Spine 3.7에서는 IK 제약조건에 몇 가지 설정이 추가되었습니다.
Stretch
옵션을 1개 및 2개 뼈 IK 제약조건 모두에 사용할 수 있습니다. 이 기능을 활성화하면 IK 체인 내의 모든 뼈가 타겟 뼈에 접촉하도록 필요에 따라 늘어납니다. 그러나 타겟 뼈까지의 거리가 원래 뼈 길이보다 짧으면 뼈가 압축되지 않습니다.
1개 뼈 IK 제약조건의 경우 Compress
설정은 타겟 뼈까지의 거리가 제약된 뼈의 길이보다 작으면 제약된 뼈가 압축되도록 합니다.
Compress
와 Stretch
를 모두 입력할 수 있습니다.
늘리기와 압축 모두에서 제약된 뼈의 어태치먼트와 하위 항목이 뼈의 X축에서 크기가 조정됩니다. 1개 뼈 IK 제약조건의 경우 Uniform
설정을 추가로 활성화할 수 있으므로 두 축 모두에서 크기 조정이 수행됩니다.
개선된 내보내기 기능
Spine 3.7에서 내보내기 대화 상자를 완전히 개편하고 새로운 내보내기 기능을 다수 추가했습니다.
GIF 내보내기 도구는 이제 매우 정교한 양자화 알고리즘을 사용하여 GIF 포맷의 256색 제한 내에서 가능한 한 애니메이션의 색상을 보존합니다. 색상은 각 프레임 내에서뿐만 아니라 일시적으로 프레임 전체에서 신중하게 선택되어 애니메이션이 실행되는 동안 깜박임을 방지합니다. 내보내기 설정에서 많은 컨트롤이 표시되므로 특정 애니메이션에 대한 최상의 파라미터를 찾아 최고의 GIF를 만들 수 있습니다.
몇 가지 내보내기 포맷이 추가되었습니다. APNG는 GIF와 유사한 애니메이션 이미지 포맷이지만 풀 컬러와 투명 기능을 지원합니다. 이 포맷은 모바일을 포함한 모든 브라우저(Microsoft Internet Explorer 및 Microsoft Edge 제외)에서 지원되며 GIF의 훌륭한 대안입니다.
Adobe Photoshop PSD 포맷으로 내보내기 기능이 추가되었습니다. 애니메이션의 각 프레임은 별도의 레이어로 내보내집니다. 이 기능은 VFX 및 기타 프레임별 애니메이션에 대한 포스트 이펙트를 적용하거나 애니메이션을 다른 소프트웨어에 단일 파일로 가져오기 위해 다른 원근감으로 추가 어태치먼트를 그리는 경우에 유용할 수 있습니다.
상기 스크린샷의 오른쪽 상단에 Preview
버튼이 있습니다. 클릭하면 어떻게 작동하는지 확인해보십시오!
미리보기는 압축 또는 기타 내보내기 설정으로 도입된 모든 아티팩트를 포함하여 내보낼 때 이미지가 그대로 표시되도록 렌더링합니다.
Range
를 클릭하여 내보낼 프레임의 하위 집합을 선택할 수 있습니다.
가장 자주 요청되는 기능 중 하나가 Crop
설정입니다.
장면 내보내기에 사용되는 뷰포트의 크기와 위치를 지정할 수 있습니다!
모든 비디오 내보내기는 이제 오디오 내보내기도 지원합니다.
스킨 결합
자주 요청되는 또 다른 기능은 Spine 에디터 내에서 동시에 여러 스킨을 보는 것입니다. 이전에는 이 기능이 런타임 시에만 가능했습니다.
이제 새로운 Skins
뷰가 추가되었습니다. 사용 가능한 모든 스킨 목록이 상단에 표시되며 각 스킨에 핀이 있습니다. 하단에는 현재 고정된 스킨 목록이 표시됩니다. 핀으로 고정된 모든 스킨은 맨 아래 스킨부터 시작하여 동시에 볼 수 있습니다. 하단 목록에 고정된 스킨을 드래그하여 적용되는 순서를 변경할 수 있습니다.
스킨 뷰에서 단일 스킨을 선택하면 활성 스킨이 됩니다. 활성 스킨의 어태치먼트만 뷰포트에서 선택하고 편집할 수 있습니다. 활성 스킨은 항상 표시됩니다. 핀으로 고정되지 않으면 마지막으로 적용되는 것으로 간주됩니다.
스킨 뷰는 위의 스크린샷과 같이 다양한 기어 및 신체 부위에 스킨을 혼합하여 매치시키는 캐릭터 작업에 특히 유용합니다. 또한, 파티에 입고 나갈 의상에 대한 사용자의 욕구도 만족시킬 수 있습니다. 저희는 잘 알고 있습니다. 새로운 의상 조합을 테스트하느라 많은 시간을 투자했습니다!
검색어 입력
Tree
뷰에는 이제 계층 내의 항목을 검색할 수 있는 텍스트 상자가 있습니다. Enter
를 누르면 텍스트 상자에 포커스가 맞추어집니다. 그러면 값을 입력하고 Enter
(또는 F3
)를 눌러 다음 검색 결과를 선택합니다. Shift + Enter
(또는 Shift + F3
)를 사용하여 이전 결과를 선택하고 Esc
를 눌러 텍스트 상자 내용을 지웁니다.
또한, 트리 필터 팝업에서 Text search filters
확인란을 선택할 수도 있습니다. 이 옵션을 선택하면 검색 텍스트와 일치하는 요소만 트리 뷰에 표시됩니다.
스킨 복제 및 플레이스홀더 생성
이제 스킨 복제에는 자동 이름 바꾸기, 링크된 메쉬 사용, 메쉬 변형 키 복제 등을 위한 옵션을 포함하여 다양한 새로운 기능이 포함되었습니다. 이 기능을 사용하면 새 스킨을 설치할 때 많은 시간을 절약할 수 있습니다.
기존 어태치먼트에서 새 스킨 플레이스홀더를 만들 때 동일한 편의 기능을 사용할 수 있습니다. 또한, 기존의 모든 스킨에 대하여 어태치먼트를 복제할 수 있습니다!
정점 복사/붙여넣기
이제 정점을 선택하여 복사한 다음 나중에 붙여넣을 수 있습니다. 작은 기능이지만 매우 유용할 수 있습니다! 메쉬, 패스 및 경계 상자에서 작동합니다. 같은 수의 정점이 선택되는 한, 정점을 다른 어태치먼트에 붙여넣는 것도 가능합니다.
CLI 개선 사항
[명령 라인 내보내기]에 몇 가지 기능을 추가했습니다(/spine-export#Command-line)!
-m
또는 --clean
인수를 사용하여 Spine 프로젝트에서 불필요한 애니메이션 키를 제거할 수 있습니다. Spine JSON 또는 바이너리 포맷으로 내보낼 때도 사용할 수 있습니다. 이 인수를 자산 파이프라인의 일부로 추가하여 런타임 파일이 가능한 한 작도록 하거나 Spine 프로젝트를 대량으로 정리할 수 있습니다.
새로운 --import
인수를 사용하면 JSON, 바이너리 또는 프로젝트의 뼈대를 다른 프로젝트로 가져올 수 있습니다. 기존 뼈대들을 단일 Spine 프로젝트 파일에 결합하려는 경우에 유용합니다. --scale
플래그와 함께 결합하면 명령 라인에서 전체 프로젝트의 크기를 조정할 수도 있습니다.
이러한 새 플래그의 예는 [명령 라인 내보내기] 설명서(/spine-export#Command-line)에서 확인할 수 있습니다.
런타임 개선 사항
Spine의 런타임 부분을 개선하는 데 많은 노력을 기울였습니다! 전체 개요 및 엔진/프레임워크 관련 추가 및 변경 사항을 보려면 Spine 런타임 변경 로그와 3.7 브랜치용 커밋 로그를 확인하십시오.
일부 추가 및 변경 사항은 모든 런타임에 공통적입니다. 다루기가 그리 어렵지 않은 몇 가지 중요한 변경 사항이 있습니다.
- 완료 이벤트는 프레임마다 반복되는 제로 지속 시간 애니메이션의
AnimationState
및TrackEntry
의 수신기로 전달됩니다. Skeleton
의flipX
및flipY
속성은scaleX
및scaleY
로 대체되었습니다. 이제 트랜스폼을 간단하게 적용할 수 있고 일부 뼈가 스케일을 상속받지 않는 경우에도 전체 뼈대의 크기를 조정할 수 있으므로 훨씬 더 강력해졌습니다.MixPose
는MixBlend
로 이름이 바뀌었습니다. Timeline API로 직접 작업 중이거나AnimationState
를 직접 수정하지 않는 경우 이 변경은 기존 코드에 영향을 미치지 않을 것입니다.
모든 런타임에 적용되는 주요 추가 기능
- 부가적인 애니메이션 블렌딩. 일반적으로 별도의 트랙에서 애니메이션을 재생할 때 낮은 트랙의 포즈는 높은 트랙에 의해 재정의됩니다. 부가적인 트랙을 사용하면 포즈가 더 낮은 트랙의 결과에 추가됩니다. 이렇게 하면 여러 표정을 혼합하는 것과 같은 효과를 얻을 수 있습니다(예: 25% 화남, 25% 슬픔, 50% 행복). 트랙에 부가적인 트랙을 활성화하려면
TrackEntry#setMixBlend(MixBlend.add)
를 호출하십시오. 혼합 비율(백분율)을 지정하려면TrackEntry#alpha
를 설정하십시오. 이 포럼 스레드에서 토론을 참조하십시오. TrackEntry
에는holdPrevious
라는 새로운 필드가 있습니다. 이 필드는 많은 트랙을 사용할 때 애니메이션 부분의 "디핑"을 유발하는AnimationState
의 제한을 상쇄하는 데 사용될 수 있습니다. 이 포럼 스레드에서 이 문제에 대한 전체 토론과 당사가 구현한 해결책을 참조하십시오.- 위에서 설명했듯이 신축성 및 압축 IK 제약조건 지원
- 오디오 이벤트 지원. 오디오 재생을 구현하기 위해
Event
및EventData
의audioPath
,volume
및balance
필드를 쿼리할 수 있습니다.
3.6 릴리스 이후 버그 수정 및 기능 향상 요청을 포함하여 200개 이상의 런타임 문제를 해결했습니다. 사용자 여러분의 도움 없이는 불가능했을 것입니다. 문제를 보고해주신 모든 분께 감사드리며 계속하여 이러한 전통을 이어가기를 바랍니다!
spine-cpp
Spine Runtimes에 대한 가장 큰 추가 사항은 아직 언급하지 않았습니다. 바로 spine-cpp입니다! 이 기능은 C++ 런타임 참조에 큰 기여를 한 Stephen Gowen의 순수한 [풀 요청(pull request)]으로 시작되었습니다. 한 달이 넘는 노력 끝에 사용자가 사용할 수 있는 첫 번째 버전을 완성할 수 있었습니다.
그러나 Unreal Engine, cocos2d-x, cocos2d-objc 및 SFML Spine Runtimes는 모두 레퍼런스 구현의 C89 호환 버전인 spine-c를 기반으로 합니다. spine-cpp에 대한 이러한 런타임을 변경하고 spine-c 기반 대응 항목을 제거하는 것은 사용자에게 혼란을 줄 수 있으므로 좋은 방법이 아닙니다.
그래서 우리는 용감한 베타 테스터를 위해 두 개의 개발 브랜치를 두기로 했습니다. SFML 런타임의 C++ 버전이 추가된 3.7-beta
와 Unreal Engine과 cocos2d-x 런타임이 spine-cpp로 전환된 3.7-beta-cpp
가 그것입니다. 이 방법은 Spine 3.7의 베타 단계에서 효과적이었습니다. 많은 사용자가 spine-cpp의 관용적인 C++ API를 탐색하고 문제를 보고하여 배포 준비를 마칠 수 있었습니다.
3.7 릴리스에서는 spine-cpp 기반 브랜치를 기본으로 하기로 결정했습니다. spine-c에 의존하는 상당히 큰 규모의 코드 베이스를 가진 Unreal Engine 또는 cocos2d-x 사용자에게 3.7-c
브랜치를 제공합니다.
앞으로 3.7 기본 브랜치에서 spine-cpp와 spine-c를 계속 유지하고 런타임 변경 사항을 3.7-c
브랜치에 병합할 예정입니다. 그러나 Unreal Engine 및 cocos2d-x 런타임의 변경 사항을 3.7 기본 브랜치에서 3.7-c
브랜치로 백포트하지는 않을 것입니다. Spine 3.8에서는 spine-c를 계속 유지할 예정이지만 spine-c 기반 Unreal Engine 및 ccocos2d-x 런타임은 계속 유지하지 않을 것입니다.
Spine 워크샵
올해 초, 당사는 자체적으로 제공하는 워크샵을 시작했습니다! 워크샵은 Esoteric Software 강사들이 진행하며 현장 또는 웹을 통해 제공됩니다.
지난 몇 개월 동안 학생들과 환상적인 시간을 가졌습니다! Spine 워크샵에 관심이 있으시면 워크샵 페이지를 방문하여 오늘 워크샵을 요청하십시오.
Spine 교육기관
당사는 사내 직원들에게 제공할 수 있는 많은 워크샵이 있습니다! Spine을 사용과 관련하여 전 세계 사용자들을 교육하기 위한 지속적인 노력의 일환으로 전 세계의 교육 파트너들에게 Spine에 대한 모든 것을 알려주는 학교, 대학 및 컨설턴트 목록을 만들었습니다.
귀사의 이름을 추가하여 이 교육업체 목록을 확장할 수 있기를 고대합니다! Spine 워크샵 및/또는 교육을 제공하는 경우 교육기관 페이지를 방문하여 코스와 워크샵 정보를 제출하십시오.
예제
새로운 예제 페이지에서는 Spine에 포함되어 있는 각 예제 프로젝트에 대한 설명을 제공합니다. 이 페이지는 다양한 리깅 기술에 대해 배우고 Spine 예제를 훨씬 더 유용하게 활용할 수 있도록 하는 훌륭한 리소스입니다.
Twitch
올해 당사의 Erika Inzitari는 매주 Spine으로 작업한 작품을 스트림하는 Esoteric Software Twitch 채널을 개설했습니다. Erika의 스트림은 Spine 워크플로에 관한 것으로 가득 차 있습니다. 확인해볼 것을 적극 권장합니다! 라이브 환경에서 질문하고 Spine의 복잡한 리깅을 살펴볼 수 있는 좋은 기회입니다.
주문형 비디오(VOD)를 선호하는 사용자를 위해 Erika의 모든 스트림은 Esoteric Software YouTube 채널에도 업로드됩니다. 각 YouTube 동영상 설명에는 주제와 동영상 링크가 포함되어 있으므로 흥미를 가지는 부분으로 곧바로 이동할 수 있습니다.
Erika는 또한 Twitter 해시태그 #skeletember를 개발하여 9월에 매일 하나의 리깅 팁을 트윗하고 있습니다. Erika를 팔로잉하시기 바랍니다!
다음 릴리스를 기대하세요
3.7이 출시됨에 따라 이제 X 및 Y 변환의 개별 키 삽입 등과 같은 기능은 물론 새로운 커브 에디터에 집중할 수 있게 되었습니다. 런타임면에서 성능 향상, 버그 수정, 그리고 Godot 및 Construct를 우선순위에 두고 새로운 게임 엔진에 대한 지원을 계속 추가할 예정입니다. 마지막으로 우리는 비밀 프로젝트를 수행하고 있으며 곧 공개할 수 있기를 바랍니다!
문제를 보고하고 베타 버전을 테스트하고, 그리고 새로운 기능을 제안해주신 모든 사용자께 감사드립니다. 여러분의 도움 없이는 해내지 못했을 것입니다!
즐거운 애니메이션 작업이 되시기 바랍니다! Spine 팀
Spine 포럼에서 이 글에 대해 토론할 수 있습니다.