스프라이트 시트의 일부를 수동으로 그리려면 어떻게해야합니까?


9

저는 Unity에서 일하고 있는데 2D 게임에서 애니메이터가 내가하려고하는 일을하고 있지 않다는 것을 알았습니다. 스프라이트 시트를 사용하여 특정 애니메이션을 만들고 셀별로 크기와 크기가 같은 다른 스프라이트와 동일한 애니메이션을 재사용 할 수 있기를 원합니다. 약간의 연구 끝에 불가능하다는 것을 알게되었습니다.

대신 자체 애니메이션 스크립트를 만들려고하는데 스프라이트의 한 부분 만 그리도록 Unity에 지시하는 방법을 이해하지 못합니다. XNA와 같이 시작 및 끝 좌표를 사용하여 스프라이트의 특정 사각형 만 렌더링 할 수 있습니다.

스프라이트 시트의 일부를 수동으로 그리려면 어떻게해야합니까?


3
이것은 약간의 해킹으로 애니메이션 데이터를 복제하지 않고도 Unity에서 가능합니다. 효과적으로 spritesheetA를 사용하여 애니메이션 A를 재생 한 다음 LateUpdate에서 각 SpriteRenderer의 Sprite를 spritesheetB의 아날로그로 교체합니다. 이 기술에 대한 Unity 비디오가있었습니다. 나중에 찾을 수 있으면 답변으로 게시하고 세부 사항에 대해 자세히 설명하겠습니다. 이를 통해 처음부터 직접 작성하지 않고도 Unity의 기본 애니메이션 시스템을 최대한 활용할 수 있습니다.
DMGregory

Spine 또는 다른 골격 애니메이션 소프트웨어를 사용해보십시오. 스킨 기능이있어 동일한 본 애니메이션을 유지하면서 필요에 따라 스킨을 교환하고 변경할 수 있습니다. 나는 개인적으로 Spine을 사용하기 때문에 간단합니다. 자습서가 있으며 모든 것이 매우 간단합니다. 단점은 비용이 들지만 기본 버전은 애니메이션을 만드는 데 필요한 모든 것을 제공합니다. 프로 버전은 더 쉽고 빠릅니다.
Savlon

UI에서 작업하는 경우 마스크 사용
virtouso

답변:


1

나는 이것을 할 수있는 더 간단한 접근법이있을 수 있다고 생각하지만 여전히 애니메이션에 Unity Mecanim을 사용합니다.

단계 :-

1) 이미지에서 텍스처 2D 스프라이트를 프로그래밍 방식으로 할당 할 수 있으며 그리드이므로 그리 어렵지 않습니다. 다음 답변에서 사용자는 자신의 스프라이트 슬라이서를 만들고 디렉토리에 저장했습니다 (선택 사항은 변수에 저장하십시오). 전체 코드가 필요하지 않고 GetSprites () 함수를 확인하면 아이디어를 얻을 수 있습니다. :)

http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html

2) 일단 그렇게 할 수 있다면 1 단계에서 얻은 스프라이트 배열을 유지하십시오.

3) 이제 메카 님에 꽂을 수있는 스프라이트의 애님 파일을 만들어야합니다. 이를 위해서는 Unity의 곡선 설정 기능이 필요합니다 (아래 제공된 링크 확인). 클립을 가져 오면 나중에 사용할 수 있도록 저장할지 또는 현재 게임 인스턴스의 변수에만 저장할 수 있습니다.

http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html

희망이 당신의 의심을 해결합니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.