Как сделать из змейки космический корабль
Пятьдесят второй урок - собираем ракету. Вступайте в группу ВКонтакте: rubikssnake Подписывайтесь на .
Подробный видео урок, как сделать ракету из змейки Рубика? Detailed video tutorial on how to make a rocket from a snake .
Подробный видео урок, как сделать ракету из головоломки Рубика? Detailed video tutorial how to make a star from the Rubik's .
Подробный видеоурок, как сделать Ракету из Змейки Рубика? A detailed video tutorial on how to make a Rocket from Rubik's .
Подробный видеоурок. Как сделать Скамейку из Змейки Рубика? Detailed video tutorial. How to make Rocket from Rubik's .
Сегодня я покажу вам как собирать вот такую вот ракету из змейки рубика собирается она достаточно просто сейчас я .
Подробный видеоурок, как сделать Ракету из Змейки Рубика? A detailed video tutorial on how to make a Rocket from Rubik's .
Змейка Рубика (Rubik's Snake 24) - Ракета (Rocket).Как сделать из змейки - ракету. Дима 4 года, подписывайтесь на мой .
Как сделать из Змейки Рубика Ракету? How to make a Rubik's Snake Rocket? По многочисленным просьбам замедлил в 2х .
Подробный видеоурок, как сделать Ракету из Змейки Рубика? A detailed video tutorial on how to make a Rocket from Rubik's .
Подробный видеоурок, как сделать Ракету из Змейки Рубика? A detailed video tutorial on how to make a Rocket from Rubik's .
Подробный видеоурок, как сделать Космический корабль из Змейки Рубика? Detailed video tutorial, how to make a Space .
Подробный видео урок, как сделать меч из "Змейки Рубика"? Detailed video tutorial on how to make a sword from the "Rubik's .
Как сделать из змейки рубика ракету. Шаг за шагом. Фигуры из змейки. ВСЕ видео канала здесь - goo.gl/vx6izn .
Подробный видео урок, как сделать огненную птицу из "Змейки Рубика"? Detailed video tutorial on how to make a fire bird .
Подробный видео урок, как сделать лазерный пистолет из "Змейки Рубика"? Detailed video tutorial on how to make a laser .
Подробный видео урок, как сделать кобру из змейки Рубика? Detailed video tutorial on how to make a cobra from a snake .
Подробный видео урок, как сделать Скорпиона из головоломки Рубика? Detailed video tutorial on how to make Scorpio from a .
Подробный видео урок, как сделать звезду из головоломки Рубика? Detailed video tutorial how to make a star from the Rubik's .
Вот сделал я фэнтезийный лес с улучшенной графикой и думаю: а чего это я по нему хожу пешком? Не гоже Творцу по земле скитаться, не царское это дело. Надо, думаю, научиться летать и хорошенько осмотреть свои владения.
Поскольку мой лес фэнтезийный, решил поступить максимально логично и тупо воткнуть туда космический корабль. Почему бы и нет, черт побери? 😉
Как добавить космический корабль на сцену
Похоже, его можно импортировать в свой проект просто двойным кликом. Но я для верности банально перетащил его в окошко проекта. У меня создалась папка, в которой появился префаб (готовая модель) корабля. Ну и я просто перетянул его в игру мышкой, после чего подправил масштаб.
И вот мой корабль уже ждет меня на берегу болота. Сейчас это просто моделька – даже без collision shape. А маленьким я его сделал потому, что террейн у меня небольшой. Хочу просто полетать между деревьями, как эльф. Эльф на звездолете!
Как создать коллайдер и добавить массу
Как я уже сказал, корабль – просто моделька. Через нее можно даже пройти. Нужен коллайдер для столкновений и физика – масса корабля.
Первым делом я выделил корабль в иерархии проекта, нажал Add Component в инспекторе и добавил ему свойство Rigidbody. Массу увеличил до 200 единиц, чтобы персонаж при столкновении не мог сдвинуть его с места.
Ну и вот он, красавец, одиноко лежит на земле в моем лесу.
Пришлось передвинуть его в другое место, потому что при первом запуске он жизнерадостно уехал по склону прямиком в мое болотное озерцо 😀.
Как сесть в корабль
Логику происходящего я понимаю лишь примерно.
- Персонаж подходит к кораблю и нажимает кнопку.
- После этого он должен исчезнуть, а камера переключается на камеру корабля. Корабль становится персонажем, и можно летать.
- При выходе из корабля нажатием кнопки основной игрок (FPS Controller) спавнится рядом и включается его камера.
По крайней мере, так я это выдумал на основе того, что видел в играх… Посмотрим, что получится.
Первым делом добавил камеру в корабль, отодвинул ее чуть назад и наклонил, чтобы она смотрела на него.
Камера (здесь я для теста сделал ее дочерней, но затем ее нужно достать наружу)
Скопировал все компоненты. Теперь все в порядке. Можно продолжать.
Не забудьте отключить камеру (галочка в инспекторе)! Дело в том, что 2 активные камеры – это двойная нагрузка на видеокарту. Очевидно, камеру для таких вещей нужно включать / выключать скриптом.
Скрипт посадки на корабль и выхода наружу
Первым делом нужно научиться удалять персонажа при посадке на корабль и спавнить его обратно при выходе. Для этого при посадке надо проверять дистанцию до корабля, чтобы игрок не мог запрыгнуть в него с километрового расстояния, а при выходе – притягивать меш игрока к кораблю.
Опыта в программировании под Unity у меня нет, поэтому совместными силами с Google, YouTube и документацией мы родили простенький скриптик. Я снабдил код подробными комментариями, чтобы было понятно, что происходит.
Этот скриптик по моей задумке вешается на корабль. Сперва регистрируются публичные переменные, которые добавят поля. В эти поля надо поместить объект игрока, объект корабля и камеру корабля. Также добавляется переменная с максимальной дистанцией до корабля, при которой в него можно сесть. Я поставил 10 единиц (пока не знаю каких 😁).
Вот, по сути, и все. Теперь при приближении к кораблю я могу в него сесть, а затем выпрыгнуть ему на крышу.
Без видео это, к сожалению, сложно продемонстрировать. Так что придется тебе, дорогой читатель, поверить мне на слово. По крайней мере пока… В конце я обязательно покажу, что получилось 😉.
Как летать на корабле
Если все что было ДО давалось мне сравнительно легко, то над тем, чтобы заставить это корыто летать, я работал около 2-х дней. Я не буду расписывать весь процесс пошагово, поскольку это займет несколько часов. Вместо этого я просто покажу код и объясню принцип работы.
Итак, первое, что я усвоил методом проб и ошибок – не стоит тулить все функции корабля в один скрипт, иначе в итоге он превратится в такую помойку, в которой черт сломает ногу, руку и повесится. Лучше разделить функционал по типу и раскидать на несколько небольших файлов.
В моем случае скриптов получилось аж 5 штук. Вот их список в том порядке, в котором я их делал.
- EnterToShip (вешается на корабль) – вход в корабль и выход из него.
- ShipCameraFollow (вешается на камеру корабля) – управление камерой.
- ShipControl (вешается на корабль) – управление кораблем.
- ShipEffects (вешается на корабль) – включение / переключение / отключение систем частиц, которые имитируют реактивные струи двигателей.
- ShipAudio (вешается на корабль) – включение / переключение / отключение аудио-эффектов, которые имитируют гул двигателей.
Как сделать камеру слежения за кораблем
Выбесила она меня страшно, надо сказать. Куда не зайди (я имею в виду YouTube, гайды в сети и так далее), на тебя вываливают какие-то дебри кода с кватернионами, непонятными расчетами и черт знает чем еще. Перепробовав все это я столкнулся с неимоверным количеством глюков.
В итоге выкинул все, сел и просто стал думать.
Итак, у меня есть корабль. И у меня есть камера. Камера должна всегда находиться позади корабля, но следовать за ним с небольшой задержкой. Повернуть камеру на объект легче легкого с помощью Transform.LookAt(). Движение за объектом и задержку вроде бы тоже нетрудно сделать с помощью Vector3.Lerp(). Но как заставить камеру всегда находиться позади объекта?
Оказалось, очень легко. Нужно просто задать камере смещение относительно самого корабля. И я сделал это в 3 строчки кода.
В итоге получилась обалденная плавная камера слежения с регулируемой задержкой и смещением.
Реализация управления
Управление получилось несколько топорным, если сравнивать с настоящими играми. Но в целом летать можно, и это даже по кайфу.
Код я немного причесал и обильно прокомментировал. Хотя уверен, что круглые новички все равно ничего не поймут. В общем, логика работы следующая.
Чтобы скрипт нормально работал, в Rigidbody корабля в Инспекторе нужно настроить Mass (массу), Drag (сопротивление среды движению) и Angular Drag (сопротивление вращению). От массы корабля напрямую зависит сила импульса, которую нужно применить в AddForce(), чтобы он полетел. Высокие сопротивления помогут удерживать корабль стабильным. В противном случае после придания ускорения его уже будет крайне сложно остановить, и его будет мотать по всей округе. То же самое с вращением – если не хотите превратить корабль в спинер, то Angular Drag ставьте большой.
Визуальные эффекты для корабля
По сути, корабль был уже готов. Можно было летать и выполнять фигуры высшего пилотажа. Но все это происходило в тишине и скукоте. Решил добавить визуальные эффекты.
(Эффекты частиц вам придется создать самим )
- Сделал одну систему частиц, имитирующую реактивную струю из двигателя. Даже добавил в нее источник света, чтобы был эффект освещенности. Сделал ее дочерним объектом корабля, назвал Engine1Fire.
- Скопировал ее для второго двигателя, назвал Engine2Fire.
- С помощью скрипта запрограммировал 4 фазы: двигатели выключены (игрок вне корабля), двигатели на минимум (режим бездействия), двигатели в полете (W), двигатели форсаж (W + Shift).
- Чтобы эффект различался по степени яркости, изначальные частицы сделал прозрачными, а выполнении условий фазы просто добавлял их количество.
Получился довольно прикольный эффект. Вначале струя тусклая, при полете ярче, а при ускорении – совсем яркая.
Код, опять же, причесал, как мог.
Звуковые эффекты для космического корабля
Еще одно место, где меня, зеленого неофита, ждали боль и страдания.
Во-первых, написать логику переключения звуков оказалось на порядок сложнее, чем кажется. Причем в приведенной в скрипте логике до сих пор есть баг со звуком взлета (на пробел), который я не могу поймать. Кажется, что-то связанное с креном…
Во-вторых, у меня долго не получалось сделать звук объемным. То есть не просто рев моторов в фоне, а чтобы он исходил из корабля. В итоге скачал ассет Resonance Audio (инструкция по установке) – не работает. Долго не мог понять, что не так. В конце концов, дошло: нужно отключать Audio Listener на камере корабля, когда она неактивна. Вырубил, управление прописал в скрипт.
В-третьих, нужно было сделать зацикленный звук рева двигателей. К счастью, тут все оказалось так сложно. Первым делом надо скачать полностью бесплатную программку Audacity. Затем найти в интернете бесплатный файлик с ревом двигателей.
- Открываем файл с шумами в проге, обрезаем более-менее стабильно звучащий кусочек.
- Копируем его, копию ставим в начало файла.
- Оригинал разворачиваем задом наперед (Эффекты → Реверс).
- Присобачиваем к копии.
- Обязательно заходим в Эффекты → Обрезка тишины и, ничего не меняя, применяем на трек. Это удалить паузу (миллисекунды тишины) в начале трека.
- Готово. Экспортируем в OGG и закидываем в Unity.
В целом, я думаю, получилось, нормально. Иногда проскакивают косяки со звучанием вертикального взлета, но я это исправлю… Когда-то 😀.
Видео с моим кораблем
Наконец, готов поделиться результатом кусания локтей, вырывания волос, истерик, панических атак (и это только субботнее утро 😁) в течение 3-х дней.
По-моему, получилось вполне себе прикольно. И да, я удалил свой сомнительной фэнтезийности лес, заменив его большим террейном. Просто, чтобы полетать по кайфу.
Надеюсь, приведенный здесь код будет кому-то полезен. Увидимся в следующих постах 😉.
04:24
03:31
05:41
05:02
02:29
03:36
04:43
Подробный видео урок, как сделать ракету из змейки Рубика? Detailed video tutorial on how to make a rocket from a snake .
Пятьдесят второй урок - собираем ракету. Вступайте в группу ВКонтакте: rubikssnake Подписывайтесь на .
Сегодня я покажу вам как собирать вот такую вот ракету из змейки рубика собирается она достаточно просто сейчас я .
Подробный видеоурок, как сделать Космический корабль из Змейки Рубика? Detailed video tutorial, how to make a Space .
Подробный видео урок, как сделать ракету из головоломки Рубика? Detailed video tutorial how to make a star from the Rubik's .
Подробный видеоурок, как сделать Ракету из Змейки Рубика? A detailed video tutorial on how to make a Rocket from Rubik's .
Читайте также: