12 принципів ігрової анімації. Від класики Disney до сучасних ігор

В ігровій анімації багато часу приділено технічним елементам: структурам моделей, пайплайну або штучному інтелекту, завдяки якому персонажі реагують на дії гравців. Однак самим рухам героїв рідко можна присвятити стільки ж часу, як це роблять в індустрії кіно. Адже в геймдеві потрібно дбати не лише про вигляд, а й про взаємодії.

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

Ігрові аніматори мають добре вправлятися у художніх техніках, аби вдихнути життя у свої творіння. Класикою жанру вважають 12 принципів анімації, які створили у Walt Disney Animation Studios. У 1981 році їх опублікували в книзі Disney Animation: The Illusion of Life Френка Томаса та Оллі Джонстона.

12 принципів анімації описують техніки малювання конкретних рухів і взаємодій, щоб намальовані персонажі могли діяти, як живі, завдяки різним засобам виразності

Ці 12 принципів можуть бути вкрай корисні для ігрової анімації, хоч вони й створені для кіноіндустрії та не завжди ідеально пасують до ігор. Тому геймдизайнер Крістофер Тоттен адаптував принципи Disney для ігрової індустрії та описав їх у своїй статті (а також використав під час створення платформера Little Nemo and the Nightmare Fiends). Публікуємо переклад цього матеріалу.

Історична довідка: більше жодних гумових шлангів

У 1927 році представники анімаційної індустрії, зосереджені тоді навколо Нью-Йорка, зібралися на вечері на честь Вінзора Маккея, одного з батьків американської анімації та творця новаторських коміксів та мультфільмів, серед яких Little Nemo та Gertie the Dinosaur. Після кількох напоїв Маккей піднявся на сцену і виголосив промову, у якій сказав:

«Анімація має бути мистецтвом, саме так я її задумав. Але, як я бачу, ви, добродії, зробили з неї ремесло — не для мистецтва, а для торгівлі. Поганенько!»


Приклад показової анімації епохи «гумового шланга» (з діснеєвської серії Oswald the Lucky Rabbit). В такій анімації немає чіткого базового рисунка, який допомагає закріпити персонажа в тривимірному просторі. Тут ігнорується будь-яке відчуття маси чи масштабу, що допомагає персонажу рухатись реалістично (зображення з YouTube)

Коментар Маккея прозвучав в епоху анімації, стиль якої називають «гумовий шланг». Він має швидко розсмішити глядача, але не допомагає персонажам стати реалістичними. Сьогодні цей стиль відродився завдяки грі Cuphead та іншим проєктам, які використовують 12 принципів, але у той час він вважався пласким і примітивним.

Це контрастувало, наприклад, з роботою Fleisher Studios (Бетті Буп), яка стала проривом у тогочасній анімації. Ретельно продумані проєкти Disney Animation у 1930-х роках також стали бунтом проти «гумового шланга», навіть після того, як студія випустила кілька робіт у цьому стилі.

У фільмі Вінзора Маккея 1914 року Gertie the Dinosaur використана техніка, яка випередила свій час і прикувала увагу глядачів до анімованого динозавра. Томас і Джонстон пишуть, що цей фільм мав потужний вплив як на ранніх аніматорів Disney, так і на індустрію загалом

Що це за принципи та навіщо їх перевинаходити?

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

Наприклад, у грі Wonder Boy: The Dragon’s Trap аніматор Бен Фіке навмисне зробив так, щоб лев тягнув за собою меч. Так форма персонажа стає більш читабельною. У попередній версії лев ніс меч у руках і був більш компактним, але менш наочним.

Зображення з TIGSource Forums

У своєму виступі Фіке завершує тезу, яку висловив Маккей майже 100 років тому про боротьбу мистецтва і ремесла: адже виразна художня анімація часто створюється саме завдяки технічній майстерності. Та якщо у 30-х і 40-х роках можна було завжди керуватись класичними принципами, випрацюваними для фільмів, зараз вони не покривають потреб ігор.

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

12 принципів ігрової анімації

Далі ми розберемо кожен з 12 класичних принципів анімації та з’ясуємо, що це таке, чому вони важливі, які можуть виникати проблеми під час перенесення їх в ігри та як ці складнощі подолати. Ці принципи можна (і варто) застосовувати і для 2D-, і для 3D-ігор, вони не обмежуються жодним форматом. Для наочності в тексті наведено приклади з гри Little Nemo and the Nightmare Fiends, над якою зараз працює автор цього тексту.

1. Стискання і розтягування

У цій версії клоуна Фліпа в анімації добре помітний метод стискання і розтягування

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

Важливо, що тут ви завжди повинні анімувати персонажів так, щоб вони зберігали свій об’єм: при стисканні персонаж перпендикулярно розширюється, а під час розтягування стає пропорційно вужчим. Так ви уникнете недоліків стилю «гумового шланга», коли персонажі змінювали масу тіла у випадковий спосіб.

Стискання і розтягування можуть працювати по-різному залежно від матеріалів. М’яч ліворуч помітно деформується, тому що він гумовий, а металева лампа праворуч (Pixar Luxo Jr.) наче стискається і розтягується, але зберігає форму

Цей метод допомагає візуалізувати фізику в грі й підкреслити властивості матеріалів: що сильніше персонаж розтягується і стискається, то гумовіший він (відповідно, що менше стиснення, то твердіший матеріал). До того ж стискання і розтягування працює не лише для «мультяшних» персонажів. Якщо зберігати пропорції, ці методи додадуть соковитості та виразності в різних напрямах анімації.

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

Аніматори, які вдаються до методу стискання і розтягування, мають робити це уважно (і бажано порадитись із програмістами гри). Наприклад, подбати, щоб кадри з цією анімацією закінчились раніше, ніж відбудеться важливе зіткнення.

Ще можна зробити так, щоб під час зіткнень форму змінювали лише певні частини тіла персонажа. Такі речі дають можливість читерства для гравця і часто застосовуються і геймдизайні (наприклад, є так званий час койота, коли ви вже вибігли за край у прірву, але ще не падаєте і можете повернутись чи, наприклад, застрибнути на скелю).

Рух об’єкта, який змінює свою форму (ліворуч) і який зберігає основну форму (праворуч)

Як ви побачите далі, варто знаходити певний компроміс, щоб класичні методи анімації добре працювали в контексті гри.

2. Передчуття (попередній рух)

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

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

Поворот голови людини людський мозок сприймає як природній. Джерело: Pinterest

Анімація повороту голови без попереднього руху: технічно правильна, але прісна. Джерело

Щоб анімація виглядала більш реалістично, не обов’язково детально відтворювати кожен людський рух. Наприклад, тут персонаж трохи опускає голову і прикриває очі перед тим, як повернути голову (приклад взято з книги Еріка Голдберга Character Animation Crash Course).

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

Тут аніматори та дизайнери мають кілька варіантів. Перший — спробувати всидіти на двох стільцях: додати коротенькі рухи для передчуття, але робити це одразу частиною дії, яку виконує гравець. Наприклад, коли персонаж в грі Little Nemo стрибає, він трохи стискається, але в ту ж мить опиняється над землею, практично без затримки. Після цього він трохи розтягується для реалістичності.

Також можна збалансувати гру так, щоб вона враховувала темп персонажів (наприклад, як в іграх Castlevania, де швидкість ворогів залежить від анімації персонажа гравця). Ще один метод — додавати кадри зі спеціальними рухами так, щоб підкреслити відчуття ризику чи винагороди. Наприклад, персонаж має важку зброю, яка робить його повільнішим, але сильнішим. Або у файтингах є види потужних атак, для яких треба більше часу, ніж для звичайних. Якщо мислити в такий спосіб, анімація може стати повноцінною частиною тактики у грі.

Важливо, що проблеми з цими додатковими рухами стосуються лише ігрових персонажів, які мають реагувати швидко. В анімації неігрових персонажів ефект передчуття має бути нормою, це робить їх живими, реалістичними. Крім того, ці додаткові рухи критично важливі для ворогів та босів, адже вони попереджають гравця, що ось-ось відбудеться атака. Це добре видно в іграх на кшталт Punch-Out!!!, Dark Souls чи Metroid Dread.

3. Постановка сцени

Це важлива частина анімації, яка дозволяє спрямувати увагу глядачів. Постановка анімації має два важливих складники: композицію та силуети.

Композиція — це те, як ви розміщуєте об’єкти та персонажів у сцені та як їх розташування привертає увагу глядача. Типи та розташування вибраних кадрів можуть передавати настрій, відносини між персонажами тощо.

Композиція цього кадру одразу розповідає нам історію. Персонажів розташували далеко від центру, тож ми відчуваємо рух: дівчинка тікає від зомбі, який переслідує її. Вона налякана, про що свідчить вираз її обличчя (і ми добре бачимо це, оскільки обличчя наближене в кадрі), а нахил камери передає відчуття жаху. Джерело зображення: AnimationExploration.org

Силуети підкреслюють позу персонажа, те, як він з’являється на екрані. Якщо затемнити персонажа, аби залишилася лише чорна тінь, силует все одно має зчитуватись. Аби це спрацювало, частини тіла мають розрізнятись завдяки анімації.

Це зображення з книги Престона Блера Cartoon Animation показує концепцію силуету. Качур-чарівник витягає кролика з капелюха. Ліворуч силует чіткий і навіть з його тіні зрозуміло, що відбувається. Зображення праворуч працює гірше, адже силует не зрозумілий. Джерело зображення: книга Cartoon Animation

У постановці сцени дуже очевидні відмінності між фільмом та іграми, адже в іграх ми передаємо контроль над персонажем і розміщенням камери нашим гравцям.

Утім, існують добре задокументовані рішення в галузі левелдизайну. Наприклад, аніматори та розробники мають ретельно продумати, як персонаж буде підходити до важливих ігрових локацій і як спрямувати увагу гравця через оформлення середовища.

Щодо силуетів — аніматори мають уважно малювати 2D-спрайти, щоб у ключових кадрах пози добре зчитувались. 3D-персонажів варто обертати, аби перевірити, чи зчитується силует під різними кутами. Окрім того, треба враховувати середовище, в якому буде з’являтися персонаж.

У грі Breath of the Wild увага глядача зосереджується на ключових орієнтирах і деталях, які важливі для ігрового процесу. При цьому самі користувачі можуть керувати камерою лише зрідка

4. Пряма анімація і принцип «від положення до положення»

Під час анімації за принципом «від положення до положення» аніматор створює ключові кадри — базові пози, які стають основою для руху, а вже потім заповнює проміжні кадри. Сучасні програми для анімації роблять це автоматично (функція називається tweening).

Кадри, які розташовані посередині між ключовими кадрами, називаються розбивками (breakdowns), а кадри, які згладжують анімацію між ними та ключовими кадрами, називаються проміжними (in-betweens). Саме на ключових кадрах зосереджується основна анімація і в них мають бути чіткі силуети.

У книзі Character Animation Crash-Course Ерік Голдберг показує поетапне створення пози для персонажа. Кадри 1, 17 і останній кадр (позначені чорним) є ключовими, а кадри 9 і 25 (зелені) — це розбивки. Інші кадри (які не показані, але є в схемі з інтервалами) будуть згладжувати анімацію

Натомість пряма анімація передбачає створення кадрів за порядком. Цей метод може здаватись простішим, але насправді він доволі складний і варто звертатись до нього лише у певних ситуаціях. Наприклад, коли позаду персонажа розлітається одяг чи ви анімуєте слабко зав’язане волосся. Досить складно малювати рухи для ходьби, стрибків тощо, якщо не мати перед собою ключового кадру, до якого ви маєте прийти (однак це все ж можливо, про що розповідає Білл Титла у своїй роботі Force vs. Form).

Це один із принципів, який не має обмежень в іграх: адже він стосується лише робочого процесу. Для наочності поглянемо на анімацію, яка використовує обидва принципи.

В оригінальному коміксі Little Nemo (1908 рік) є кадр, де в ліжка Немо виростають ноги і воно скаче по вулиці галопом. Це одна з найвидатніших сцен в історії коміксів та анімації, яку потім відтворили і в коміксі про Бетмена, і в мультфільмі «Час пригод», і у «Вулиці Сезам». Природно, вона з’явиться і в грі Little Nemo — а для анімації цієї сцени використали і пряму анімацію, і принцип «від положення до положення».

Створення анімації ліжка: спочатку використана базова модель, на яку накладається фінальна ілюстрація, а потім додаються персонажі дітей за допомогою прямої анімації

