Як я вручну намалював частину аркуша спрайта?


9

Я працюю в Unity, і я виявляю, що аніматор не працює для того, що я намагаюся зробити, у своїй 2D грі. Я хочу створити конкретну анімацію, використовуючи спрайтові аркуші, і мати змогу повторно використовувати ту саму анімацію з іншими спрайтами, що мають однаковий розмір і розміри по комірках. Після деяких досліджень я вважаю, що це неможливо.

Натомість я намагаюся створити власний сценарій анімації, але я не розумію, як сказати Unity, щоб намалювати лише розділ спрайту. Щось на кшталт XNA, де ви могли візуалізувати лише певний прямокутник спрайта, використовуючи координати початку та кінця.

Як я вручну намалював частину аркуша спрайта?


3
Це можливо в Unity, не дублюючи дані анімації, з невеликим злому. Ефективно, ви граєте в анімацію A за допомогою spritesheetA, а потім у LateUpdate ви поміняєте Sprite Rerite SpriteRenderer на його аналог із spritesheetB. На цій техніці було зроблено відео Unity; Я опублікую це як відповідь, якщо зможу знайти його пізніше, і детально роздам деталі. Це дозволить вам використовувати всю потужність вродженої системи анімації Unity без необхідності писати власну з нуля.
DMGregory

Спробуйте Спіна або якесь інше програмне забезпечення для скелетної анімації. Він має можливість скінів, що дозволяє підтримувати ті ж анімаційні кістки, але міняти та змінювати шкури за потребою. Я особисто використовую хребет, тому що він простий, є підручники, і він має час виконання єдності, що робить все дуже просто. Мінус полягає в тому, що це коштує грошей, але основна версія дає вам все необхідне, щоб зробити анімацію. Професійна версія просто полегшує та швидше.
Савлон

використовуйте маски, якщо ви працюєте на користувальницькому інтерфейсі
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) Тепер вам потрібно створити файл анімів з цих спрайтів, який можна підключити до mecanim. Для цього вам потрібна функція встановлення кривої Unity (перевірте наведене нижче посилання). Після того, як у вас з'явиться кліп, ви можете зберегти його для подальшого використання або просто мати його в змінній лише для поточного екземпляра гри.

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

Сподіваюся, це вирішить ваші сумніви :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.