Создание персонажа для unity3d

Создание персонажа для unity3d

Unity3D – это очень популярный среди инди-разработчиков игровой движок. Он ценится за удобную в использовании платформу, реалистичную графику и возможность многоплатформенной публикации. Этот урок по Unity будет полезен новичкам в геймдизайне или тем, кто ищет простой способ создать 3D модель города.

Загрузка Unity

На сайте Unity этот продукт представлен в разных тарифных планах. Инди-разработчику для начала прекрасно подойдет бесплатная версия. Нажмите кнопку «Скачать сейчас» и загрузите версию для вашей ОС. Unity доступен для Mac OS и Windows, но обязательно убедитесь, что ваш компьютер соответствует системным требованиям.

Далее необходимо зарегистрироваться. Так вы сохраните историю загрузок из Unity Asset Store. Приложение запустится сразу после скачивания. В зависимости от ОС, установка может занять от двух до десяти минут. В процессе появится диалоговое окно, куда вам нужно будет ввести свои данные. Войдите в учетную запись, чтобы создать новый проект.

Выберите New Project и назовите его «My City». Никакие пакеты пока выбирать не нужно.

Внимательно выбирайте папку для ваших проектов, так как все файлы должны оставаться в одном месте. Для этого проекта оставьте директорию по умолчанию. Как только проект откроется, выберите File > New Scene и назовите сцену «MyFirstCity».

Интерфейс Unity

Возможно, интерфейс сначала покажется сложным, но мы по порядку разберем все его элементы. Перед вами должно появиться следующее окно:

  • Вкладка Project содержит все файлы проекта: картинки, текстуры и префабы. С самого начала поддерживайте порядок в файлах, потому что по мере работы их количество будет стремительно расти, и рано или поздно вы рискуете запутаться.
  • Во вкладке Console отображается код или сообщения об ошибках.
  • В панели Hierarchy содержатся объекты текущей сцены. Любой проект начинается с элементов Light и Main Camera.
  • Вкладка Scene отображает текущую сцену с позиции основной камеры.
  • Вкладка Game отображает игру так, как ее увидит игрок.
  • Во вкладке Animator можно добавлять команды для контроллера анимации вашего персонажа.
  • Панель Inspector содержит такие настройки текущих объектов сцены, как цвет, текстура, скрипты и т. д.

Инструменты в левом верхнем углу позволяют вручную передвигаться по сцене и перемещать ее элементы. Когда вы добавляете в сцену какой-либо элемент, он отобразится в реальном времени в игре. Важно: не забывайте сохранять свои действия, чтобы элементы сцены сохраняли нужную вам позицию.

  • Инструмент Hand позволяет свободно передвигаться по сцене.
  • Crossed Arrow используется для перемещения элементов сцены.
  • Rounded Arrows вращает элементы сцены.
  • Outward Arrows меняют размер элементов сцены.
  • Box позволяет увидеть сцену от первого лица.

На верхней панели также есть вкладки File, Edit, Assets, Game Objects, Component, Mobile Input, Window и Help. Со временем вы изучите все их подпункты и научитесь пользоваться ими.

Расположение элементов интерфейса

Впервые открыв Unity, вы увидите такое расположение элементов интерфейса, как на скриншоте выше. Чтобы изменить его, перейдите в Window > Layouts. Просмотрите каждый из предложенных вариантов, пока не найдете самый удобный для себя.

Вы можете также самостоятельно настроить расположение элементов, кликая левой кнопкой мыши по вкладкам и перетаскивая их, куда вам нужно. Я, например, работаю на двух мониторах, потому вкладка Game открыта у меня на одном, а Scene – на другом.

Загрузка ассетов

Теперь, когда мы создали сцену и настроили расположение элементов, пора загрузить необходимые ассеты. Помните, что любой ассет может быть использован во множестве проектов.