Щоб створити ліжко (без персонажів згори), аніматор змоделював його в 3D і поставив схематичну модель. Вона стала основою для роботи, завдяки якій можна визначити ключові пози. Вони створені на базі фотографій Едварда Майбріджа 1878 року, на яких зображений рух коней.

Далі між ключовими позами аніматор створив розбивки та проміжні кадри, щоб анімація була плавнішою. А персонажі на ліжку домалювались потім за принципом прямої анімації: їхні рухи напряму залежать від того, як рухається ліжко. Автор просто імпровізував — наприклад, підкидаючи дітей вгору, коли ліжко різко стрибало.

5. Інерція та ефект накладання

Коли елементи фізично реагують на первинну дію (як в анімації вище, де рухи дітей залежать від рухів ліжка), це приклад наслідкової дії, інерції та накладання (follow through and overlapping action), коли незафіксовані частини тіла чи одягу продовжують рухатись, навіть якщо основний об’єкт зупинився. Рух цих елементів накладається один одного, створює окремий ритм і робить анімацію цікавішою.

Аврора зі «Сплячої красуні» — анімація Марка Девіса

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

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

Для атаки принцеси використано мало наслідкових кадрів, але анімація в грі добре читається і дозволяє швидко рухатися далі

По-друге, рух може утворюватись лише з таких наслідкових кадрів. Наприклад, анімація атаки Немо повністю зациклена: перший кадр — це завершення руху меча, а решта анімації — це відновлення руху, під час якого залишковий слід від меча зникає. Так створюється враження цілісного руху, хоча насправді він не послідовний.

І останній метод — створення наслідкового руху завдяки іншому об’єкту. Схоже, що цим керувались аніматори, які створювали атаки в Hollow Knight. Принцип у тому, щоб рух об’єкта, яким розмахують, тривав довше, ніж рух самого персонажа. Так гравці можуть швидко керувати персонажем, але анімація не втрачає потрібного ефекту.

6. Сповільнення на початку та при завершенні

Для цього принципу дуже важливим є ретельний вибір кадрів. У такій техніці аніматор малює більше кадрів навколо ключових кадрів (і до, і після них), аби показати початок руху, прискорення і завершення. Лайфхак для початківців: швидший рух потрібен саме в середині анімації — так вона буде переконливішою.

Джерело: Learn.Toonboom.com

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

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

З іншого боку, треба оцінити, чи достатньо кадрів для втілення цієї техніки. У деяких випадках, особливо в піксельних ретро-іграх, треба обирати кадри дуже уважно. Наприклад, під час створення гри Kudzu аніматор мав лише 2 кадри для анімації атаки, тому він обрав техніку сповільнення на завершенні, щоб атака була виразнішою.

7. Дуги

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


Робін Гуд, анімація Мілтона Каля

Наші тіла і суглоби рухаються дугоподібно — це саме стосується фізичних реакцій. Наприклад, м’яч рухається за траєкторією параболи, коли підстрибує (це, до речі, класична вправа під час вивчення анімації). Інерційні рухи теж зазвичай дугоподібні, тому правило просте: завжди анімуйте за принципом дуг.


Русалонька, анімація Глена Кіна

В такий спосіб можна удосконалити й підкреслити навіть дрібні деталі: якщо об’єкти на пласкій поверхні будуть рухатися за траєкторією дуги, це створить ефект об’єму.

8. Другорядна дія

Класичним прикладом цього принципу є анімація бігу, коли головна дія персонажа — це рух ніг, але від нього залежать рухи рук та інших частин тіла. Такі ефекти можуть суттєво додати реалістичності персонажам.

Джерело: Animation Mentor

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

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

9. Швидкість кадрів

Якщо узагальнювати, то більше малюнків та кадрів роблять дію повільнішою, а менше кадрів — швидшою. І саме тут розробники ігор, фактично, мають перевагу, на відміну від аніматорів у кіно. Адже розробникам не треба прив’язуватись до 24 кадрів на секунду: в грі швидкість відтворення анімації можна контролювати завдяки рушію. У ньому можна частково налаштувати, як анімація виглядатиме в грі, і не треба повертатися, щоб відредагувати саму анімацію.

