This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Компонент спрайта (Sprite) — це просте зображення або покадрова анімація (flipbook animation), що відображається на екрані.
![]()
Компонент спрайта може використовувати атлас або джерело плиток як джерело графіки.
Окрім властивостей Id, Position і Rotation, компонент має такі специфічні властивості:
Image. Інакше кожен слот має назву відповідного семплера текстури в матеріалі.
Кожен слот задає ресурс атласу або джерела плиток, який використовуватиметься для спрайта з цим семплером текстури.Automatic, редактор задасть розмір спрайта. Якщо встановлено Manual, ви можете задати розмір самостійно.Вузли Box у GUI та компоненти Sprite іноді використовують для елементів, розмір яких залежить від контексту: панелей і діалогових вікон, що мають змінювати розмір відповідно до вмісту, або індикаторів здоров’я, які мають змінювати розмір, щоб показувати залишок здоров’я ворога. Накладання текстури на вузол або спрайт зі зміненим розміром може спричинити візуальні проблеми.
Зазвичай рушій масштабує текстуру, щоб вона вписувалася в прямокутні межі, але, визначивши крайові ділянки slice-9, можна обмежити частини текстури, які масштабуватимуться:

Властивість Slice9 вузла Box складається з 4 чисел, що задають у пікселях ліве, верхнє, праве й нижнє поля, які не слід масштабувати звичайним способом:

Поля задаються за годинниковою стрілкою, починаючи з лівого краю:

Описане вище масштабування текстури Slice9 застосовується лише тоді, коли ви змінюєте розмір вузла Box або спрайта:

![]()
Якщо ви змінюєте параметр масштабу вузла Box чи спрайта (або ігрового об’єкта), вузол або спрайт разом із текстурою масштабується без застосування параметрів Slice9.
Коли ви використовуєте текстурування slice-9 для спрайтів, властивість Sprite Trim Mode зображення має бути встановлена в Off.
Через особливості роботи пірамід текстур (mipmaps) у рендерері масштабування сегментів текстури іноді може спричиняти артефакти. Це трапляється, коли ви зменшуєте сегменти відносно початкового розміру текстури. Тоді рендерер вибирає для сегмента рівень піраміди текстур із нижчою роздільністю, що призводить до візуальних артефактів.

Щоб уникнути цієї проблеми, переконайтеся, що сегменти текстури, які масштабуватимуться, достатньо малі: їх має бути потрібно лише збільшувати, а ніколи не зменшувати.
Властивість Blend Mode визначає, як графіка компонента (component) змішується з графікою позаду нього. Доступні такі режими змішування з відповідними формулами:
src.a * src.rgb + (1 - src.a) * dst.rgbsrc.rgb + dst.rgbsrc.rgb * dst.rgbsrc.rgb - dst.rgb * dst.rgbВи можете керувати спрайтами під час виконання за допомогою різних функцій і властивостей (про їх використання див. у документації API). Функції:
sprite.play_flipbook() — відтворює анімацію на компоненті спрайта.sprite.set_hflip() і sprite.set_vflip() — задають горизонтальне й вертикальне віддзеркалення анімації спрайта.Спрайт також має низку властивостей, якими можна керувати за допомогою go.get() і go.set():
cursornumber).imagehash). Його можна змінити за допомогою властивості ресурсу атласу або джерела плиток і go.set(). Приклад див. у довіднику API.materialhash). Його можна змінити за допомогою властивості ресурсу матеріалу й go.set(). Приклад див. у довіднику API.playback_ratenumber).scalevector3).sizevector3). Його можна змінити, лише якщо властивість спрайта Size Mode має значення Manual.Стандартний матеріал компонента sprite має такі константи, які можна змінювати за допомогою go.set() або go.animate() (докладніше див. у посібнику з матеріалів). Приклади:
go.set("#sprite", "tint", vmath.vector4(1,0,0,1))
go.animate("#sprite", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tintvector4). Тип vector4 використовується для подання відтінку, де x, y, z і w відповідають червоній, зеленій, синій та альфа-складовим відтінку.Спрайт може перевизначати атрибути вершин поточного призначеного матеріалу, які передаватимуться з компонента до вершинного шейдера (докладніше див. у посібнику з матеріалів).
Атрибути, задані в матеріалі, відображатимуться як звичайні властивості в інспекторі, і їх можна задавати для окремих компонентів спрайтів. Якщо якийсь атрибут перевизначено, він відображатиметься як перевизначена властивість і зберігатиметься у файлі спрайта на диску:
![]()
У файлі game.project є кілька налаштувань проєкту, пов’язаних зі спрайтами.
Коли спрайт використовує кілька текстур, слід враховувати кілька особливостей.
Наразі дані анімації (частота кадрів, назви кадрів) беруться з першої текстури. Називатимемо її «керівною анімацією».
Ідентифікатори зображень керівної анімації використовуються для пошуку зображень в іншій текстурі. Тому важливо, щоб ідентифікатори кадрів збігалися в усіх текстурах.
Наприклад, якщо у вашому diffuse.atlas є така анімація run:
run:
/main/images/hero_run_color_1.png
/main/images/hero_run_color_2.png
...
Тоді ідентифікатори кадрів матимуть вигляд run/hero_run_color_1, і їх навряд чи вдасться знайти, наприклад, у normal.atlas:
run:
/main/images/hero_run_normal_1.png
/main/images/hero_run_normal_2.png
...
Тому для їх перейменування використовуємо Rename patterns в атласі.
Задайте _color= і _normal= у відповідних атласах, і ви отримаєте такі назви кадрів в обох атласах:
run/hero_run_1
run/hero_run_2
...
UV-координати беруться з першої текстури. Оскільки є лише один набір вершин, ми не можемо гарантувати належний збіг, якщо додаткові текстури мають більше UV-координат або іншу форму.
Це важливо враховувати, тому переконайтеся, що зображення мають достатньо подібну форму, інакше може виникнути просочування сусідніх текстур.
Розміри зображень у кожній текстурі можуть відрізнятися.