Перейдите в Window > Asset Store. Когда магазин откроется, вы увидите там множество объектов, текстур, персонажей и инструментов Unity. Конечно же, вы можете купить всё, что вам понравится, но в этом уроке я расскажу, как создавать текстуры самостоятельно, а также как пользоваться бесплатными ассетами. При первом открытии магазина вас могут попросить войти в вашу учетную запись.

Введите в строку поиска по магазину “Yughues Free Concrete Materials”. Вам откроется следующее окно:

Нажмите Download, дождитесь окончания загрузки и кликните Import. В зависимости от вашей ОС процесс может занять от двух до десяти минут. По завершении импорта новый ассет появится во вкладке Project.

Подобным образом загрузите и импортируйте из магазина City Props Pack.

Нам также потребуется скайбокс – найдите и импортируйте Wispy Skybox.

Теперь пришло время добавить пакеты Unity. Выберите Assets > Import Package. Нам потребуются пакеты Characters, Cameras и Environment.

Поиск бесплатных ассетов

Чтобы найти текстуру дороги, я ввела “road textures” в поисковике Bing и перешла во вкладку «Изображения». Следует убедиться, что поиск выполняется по файлам с бесплатной лицензией.

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

Теперь аналогичным образом подыщем текстуры для зданий. Я использовала запрос “building textures”. Не забывайте поддерживать порядок в файлах и сохранять изображения в соответствующую папку Unity.

Примечание: работая в Unity над коммерческим проектом, позаботьтесь о лицензии ваших ассетов. Изображения, не требующие лицензионных отчислений, можно купить на Envato Market.

Создайте папку во вкладке Project и назовите ее Artwork. Перейдите в Asset > Import Asset и выберите изображение, затем переместите его в папку Artwork.

Примечание: при перемещении изображения сразу после сохранения проекта оно может не отобразиться или отобразиться без текстуры.

Как только все ассеты загрузятся, можно будет приступать к созданию города. Но перед этим сохранитесь: File > Save Scene.

Читайте также:  Перемещение приложений на sd карту андроид

Ландшафт

Выберите GameObject > 3D Object > Terrain, чтобы добавить в сцену ландшафт.

Примечание: При выбранном инструменте Hand можно приближать и отдалять камеру по отношению к объектам с помощью колесика мыши.

Результат должен выглядеть, как на картинке выше. Возможно, при первом открытии Unity 5 у вас появится пара сообщений о нарушении работы шейдера. Если ваш проект выглядит, как на скриншоте ниже, – не волнуйтесь, это легко исправить. Выберите Terrain, затем кликните по значку шестеренки сразу под Inspector, пролистайте вниз до пункта Material и выберите опцию Built-In Legacy Diffuse. Это должно помочь.

Положение камеры

Когда вы выбираете объект в панели Hierarchy, информация о нем появляется в окне Inspector. Здесь вы можете настраивать объект, добавлять текстуры, коллайдеры и код.

Выставим правильное положение для камеры. Выберите Main Camera в Hierarchy. Теперь перейдите ко вкладке Inspector и в блоке Transform введите следующие значения для Position: 265, 20, 20.

Текстура для ландшафта

Выберите Terrain в Hierarchy и кликните по иконке кисточки в окне Inspector. Далее нажмите левой кнопкой мыши Edit Textures под блоком Textures, а затем – Add a Texture. Откроется небольшое окно, в котором нужно будет выбрать текстуру. По завершении появятся текстуры, которые вы импортировали из Asset Store. Выберите двойным кликом ту, которая вам нравится. Я остановилась на Dark Concrete.

Скайбокс

Unity поставляется с довольно неплохим стандартным скайбоксом, но мне больше нравится тот, который мы загрузили ранее. Выберите Main Camera, затем перейдите в Inspector и нажмите Add Component внизу окна. Введите Skybox, нажмите на круглую иконку справа и выберите в появившемся окне нужный скайбокс. Теперь, открыв вкладку Game, вы увидите там добавленный скайбокс.

Формы зданий