Анімація козлика Грегорі на швидкості 1X надто різка і в браузері може виглядати дещо конвульсивно

Це та сама двокадрова анімація, але на швидкості .25X. Виглядає значно краще!

Тут треба пам’ятати про одне обмеження: що більше кадрів ви додасте, то більший обсяг матиме гра. При цьому треба зберігати чіткість рухів, адже для гри це критично важливо (особливо для 2D).

Тому можна використати так звані мазки — animation smears — це окремі кадри, які поєднують у собі одразу кілька кадрів (наприклад, з кількома позами персонажа).Такі кадри ризикують стають мемами, бо персонажі на них кумедно розтягуються, але вони дають змогу створити плавний рух з меншою кількістю кадрів.

Скриншот зі Стражем Мосту з гри Little Nemo and the Nightmare Fiends показує анімаційні мазки у русі

10. Перебільшення

Цей принцип не діє окремо, а стосується того, як ви використовуєте всі інші методи анімації.

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

Один з наочних прикладів — дует персонажів Гастона і Лефу в «Красуні та Чудовиську». Гастон намальований реалістичніше за інших героїв фільму, тому його дії все ще гіперболізовані, але менше, ніжу решти. Натомість для Лефу аніматори використали цей принцип на повну.

У грі Little Nemo аніматори використали перебільшення, щоб зробити Місяць (який є босом у грі) більш страшним. Поза ліворуч більш реалістична, але кадр праворуч лякає більше, тому в трейлері гри на Kickstarter цей кадр відтворювали найчастіше.

Для ефекту перебільшення в іграх варто пам’ятати про те, як персонаж взаємодіє з оточенням під час зіткнень та відгукується на дії гравця. Загалом гіперболізація — це чудовий спосіб зробити анімацію насиченою та переконливою. Інтенсивність перебільшення і швидкість анімації допомагають створити різні ефекти підкреслення (якщо вам йдеться не лише про класичне розуміння «соковитої» анімації в іграх).

11. Ґрунтовний базовий малюнок (і дизайн)

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

Джерело зображення

Більшість фахівців з анімації та геймарту знають ці речі. Але початківців часто шокує те, що в цій галузі треба знати основи анатомії, перспективи та вміти малювати (зокрема й справжнім олівцем!).

Від майстерності художників та аніматорів залежить, як тіло героя буде рухатись і трансформуватись під час руху, чи природними будуть ці дії, чи сподобаються вони гравцям і глядачам. Ці навички треба удосконалювати. Так само розуміння анатомії допоможе уникнути нереалістичної симетрії та зробити пози персонажа переконливими. Асиметричні пози, які ґрунтуються на розумінні анатомії, роблять персонажа об’ємним, живим і дають відчуття фізичного простору.

12. Харизма

Фліп Візора Маккея та Фліп з гри Little Nemo and the Nightmare Fiends: з чіткими контурами, які підкреслюють характер персонажа

Останній принцип анімації — привабливість, або харизма. Йдеться про те, як вигляд персонажів дозволяє з ними взаємодіяти, співчувати та піклуватися про них. Від харизми залежить і те, наскільки багато глядач може зрозуміти про персонажа та його особистість з першого погляду.

Цей принцип не має обмежень для ігор, але проявляється під час створення самих персонажів. Аніматори з’ясували, що вибір форми персонажа та певні колірні палітри допомагають аудиторії краще зрозуміти характер персонажа.

Джерело зображення

Тут також важливо, чи має персонаж виразне обличчя, чи може якось ще передати свій емоційний стан за допомогою мови тіла (не зайвим буде помалювати динамічні пози на базі основного рисунка). Хорошим прикладом тут слугує гра Undertale, де можна легко зчитати характер персонажів завдяки їхній формі та іншим засобам виразності. А люди люблять яскравих героїв.

Звісно, 12 принципів — це не все, що треба знати про анімацію. Але це фундамент, який допомагає зробити ваших персонажів живими та реалістичними. Багато принципів з класичної анімації без обмежень застосовуються в іграх. Тож варто пам’ятати про них, щоб не винаходити щоразу велосипед.

Гарного анімування!

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини

👍ПодобаєтьсяСподобалось18
До обраногоВ обраному7
LinkedIn

Схожі статті



Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі