Как сделать локации в unity
Создание 3D-города в Unity 5
Загрузка Unity
Далее вам нужно будет зарегистрироваться. Зарегистрировавшись, вы можете отслеживать свои загрузки и покупки в магазине ресурсов (asset store) Unity. После загрузки Unity запустится. В зависимости от вашей системы, это может занять от двух до восьми минут. После чего откроется диалоговое окно с просьбой ввести учетные данные. После входа в систему пришло время начать новый проект.
Начните New Project и назовите его «My City». Пока что не выбирайте пакеты.
Обратите пристальное внимание на папку, в которую вы добавляете свои проекты, так как все файлы должны оставаться в одном месте. Оставьте дефолтное расположение для этого проекта. После того, как ваш проект открыт, перейдите в меню File > New Scene и назовите вашу сцену «MyFirstCity».
Интерфейс Unity
Давайте начнем с нижней части.
Панель инструментов с переключателями, на картинке выше, содержит элементы управления для перемещения в игровом мире. Перемещение объекта в сцене также перемещает его в реальном времени в меню игры. Убедитесь, что вы всегда сохраняете сцену, когда объект находится в нужной вам позиции. Поехали по порядку.
Расположение вкладок (Layout)
Когда вы впервые откроете Unity, вы увидите расположение вкладок, как на картинке выше. Перейдите в меню Window, затем Layouts, вы можете просмотреть различные варианты компоновки вкладок, доступные в редакторе Unity. Щелкните каждую из них пока не найдете комфортное расположение вкладок.
Вы также можете создать свой собственный layout, щелкнув левой кнопкой мыши на вкладке и перемещая ее куда угодно. В моем случае я использую два монитора, поэтому у меня вкладка Game Scene на одном мониторе, а вкладка редактирования Scene на другом. Поиграйте с ними, пока вы не будете довольны!
Загрузка ресурсов
Теперь, когда мы создали нашу сцену и довольны расположением вкладок, пришло время загрузить ресурсы, необходимые для нашего проекта. Помните, что любой ресурс, который вы добавляете в свою сцену, можно использовать для нескольких проектов.
Перейдите в Window и нажмите Asset Store. Откроется вкладка asset store; здесь вы увидите сотни объектов, текстур, персонажей и инструментов Unity. Вы можете приобрести любой предмет, который вам нужен. Хотя в этом уроке я покажу вам, как создавать собственные текстуры, мы также загрузим бесплатные ресурсы. При первом открытии asset store он может попросить вас войти в систему.
Давайте начнем, набрав Yughues Free Concrete Materials в окне поиска. Ваше окно будет выглядеть так, как показано ниже.
Теперь нажмите кнопку Download. Через несколько секунд откроется окно. Нажмите Import. В зависимости от вашей системы это может занять от двух до десяти минут. После импорта вы увидите новый ресурс на вкладке Project.
Теперь давайте вернемся в asset store и импортируем City Props Pack. Повторите вышеуказанные инструкции.
Мы также будем загружать skybox. Вернитесь в asset store и импортируйте Wispy Skybox.
Теперь пришло время для наших Unity-пакетов. Перейдите в Assets > Import Package. Нам понадобятся Characters (персонажи), Cameras и Environment (камеры и окружающая среда).
Поиск бесплатных ресурсов
Нам нужны текстуры дороги и здания поэтому соблюдая мои обещание о бесплатных ресурсах, поищем в Интернете. Перейдите в Bing и наберите «road» и после появления некоторых изображений убедитесь, что в разделе License выбрана бесплатная лицензия.
Не стесняйтесь выбирать любую дорогу, которая вам нравится, но лучше всего дорога без фона или сторон. Вы также можете свободно открыть изображение в редакторе и удалить то, что вам не нужно. Я добавил ссылку на дорогу которая использовалась для этого урока.
Чтобы все было организовано, сохраните свои изображения в папке Unity. Возможно, потребуется найти место хранения файлов; обычно местоположение по умолчанию Компьютер > Документы. Теперь нам нужно приблизительно пять строительных текстур. Нажмите на эту ссылку Bing, чтобы перейти к текстурам, которые использовались для этого проекта. Щелкните правой кнопкой мыши и сохраните в той же папке Unity.
Совет: всегда помните, когда вы используете проекты на коммерческой основе, лучше перестраховаться, чем потом сожалеть. Вы можете посетить такие веб-сайты, как Envato Market, чтобы купить royalty-free-изображения.
Теперь давайте создадим папку на нашей вкладке Project и назовем ее «Artwork». Перейдите в Asset > Import Asset и выберите свое изображение. Переместите изображение в папку Artwork.
Совет: Если вы перемещаете свое изображение после сохранения проекта, возможно, ваше изображение не появится или станет розовым (без текстуры). Когда все ваши ресурсы будут загружены, мы готовы начать создание нашего игрового мира. Нажмите File > Save Scene.
Давайте начнем создавать поверхность
Давайте добавим наш ландшафт. Перейдите в Game Object > 3D Object > Terrain. Это добавит 3D-ландшафт в сцену. Сейчас самое время по переключать меню, чтобы привыкнуть к перемещению по игровому миру.
Совет: если у мышки есть колесико, вы можете использовать его для приближения или отдаления от объекта, щелкнув значок Hand (рука).
Положение камеры
Когда вы выбираете объект во вкладке Hierarchy, детали объектов отображаются в окне Inspector (справа). Здесь вы можете вносить изменения в объект, добавлять текстуры, добавлять столкновения и добавлять код.
Давайте вернем камеру в правильное положение. Выберите Main Camera на вкладке Hierarchy. Теперь посмотрите на вкладку Inspector справа, в разделе под Transform вы увидите Position. Введите: 265, 20, 20. Теперь ваша камера должна быть в том месте, где мы этого хотим.
Пойдем по серой кирпичной дороге
Теперь добавим текстуру к ландшафту. Выберите Terrain на вкладке Hierarchy и нажмите на кисть в окне Inspector. В разделе Textures вы увидите Edit Textures. Щелкните левой кнопкой мыши и выберите Add a Texture, и появится небольшое окно, предлагающее выбрать текстуру. После того, как вы нажмете на это поле, отобразятся текстуры, импортированные из Asset Store. Дважды щелкните и добавьте ту, которая вам нравится. Я выбрал Dark Concrete.
Взгляд в небо
Если вам нравится, то Unity поставляется со стандартным skybox, который отлично работает. Думаю, что это немного скучно, поэтому я собираюсь добавить skybox, который мы скачали ранее. Нажмите Main Camera и в окне Inspector нажмите кнопку Add Component в самом низу. Введите Skybox и щелкните по кружочку справа. Откроется окно, в котором вы можете выбрать понравившийся вам skybox, дважды щелкнув его. Теперь, если вы загляните во вкладку Game Scene, вы увидите новый skybox. Пока всё хорошо выглядит!
Если вы создали это
Теперь, когда наша окружающая среда готова, давайте добавим несколько зданий. Перейдите в Game Object > 3D Object > Cube. Сначала вы не увидите куб, потому что он находится на большом расстоянии. Давайте добавим его туда, где мы можем видеть его. Нажмите Cube на вкладке Hierarchy. Давайте разместим куб, введя значения: 300, 25, 100. Давайте также масштабируем его: 20, 50, 20. Можно использовать инструмент Scale (масштаб) или просто ввести размер в поля. После того, как вы добавили первый Cube (куб), щелкните по нему правой кнопкой мыши на вкладке Hierarchy, чтобы переименовать его. Назовите его Building 1.
Круто. Давайте добавим еще несколько зданий. Повторите вышеописанные действия. Вы увидите дополнительный куб во вкладке Hierarchy как Cube (1), поэтому давайте переименуем его в Building 2, щелкнув правой кнопкой мыши и набрав новое имя. Теперь масштабируем: 20, 70, 20 и позиционируем до: 275, 25, 100.
При добавлении зданий измените масштаб и положение для каждого из них. Следите за тем, чтобы вы удерживаете середину на 25, чтобы они выстроились ровно. Вы можете также использовать панель инструментов для масштабирования и перемещения зданий. Продолжайте это делать до тех пор, пока у вас не будет пять зданий и назовите их последовательно, например, Building 2, Building 3 и так далее. Мои здания располагаются на расстоянии в 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 проекты могут иметь тысячи объектов, скриптов и шаблонов экземпляров (prefabs). Важно, чтобы ваши предметы были хорошо упорядочены и сейчас самое подходящее время навести порядок во вкладке Hierarchy.
Любой город состоит из многочисленных зданий, поэтому давайте сохраним наш квартал. Перейдите в Game Object > Create Empty, и теперь вы увидите новый элемент в Hierarchy (иерархии) под названием GameObject. Переименуйте его в Block1(L). Нажмите Building 1, удерживая клавишу Shift и выделите все остальные здания. Теперь вы можете переместить их все под Block1(L), который становится родителем наших зданий.
Копируем
Теперь вы можете изменить текстуры или загрузить новые, если хотите. При изменении текстуры необходимо щелкнуть отдельное здание, в противном случае будут изменены все текстуры квартала. Переместим Camera (камеру) на 340, 10, 80 и повернем на -80.
Совет: Если вам не нравится способ позиционирования элемента, вы можете перемещать его с помощью инструментов трансформации. Нажмите кнопку сохранить.
Добавление городских декораций
Начиная с этого момента мы будем использовать инструменты трансформации. Попрактикуйтесь использовать правую и левую кнопку мыши для перемещения по всему миру. Потребуется небольшая тренировка.
Нажмите стрелку вниз в папке City Props Pack на вкладке Project. Прокрутите вниз до папки Prefabs и щелкните стрелку вниз, пока не увидите список объектов. Выберите знак Stop. Когда вы его выберете он будет отображаться в окне Inspector справа.
Перейдем к передней части первого здания. Выберите знак Stop и перетащите его в окно Scene; в зависимости от вашей сцены может понадобиться уменьшить его. Уменьшите масштаб до значений: 0.2, 0.2, 0.2. Отлично!
Давайте проявим творческий подход и добавим больше предметов. Не стесняйтесь выбирать те, которые вам нравятся, и размещать их в любом месте на тротуаре. Помните, что вы можете копировать и вставлять любые объекты на вкладке Hierarchy. В духе упорядочивания объектов, создайте пустой Empty родительский объект под Game Object и назовите его City Props. Следовательно переместите элементы. Сохраните сцену.
Совет: Помните, что если ваши объекты светятся белым цветом, вам необходимо изменить затенение на Legacy Shaders/Bumped Diffuse.
Добавление деревьев
Теперь пришло время добавить деревья в наш город. Unity поставляется со стандартными деревьями, которые работают замечательно. Вы всегда можете загружать различные типы деревьев из asset store, если вы ищете другой вид.
Выберите дерево (я выбрал Broadleaf). Дважды щелкните и добавьте. Теперь вы увидите дерево, которое вы выбрали в поле Trees на вкладке Inspector. При перемещении указателя мыши в окне Scene, за ней будет следовать синий круг. Поскольку Brush size равен 1, вы будете размещать по одному дереву за раз. Если вы добавите дерево и оно будет слишком большим, вы можете изменить его размер, в разделе Settings, изменив Tree Height (высоту дерева). Если вы допустили ошибку, нажмите Edit Trees и удалите дерево. После этого вы можете начать все заново.
Добавление персонажа c видом от третьего лица
Итак, наконец-то мы создали свою среду где захотели и теперь пришло время добавить в него персонажа нашего друга Итана, чтобы было кому любоваться городом. Нажмите стрелку вниз в разделе Standard Assets на вкладке Project, затем Characters > ThirdPersonCharacter. Перейдите в Prefabs и перетащите ThirdPersonController в свою Scene (сцену). Установите контроллер на 315, 0.1, 78 и измените размер на 3, 3, 3.
Вы также можете повернуть его так, чтобы он смотрел в нужном вам направлении. Нажмите Play и вы сможете контролировать Итана. Нажимайте кнопки со стрелками на клавиатуре и бегайте вокруг.
В какой-то момент вы заметите, что он уходит за пределы экрана, поэтому нам нужна камера, чтобы следовать за ним. На вкладке Hierarchy выделите Main Camera (главную камеру) и перетащите ее под пункт ThirdPersonController. Теперь ваша Main Camera должна стать дочерним элементом ThirdPersonController. Теперь, когда вы нажмете Play, камера будет следовать за Итаном.
Добавление контроллера с видом от первого лица
Мы также можем посмотреть на наш игровой мир в режиме от первого лица. Перейдите на вкладку Project. Выберите Standard Assets, Prefab, FPS Controller. Перетащите его в свою сцену, поверните и масштабируйте. Перед тем, как начать игру, важно отметить, что FPS поставляется с собственной камерой, поэтому вам нужно будет удалить MainCamera.
Совет: Если ваш персонаж проваливается сквозь землю, вы, вероятно, располагаете их слишком низко. Дважды щелкните значок на вкладке Hierarchy и вы увидите крупный план на вкладке Scene. Переместите контроллер вверх с помощью стрелки или или измените положение по оси Y на 1.
Поздравляю! Вы создали свой первый 3D-город в Unity 5! Как видите, это легко и весело. Вы можете проявить творческий подход, как вам нравится, и добавить дома, автомобили, магазины и т. д. Оставайтесь с нами, чтобы получить еще больше уроков по Unity в ближайшее время!
Ландшафт в Unity3D. Часть 1. Создание террейна в Unity 3D и экспорт карты высот из Unity 3D
В данной статье-уроке по созданию террейна в Unity3D рассказывается о том, как создать ландшафт в Unity3D. В уроке раскрываются первые секреты и особенности ландшафта в Unity 3D, а также рассказывается о том, как экспортировать карту высот созданного в Unity3D ландшафта с целью ее дальнейшего использования для редактирования в графических редакторах, например, GIMP или Photoshop.
Создаем ландшафт в Unity3D
Для того чтобы создать заготовку для нового террейна в Unity3D выберите в главном меню вкладку “Game Object”, в которой в свою очередь выберите вкладку “3D Object”, а в ней – “Terrain”. В окне сцены “Scene” появится плоскость, похожая на стандартный примитив “Plane” или “Quad”, расположенные все в той же вкладке “3D Object”.
На рисунке показано меню создания ландшафта террейна в Unity3D.
Хотя только что созданная плоскость террейна и имеет компонент “Transform”, как любые другие объекты в Unity 3D, данный компонент позволяет лишь менять расположение террейна в пространстве, абсолютно игнорируя изменения значений для масштаба “Scale” и поворота “Rotation” террейна (выделено красным на рисунке выше).
Но значение для Rotation можно изменить, если его вращать через Гизмо. Конечно существуют инструменты позволяющие повернуть ландшафт в Unity3D, точнее будет сказать, не террейн, а карту высот террейна. Одним из таких инструментов является ассет с Unity Asset Store Terrain Rotator.
На рисунке показан ассет Terrain Rotator, позволяющий повернуть карту высот ландшафта в Unity 3D, по сути, позволяющий развернуть террейн Unity 3D.
Особенности и секреты террейна/ландшафта в Unity3D
Вместо того чтобы задавать размер террейна через масштаб “Scale” в компоненте преобразования трансформации “Transform” (как это работает, например, для 3D моделей, импортированных в Unity3D), необходимо использовать параметры ширины террейна (по оси Z в глобальных/мировых единицах) и длины/протяженности террейна (по оси X в глобальных/мировых единицах) – “Terrain Width” и “Terrain Length”, задаваемые в настройках/установках террейна “Terrain Settings” (выделено на рисунке выше зеленым цветом). Особенностью созданной заготовки-плоскости для террейна является то, что она может быть изменена имеющимися в Unity3D встроенными инструментами создания террейна, расположенными в компоненте “Terrain” в окне инспектора “Inspector”, такими как понижение/повышение террейна ”Raise/Lower Terrain”, выравнивание террейна до заданной высоты “Paint Height”, сглаживание террейна “Smooth Height”, раскрашивание ландшафта текстурой “Paint Texture”, размещение деревьев на террейне “Place Trees”, размещения травы и мешей “Paint Detail”. Более подробно данные инструменты для работы с террейном в Unity3D описаны в разделе Ландшафтный движок в официальном руководстве Unity3D.
Для данной статьи нам подойдет ландшафт в Unity3D размером в 100 на 100 единиц/units, которые в Unity можно условно приравнять и одному метру, и одному миллиметру (например, для создания макромира в Unity 3D) и нескольким тысячам километров (для создания стратегий в бесконечном космосе в Unity 3D). Остальные настройки (выделены зеленым на рисунке выше в правом нижнем углу) я выставил также не слишком высокими (выделены в нижней правой части рисунка выше зеленым цветом). Обратите внимание, что размер/разрешение карты высот задается не в стандартных размерах 256 (x256), 512 (x 512), 1024 (x 1024), 2048 (x 2048), а к данным значениям добавляется единица, но об этом несколько позже.
Забавности с террейном на этом не заканчиваются: попробуйте повернуть террейн вокруг любой из его осей. Для того чтобы повернуть 3D объект, выберите его (в данном случае террейн), щелкнув по нему Левой Кнопкой Мыши, и перейдите в режим поворота/вращения объекта, нажав клавишу ‘E’, после чего, чтобы повернуть объект вокруг оси Z, щелкните Левой Кнопкой Мыши на синей окружности гизмо, которая окрасится в желтый цвет и удерживая Левую Кнопку Мыши, переместите мышь. За поворот террейна (да и любого другого 3D объекта в окне сцены Unity 3D) вокруг оси Y отвечает зеленая окружность, а вокруг X — красная.
На рисунке показан “повернутый” ландшафт в Unity3D, который на самом деле не развернулся, а лишь поменял свое местоположение.
Обратите внимание, что ландшафт в Unity3D не поворачивается вокруг своей оси, а поворачивается вокруг некоей точки, как если бы его pivot point лежал не в центре самого террейна, причем ориентация террейна при повороте сохраняется, т.е. если левый край террейна смотрел на сервер, а правый – на юг, то данная ориентация краев террейна не изменится после процедуры вращения террейна. После того как вы «повернете» ландшафт в Unity3D, в результате этого «поворота» изменится лишь его положение в 3D пространстве. В зависимости от того, вокруг какой оси вы поворачиваете террейн, зависит то, по каким осям происходит смещение террейна. После того как вы повернете ландшафт в Unity3D, отпустите Левую Кнопку Мыши и поверните террейн еще раз вокруг той же оси. Попробуйте вернуть его в прежнее положение! Не получается… Получается, что как только вы отпускаете Левую Кнопку Мыши, опорная точка pivot point (как Pivot Center for Rotation/Scaling в Blender) террейна автоматически перемещается в новую точку.
Такое поведение террейна, не как обычного 3D объекта, обусловлено условиями, предъявляемыми к оптимизации террейна в Unity3D. Отсутствие поворота – и плюс и минус одновременно. Минус – вы не можете вращать террейн, но при больших локациях, открытых мирах и огромных уровнях вращение террейна просто убило бы производительность и снизило бы FPS до нуля. Для небольших уровней, например, в виде отдельных островков, отсутствие возможности повернуть террейн может считаться минусом, но при данных начальных условиях всегда можно использовать меш взамен террейна, поскольку в данном случае производительность (даже без поворота террейна) может встать на сторону использования именно мешей, а не террейнов.
Модифицируем/изменяем террейн в Unity 3D
На рисунке показаны инструменты компоненты «Transform», при помощи которых можно создать ландшафт в Unity3D.
Кроме всего перечисленного Unity 3D позволяет, как импортировать, так и экспортировать созданный террейн в другое приложение для его редактирования. Точнее будет сказать, экспортируется не сам террейн, а карта высот, ведь именно карты высот мы рисуем, когда водим различными кистями по поверхности террейна. Приложениями, в которые может быть импортирована карта высот, созданная в Unity 3D, могут быть и 3D редакторы, например, Blender 3D, и специализированные приложения для создания террейнов/ландшафтов, например, World Machine 2 (поддерживающее множество известных инструментов для построения качественного ландшафта).
На рисунке показан один из ландшафтов, созданных в редакторе ландшафтов World Machine.
Приложение World Machine «выросло» из GeoControl, о чем извещает страница, на которой ранее располагался сайт GeoControl 2.
На рисунке показана страница перенаправления на один из сайтов, на котором можно познакомиться и купить генератор ландшафтов World Machine 2.
Экспорт террейна в Unity3D через экспорт карты высот ландшафта
Давайте экспортируем карту высот, по которой создается ландшафт в Unity3D. Опция экспорта карты высот террейна в формате RAW доступна в меню установок террейна “Terrain Settings” (иконка с шестеренкой).
На рисунке показан процесс экспорта карты высот из Unity3D.
В окне Инспектора в компоненте “Terrain” в разделе карты высот “Heightmap” выберите кнопку “Export RAW”, чтобы открыть меню экспорта карты высот (на базе которой и построен ландшафт в Unity3D). В данном меню вам предложат выбрать параметры для формата RAW экспортируемого изображения. Выберите 16 bit для параметра Depth, чтобы сохранить карту высот в 16-битном формате (об этом мы поговорим в одном из следующих уроков по созданию ландшафта в Unity3D); для Byte Order – Windows, и НЕ ставьте флаг/галочку напротив параметра Flip Vertically, отвечающем за переворот/зеркальное отображение экспортируемого изображения по вертикали. Осталось лишь кликнуть на кнопке “Export”, открыть окно стандартного сохранения файлов, в котором вам останется лишь выбрать папку, в которую вы хотите сохранить карту высот, и имя файла карты высот, после чего – нажать кнопку “Ok”.
Автор: Максим «MANMANA» Голдобин