Чтобы добавить форму для здания, выберите Game Object > 3D Object > Cube. Сначала вы не увидите этот куб, потому что он будет далеко. Переместите его на обозримую область, выбрав Cube в окне Hierarchy и задав ему следующее расположение: 300, 25, 100. Выставьте его размер на 20, 50, 20. Размер можно менять как специальным инструментом на панели слева вверху, так и меняя значения в соответствующих полях. Добавив куб, кликните по нему правой кнопкой мыши в Hierarchy и переименуйте на Building 1.

Отлично, теперь добавим еще несколько зданий. Повторите действия выше. В окне Hierarchy появится еще один куб под названием Cube (1), переименуйте его на Building 2. Задайте ему размер 20, 70, 20 и положение 275, 25, 100.

Добавляя здания, меняйте их размер и положение. Убедитесь, чтобы они выстроены по одной линии, для этого среднее значение должно оставаться на 25. Как и размер, положение объектов можно менять не только методом ввода значений, но и инструментом перемещения. Повторяйте все действия, пока у вас не получится пять зданий, от Building 1 до Building 5. Я расположила здания через 25 единиц друг от друга: 250, 0, 100, 225, 0, 100 и т. д. Не забудьте сохранить сцену.

Примечание: вы также можете кликнуть правой кнопкой мыши по зданию в окне Hierarchy, чтобы скопировать и вставить его.

Текстуры зданий

Пора превратить эти неприглядные фигуры в здания. Кликните по папке Artwork во вкладке Project (куда вы загрузили текстуры зданий), выберите текстуру и перетащите ее в окно Scene. Вы увидите изменения в окнах Scene и Game. Меняйте настройки, двигайте и вращайте здания до тех пор, пока не получите нужный результат.

Примечание: если текстура стоит задом наперед, поверните ее по оси Z на 180?.

Дорога

Чтобы добавить дорогу, выберите Game Object > 3D Object > Plane и задайте ей следующее положение: 250, 0.2, 80. Поверните ее по оси Y 90? и измените размер на 1, 1, 15. Теперь выберите текстуру дороги и добавьте ее на созданную плоскость, переименовав последнюю в Road.

Строим улицу

Готовые проекты Unity содержат, как правило, тысячи объектов, скриптов и префабов, потому очень важно поддерживать порядок в файлах. Сейчас мы немного упорядочим содержимое окна Hierarchy.

Любой город обычно делится на кварталы и улицы, и наш не станет исключением. Выберите Game Object > Create Empty, и в Hierarchy появится новый элемент под названием GameObject. Переименуйте его в Block1(L), затем выделите все ваши здания и переместите под этот объект, сделав их дочерними по отношению к нему.

Далее займемся противоположной стороной улицы. Правый клик по Block1(L), копируем и вставляем его. Меняем его название на Block1® и задаем положение 235, -90, 300.

Теперь можете поменять текстуры у зданий на другой улице или при желании загрузить новые. Для изменения текстуры следует выбирать каждое здание по отдельности, иначе вы сразу поменяете текстуру для всех зданий в ряду. Измените положение камеры на 340, 10, 80 и поверните ее на -80?. Не забудьте сохраниться.

Примечание: если вам не нравится положение какого-либо элемента, поменяйте его на свое усмотрение.

City Props Pack

Начиная с этого шага я буду использовать инструменты панели переключения в верхнем левом углу.

Откройте вкладку Project и разверните папку City Props Pack. Пролистайте вниз до папки Prefabs, откройте ее и найдите элемент под названием Stop sign. Выберите его, и он появится в окне Inspector.

Подвиньте камеру ближе к первому зданию, выберите знак и перетащите его в окно сцены. При необходимости поменяйте его размер. Я использовала следующие настройки: 0.2, 0.2, 0.2.

Читайте также:  Вероятность падения самолета в россии

Добавим еще какие-нибудь детали. Выбирайте все элементы, какие вам нравятся, и располагайте их вдоль улицы. Любой объект можно скопировать и вставить несколько раз в окне Hierarchy. Чтобы не нарушать порядок в файлах, создайте пустой родительский элемент под названием City Props и переместите туда все соответствующие элементы. Сохраните сцену.

Примечание: Если объекты в сцене светятся белым, поменяйте настройки шейдера на Legacy Shaders / Bumped Diffuse.

Деревья

Unity поставляется со стандартным пакетом деревьев, но вы всегда можете загрузить дополнительные ассеты из магазина.

Кликните по Terrain в Hierarchy. Затем нажмите на иконку дерева в блоке Terrain окна Inspector. Под настройками выставьте значение Brush Size на 1 и после этого нажмите Edit Trees > Add Tree. В блоке Tree Prefab кликните по круглой иконке справа.

Выберите дерево (я остановилась на Broadleaf) и добавьте его двойным кликом. Теперь оно отобразится под блоком Trees в окне Inspector. Используйте мышь, чтобы расположить дерево в сцене. Синий индикатор рядом с курсором укажет место, куда оно будет добавлено. Так как значение Brush size у нас 1, вы будете добавлять по одному дереву за раз. Менять размер деревьев можно с помощью опции Tree Height. Если вас не устроит полученный результат, вы всегда можете нажать Edit Trees и удалить дерево.

Персонаж от третьего лица

Пришло время создать первого обитателя нашего виртуального города. Разверните папку Standard Assets во вкладке Project и нажмите Characters > ThirdPersonCharacter. Пролистайте до папки Prefabs и перетащите объект под названием ThirdPersonController в вашу сцену. Задайте контроллеру положение 315, 0.1, 78 и размер 3, 3, 3.

Его также можно развернуть в любом нужном вам направлении. Нажмите Play и попробуйте с помощью клавиатуры управлять действиями персонажа.

Нам нужно, чтобы камера следовала за персонажем, иначе он будет пропадать из поля зрения. Выберите элемент Main Camera в Hierarchy и перетащите его под ThirdPersonController так, чтобы камера стала дочерним элементом. Теперь, когда вы нажмете Play, камера будет следовать за персонажем.

Контроллер от первого лица

Можно также добавить возможность просмотра от первого лица. Для этого перейдите во вкладку Project и выберите Standard Assets > Prefab > FPS Controller. Перетащите контроллер в сцену, поверните его и настройте размер. Обратите внимание, что FPS Controller имеет собственную камеру, потому для его использования нужно будет удалить MainCamera.

Примечание: если ваш персонаж проваливается сквозь землю, скорее всего, вы расположили его слишком низко. Кликните дважды по персонажу в окне Hierarchy, и он отобразится в окне Scene. Поднимите контроллер выше вручную или впишите напротив Y значение 1.

Поздравляю! Вы только что создали свой первый трехмерный город Unity 5! Как видите, это легко и увлекательно. Вы можете проявить фантазию и добавить туда всё, что заходите: машины, магазины, дома и т. д.

Следите за обновлениями, вас ждет еще много уроков по Unity 5.

Вы можете помочь и перевести немного средств на развитие сайта

Для более детально изучения основных возможностей построения платформенной игры в среде Юнити pro, нужно понимать общее понятие сути платформера.

Платформер (Platformer) – направление компьютерных игр определённого жанра, основной сюжетной линией является прыгание по платформам, взбирание по лестницам, а так же сбор необходимых предметов для завершения уровня. Некоторые с предметов могут наделять персонажей особыми навыками, примеры:

  • Сила удара;
  • Защитный щит;
  • Огромные прыжки и скорость.

В таких сюжетах встречаются противники созданного героя, они в основном наделены примитивным искусственным интеллектом. Количество, так называемых врагов, встречается разное, это зависит от сложности уровней и сюжет игры. Влияние на показатели жизнеспособности и навыков, собранных главным персонажем на протяжении отведённого времени, осуществляется на уровне соприкосновения или уничтожения.

Уровни, как правило, разбиты на сектора со скрытыми подходами в стенах или высокими, труднодоступными местами. Такого рода ступени игры характерны нереалистичностью и рисованной графикой.

Что бы закрепить и лучше усвоить информацию, создадим игру для системы Android.

Предварительная настройка под Android

Перед тем как уже сформирована суть и есть примерные наброски сюжета нужно сделать вход и настройку системы:

  • Запускаем приложение Unity 3D, нажатием на ярлык рабочего стола;
  • В появившемся окне выбираем «New Project», прописываем имя проекта, обязательно выбираем локацию для сохранения, ставим отметку напротив модуля 2Д и нажимаем кнопку «Create Project»;
  • При открытии рабочей области, если такие модули как Иерархия, Инспектор или тому подобное имеют не удобное расположение, можно их передвинуть, нажав ПКМ и перетащив;
  • Далее выбираем File (Файл) – Build Setting, если выбираемый проект компилируется под файловые системы типа Windows, MAC и т.п., то выбираем Android и нажимаем «Switch Platform»;
  • В окне Project необходимо создать папку «Scenes», в которой будут содержаться все уровни, создаваемые пользователем;
  • Заходим в меню Файл, выбираем Save Scene as.. и сохраняем сцену в созданную папку, таким образом, будет сохранён проект, с которым ведётся работа, и в случае выхода с Юнити всегда можно вернуться к той части, на которой ранее остановились.

Поиск и подготовка компонентов

Следующим будет поиск в сети Интернет понравившееся картинки главного персонажа и платформы, и шагаем вперёд:

  • Создадим в окне Project папку «Sprites», все картинки в играх, причём в 2Д играх, называются Спрайтами;
  • Копируем выбранные ранее изображения в эту папку, и больше не каких манипуляций по настройкам с ними не делаем;
  • Перетягиваем пейдж героя и основу платформы в область сцены, так как они отображаются непропорционально, нужно их проредактировать:
  • Кликаем по персонажу героя;
  • В компоненте Инспектор, а именно Трансформере выставляем значения «Scale» таким образом, что бы выровнять пропорции по отношению к платформе;
  • Далее корректируем камеру, находим в окне Иерархии Main Camera и в компонентах Size проставляем число приемлемое для просмотра, например 8, а также выставляем дальность камеры в пределах 100, это значение проставляем в строке Far;
  • После добавляем к персонажу Box Collider 2D, нажимая на кнопку «Add Component» и выставляем коллайдер по его размерам. Размер проставки желательно сделать в половину персонажа, так как будут применены другие коллайдеры. Отметим, что компоненты добавляются только 2Д, так как игра создаётся именно в этом формате;
  • Добавляем Circle Collider 2D, он поможет в дальнейшем взбираться герою на разные поверхности, его тоже располагаем по размеру и не много ниже Box Collider;
  • Не забываем о силе тяжести, добавим Rigidbody 2D, это значит, что спрайт попадает под контроль физического механизма.
Читайте также:  Отправил на почту с комментариями

Обучение процесса перемещений

Для того, что бы можно было управлять функционалом героя, нужно заранее сделать обучение. Тут понадобиться:

  • Создание папки Scripts, сюда добавим С# Script, под названием «PlayerControl»;
  • Перемещаем скрипт на игрока, он отобразится в окне Инспектор;
  • Двойным нажатием по скрипту заходим в текстовый редактор и начинаем корректировку, прописываем несколько переменных:
  • Первая public float, указываем значение speed = 20 ft, это скорость с которой будет двигаться объект;
  • Вторая private Rigidbody2D rb, это связующая переменная для компонента Rigidbody, он будет стартовать при запуске игры и эго нужно присвоить как rb = GetComponent ();
  • Теперь задаём параметры для движения, в зависимости от того в какую сторону будет производиться движение. Для этого создаём новую переменную float moveX = Input.GetAxis («Horizontal»). Это означает, что при выборе движения персонаж будет плавно передвигаться в заданную сторону;
  • Теперь необходимо именно двигать игрока, здесь используем rb с использованием функции MovePosition с подстановкой изначальной позиции объекта: rb.MovePosition (rb.position + Vector2.right * moveX * speed * Time.deltaTime).
  • Внеся все значения можно просмотреть, что из этого вышло, нажав на кнопку Play.

