Распечатать страницу
Главная \ База готовых работ \ Готовые работы по компьютерным дисциплинам \ Программирование \ 3077. Курсова робота Створення ігрового персонажа у середовищі Unity 3D

Курсова робота Створення ігрового персонажа у середовищі Unity 3D

« Назад

Код роботи: 3077

Вид роботи: Курсова робота

Предмет: Програмування

Тема: Створення ігрового персонажа у середовищі Unity 3D

Кількість сторінок: 13

Дата виконання: 2017

Мова написання: українська

Ціна: безкоштовно

Вступ

1. Що таке Unity 3D

2. Початок роботи

2.1. Колайдери

2.2. Оптимальна робота зі сценами

2.3. Сцени

2.4. Налагодження

2.5. Структурування

3. Практичні поради

3.1. Написання скриптів

3.2. Усунення помилок

3.3. Допоміжна література

4. Створення стандартного персонажа

4.1 Вид від третьої особи

4.2. Вид від першої особи

5. Завершення роботи

5.1. Недоліки

Висновок

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

На цей момент комп`ютерні ігри займають вельми важливу роль у розвитку майбутніх поколінь. Зрозумілість, доступність та легкість у роботі з ігровим движком дуже приваблюють молодих розробників комп`ютерних ігор. Саме про один з них сьогодні йтиме мова.

Unity − вельми простий ігровий движок, на якому можна створити навіть дуже продвинуту гру. Щоб написати хорошу програму на цьому движку, потрібно знати, принаймні мову кодування JavaScript, бо в усіх ситуаціях вам стовідсотково потрібні будуть скрипти, щоб зробити гру цікавішою та більш насиченою. Скрипти, також, допоможуть вам замінити штучний інтелект, примітивно звісно, але замінити можна.

Unity3d - дуже гнучкий движок, надає велику свободу дій користувачеві. Щоб спростити життя розробнику і споживачеві, можна зробити деякі кроки для оптимізації свого проекту.

1. Що таке Unity 3D

Unity3d є сучасним кросплатформним движком для створення ігор і додатків, розроблений Unity Technologies. За допомогою даного движка можна розробляти не тільки додатки для комп'ютерів, але і для мобільних пристроїв (наприклад, на базі Android), ігрових приставок і інших девайсів.

Поговоримо трохи про характеристики движка. По-перше, варто відзначити те, що в середу розробки Unity інтегрований ігровий движок, іншими словами, ви можете протестувати свою гру не виходячи з редактора. По-друге, Unity підтримує імпорт величезної кількості різних форматів, що дозволяє розробнику гри конструювати самі моделі в більш зручному додатку, а Unity використовувати за прямим призначенням - розробки продукту. По-третє, написання сценаріїв (скриптів) здійснюється на найбільш популярних мовах програмування - C # і JavaScript [1].

Таким чином, Unity3d є актуальною платформою, за допомогою якої ви можете створювати свої власні додатки і експортувати їх на різні пристрої, будь то мобільний телефон або приставка Nintendo Wii.

Для того щоб створити свою гру, вам, як мінімум, потрібно володіти однією з доступних (на Unity) мов програмування: C #, JavaScript або Boo.

Буде чудово, якщо ви володієте, наприклад, 3Ds max ом, це вам сильно допоможе при створенні гри. Що стосується мене, то мені довелося освоїти 3Ds max на базовому рівні, бо ніде не міг знайти потрібну мені модель будинку. У будь-якому випадку вам знадобиться встановлений 3Ds max на вашому комп'ютері, якщо ви збираєтеся імпортувати готові 3D моделі. Бо, в більшості своїй, необхідні моделі мають формат проекту, тобто необхідно буде зарендеритити їх у відповідний для Unity3d формат, наприклад, в *.3DS, і тільки після цього робити імпорт в Unity, в іншому випадку останній видасть помилку.

2. Початок роботи

2.1. Колайдери

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

Так от, про коллайдерах. Припустимо, ми імпортували в наш проект автомобіль і хочемо згенерувати для нього коллайдер. Можна згенерувати автоматично коллайдер для всього автомобіля, але тоді для кожної деталі автомобіля - фари, ущільнювача, дзеркала, покришки - буде згенеровано свій коллайдер. Це абсолютно не оптимально. Безумовно, нам не потрібно генерувати таку велику кількість коллайдерів, достатньо обмежитися одним! 

2.2. Оптимальна робота зі сценами

Поговоримо про оптимізацію сцен, про самих же сценах буде мова вестися далі.

Уявіть таку ситуацію: у нас є сцена «home» - коли гравець знаходиться в будівлі і сцена «street» - коли гравець виходить з будівлі на вулицю. Природно, з другої сцени ми можемо бачити будинок, тобто частину першої сцени, і навпаки (якщо, звичайно, у будівлі є вікна). У такому випадку оптимальним є наступна побудова сцен. У першій сцені все, що стосується вулиці (тобто того місця, куди ми не можемо потрапити без переходу на іншу сцену) треба максимально спростити. Іншими словами, нам потрібно залишити тільки зовнішній вигляд виду з вікна, а всю начинку - розпатрати. Тобто всі колайдери видалити, дозвіл і тому подібне звести до мінімуму. Дійсно, навіщо процесору напружуватися з обробкою тієї місцевості, яку ми не можемо відвідати? Аналогічним чином поступаємо з другої сценою («street»).

В даному випадку ми можемо взагалі все видалити з дому і залишити тільки його «коробку». Ви хочете створити міні мапу? Будь ласка, тільки позбудьтеся всіх коллайдеров і знизьте дозвіл, в такому випадку ваша гра буде оптимальна.

Саме таким чином робота зі сценами стає оптимальною. Ще раз зазначу, що це не тонкощі, це серйозні речі, які вимагають уваги творця. 

2.3. Сцени

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

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

2.4. Налагодження

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

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

2.5. Структурування

При конструюванні гри важливо пам'ятати про структуруванні даних - важливому аспекті. Мається на увазі, що все має бути на своєму місці. Створюєте скрипти? – Створіть папку для скриптів, там і зберігайте їх, з великою ймовірністю, у вас буде не один скрипт, розкидати їх по всьому проекту не є добре, самі потім будете мучитися. З власного досвіду можу сказати, що вам точно знадобиться створити папки зі скриптами, звуковими файлами, з GUI текстурами, матеріалами, анімаціями, можливо, префабов і власними моделями (імпортовані з 3Ds Max'а об'єкти краще зберігати саме в останній папці, щоб не розкидати всі моделі по проекту в хаотичному порядку). Коли ви створюєте той чи інший скрипт, пам'ятайте про те, що назва змінних, класів й іншого повинні говорити все самі за себе. Якщо ви хочете створити скрипт для інвентарю (підняти предмет, використовувати предмет), то краще все скрипти одноманітних дій (наприклад, підняття) починати з ключового слова, наприклад: Catch <ім'я предмета>; Use <ім'я предмета>, в такому випадку вам буде легше орієнтуватися в проекті, та й виглядає так набагато симпатичніше.

3. Практичні поради

Головне пам'ятати золоте правило: хороша програма не та, яка написана аби як і налагоджена до межі, хороша програма та, яка пишеться відразу правильно і вимагає мінімальних «витрат» на налагодження. Якщо ви будете користуватися цим правилом, то у вас все буде набагато краще ніж у тих, хто цим правилом не користується. 

3.1. Написання скриптів

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

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

3.2. Усунення помилок

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

3.3. Допоміжна література

Звернемося до літератури, яка допоможе нам вивчити Unity3d, а саме, до Unity 3.x Game Development Essentials.

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

Пару слів про гру і зміст книги. Ваш гравець опиняється на безлюдному острові, йому необхідно врятуватися, для цього він виконує різні завдання і, будемо сподіватися, рятується. Гру можна пройти за пару хвилин, однак створення гри займає далеко не пару хвилин, навіть не пару годин, мабуть. Книга містить дуже докладний посібник зі створення гри «з нуля». У ній описано багато чого, що вам, швидше за все, знадобиться для створення вашої гри.

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

4. Створення стандартного персонажа

Створення ігрового персонажа у Unity 3D не така вже й складна робота, якщо розібратися у інтерфейсі Unity. Для початку треба обрати яку гру ми будемо створювати − з видом від першої особи, чи видом від третьої особи. 

4.1 Вид від третьої особи

Для цього створюємо сферу, щоб вона могла вільно пересуватися по всій ігровій площині. Потім закріплюємо за нею камеру, щоб не втрачати кульку із поля зору. Додаємо 3D Person Controller, щоб мати змогу керувати кулькою, та визначати направлення, куди вона покотиться. Здавалося б усе, але ваша сфера і далі висітиме у повітрі, якщо ви не додасте до неї елементи фізики. Для цього переходимо у відділ Component / Physics, та тиснемо на кнопку Gravity. Тепер наша кулька може вільно пересуватися по поверхні, стрибати і, навіть плавати, якщо ви додасте до властивостей кульки матеріал, з якого вона зроблена, а саме “Wood” − дерево. Ось і все, найпростіший персонах готовий! 

4.2. Вид від першої особи

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

 Отож, розпочнемо. Для початку створюємо об’єкт під назвою First Person Controller, його легко можна знайти у стандартних створеннях. У вас з’являється фігура, схожа на циліндр. Це і є наш персонаж, для того, щоб вибрати йому свою текстуру з руками, ногами, головою та іншим, треба створити текстуру персонажа (можна це робити в таких програмах, як ), потім просто видалити текстуру сірого циліндру і поставити свою. Далі ще один важливий момент, щоб зробити поле зору персонажа як у людини, треба перемістити камеру, прикріплену до ніг персонажа до його голови. У вкладці «Властивості пересування» можна налаштувати висоту стрибка, швидкість ходьби, швидкість бігу, а також гравітацію та швидкість падіння.

Тепер ви можете створити свого унікального персонажа, а згодом і цілий світ, навколо нього.

5. Завершення роботи

5.1. Недоліки

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

2D графіка

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

Префабов

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

Оптимізація зображення

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