Важно при просмотре в компоненте Rigidbody 2D выставить заморозку вращения, здесь заходим в строку «Constants» и ставим отметку на «Freeze Rotation». Так же выставляем значение гравитации «Gravity Scale» примерно 20 единиц и в меню Edit – Project Settings – Physics 2D по Y значение -20.

Обучение процесса прыжков и вид сопровождение камеры

Что бы задать движения в виде прыжков, нужно зайти в тот же текстовый редактор, где заданы значения перемещений, и прописать:

  • Добавляем новую проверку if (Input.GetKeyDown) (KeyCode.Space)), таким образом задана клавиша Spaces (Пробел) для привода прыжка;
  • Следующее значение задаст силу толчка rb.AddForce (Vector2.up * 8000).

Созданный персонаж запрограммирован на перемещение и прыжки, но есть проблема, камера стоит в одном положении и не как не двигается за игроком. Решение этой задачи в следующем:

  • В папку скриптов добавляем новый скрипт под названием «CamMove» и перетянуть его в область Иерархии на Main Camera;
  • Двойным нажатием на скрипт в Инспекторе открываем окно текстового редактора, по умолчанию там проставлены две библиотеки, с которыми не будет связана работа, и прописываем переменную public GameObject Player. Данная установка даёт возможность всегда следить за игроком в игровом пространстве;
  • Указываем параметры позиции для камеры transform.position = new Vector3 (player.transform.position.x, player.transform.position.y, -10ft);

-10ft выставляется для значения Z, что бы герой не вращался в пространстве.

  • Теперь кликаем на Main Camera и перетаскиваем ссылку на игрока к скрипту Cam Move.

Что бы объект ни перемещался по одной платформе, её стоит продублировать:

  • Создаём папку под названием «Prifabs»;
  • Копируем в неё, с помощью перетягивания, платформу.

Таким простым способом созданный прифаб можно копировать, создавая большее игровое пространство и увеличивая уровни сложности. Для клонирования выполняется комбинация Ctrl+D.

Создание точки старта

При компоновке всех частей созданного проекта, иногда возникает вопрос с обратным прохождением уровней с определённой точки. Это так называемая точка старта, откуда игрок, может восстановиться и продолжить игру. Если не задать таких параметров, то предмет, например, в случаи падения с платформы, может падать бесконечно. Для её создания понадобится:

  • Создаём новый пустой объект под названием «Respawn», это точка, при которой игрок будет появляться в случае проигрыша;
  • Задаём точные координаты персонажа в компоненте Трансформ. Для удобства можно пометить точку иконкой, что бы было понятно от куда начинать;
  • Далее создадим 3Д модель Куб и присвоим название DieSpace, здесь же в Инспекторе удаляем компоненты Mesh-фильтра, оставим только Box Collider, но выбираем Box Collider 2D. Коллайдер растягиваем по Х и Y с перемещением на то место, где будет считаться, что игрок проиграл;

Закрепить созданную точку нужно с помощью скрипта:

  • В папке скриптов создадим файл с названием DieSpace и перемещаем его на коллайдер;
  • Двойным нажатием открываем редактор, и удаляем две не нужные библиотеки в начале и после;
  • Прописываем переменную public GameObject respawn и функцию:
  • void OnTriggerEnter2D (Collider2D other);
  • if (other.tag == «Player»);
  • transform.position = respawn.transform.position.
  • Открываем Юнити и проверяем через запуск Игрового режима правильность заданных параметров.

В заключении можно выделить то, что созданный 2Д платформер работает. Здесь нет сложного сюжета, но представлены базовые возможности:

  • Персонаж может двигаться и прыгать;
  • Установлены платформы, на которых происходит игровой процесс;
Ссылка на основную публикацию
Adblock detector