Как сделать из змейки космический корабль

Обновлено: 05.07.2024

Пятьдесят второй урок - собираем ракету. Вступайте в группу ВКонтакте: 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 единиц, чтобы персонаж при столкновении не мог сдвинуть его с места.

Добавление массы

Создание коллайдера

Ну и вот он, красавец, одиноко лежит на земле в моем лесу.

Корабль

Пришлось передвинуть его в другое место, потому что при первом запуске он жизнерадостно уехал по склону прямиком в мое болотное озерцо 😀.

Как сесть в корабль

Логику происходящего я понимаю лишь примерно.

  1. Персонаж подходит к кораблю и нажимает кнопку.
  2. После этого он должен исчезнуть, а камера переключается на камеру корабля. Корабль становится персонажем, и можно летать.
  3. При выходе из корабля нажатием кнопки основной игрок (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 ставьте большой.

Визуальные эффекты для корабля

По сути, корабль был уже готов. Можно было летать и выполнять фигуры высшего пилотажа. Но все это происходило в тишине и скукоте. Решил добавить визуальные эффекты.

(Эффекты частиц вам придется создать самим )

  1. Сделал одну систему частиц, имитирующую реактивную струю из двигателя. Даже добавил в нее источник света, чтобы был эффект освещенности. Сделал ее дочерним объектом корабля, назвал Engine1Fire.
  2. Скопировал ее для второго двигателя, назвал Engine2Fire.
  3. С помощью скрипта запрограммировал 4 фазы: двигатели выключены (игрок вне корабля), двигатели на минимум (режим бездействия), двигатели в полете (W), двигатели форсаж (W + Shift).
  4. Чтобы эффект различался по степени яркости, изначальные частицы сделал прозрачными, а выполнении условий фазы просто добавлял их количество.

Получился довольно прикольный эффект. Вначале струя тусклая, при полете ярче, а при ускорении – совсем яркая.

Код, опять же, причесал, как мог.

Звуковые эффекты для космического корабля

Еще одно место, где меня, зеленого неофита, ждали боль и страдания.

Скрипт звуковых эффектов для корабля

Во-первых, написать логику переключения звуков оказалось на порядок сложнее, чем кажется. Причем в приведенной в скрипте логике до сих пор есть баг со звуком взлета (на пробел), который я не могу поймать. Кажется, что-то связанное с креном…

Во-вторых, у меня долго не получалось сделать звук объемным. То есть не просто рев моторов в фоне, а чтобы он исходил из корабля. В итоге скачал ассет Resonance Audio (инструкция по установке) – не работает. Долго не мог понять, что не так. В конце концов, дошло: нужно отключать Audio Listener на камере корабля, когда она неактивна. Вырубил, управление прописал в скрипт.

В-третьих, нужно было сделать зацикленный звук рева двигателей. К счастью, тут все оказалось так сложно. Первым делом надо скачать полностью бесплатную программку Audacity. Затем найти в интернете бесплатный файлик с ревом двигателей.

  1. Открываем файл с шумами в проге, обрезаем более-менее стабильно звучащий кусочек.
  2. Копируем его, копию ставим в начало файла.
  3. Оригинал разворачиваем задом наперед (Эффекты → Реверс).
  4. Присобачиваем к копии.
  5. Обязательно заходим в Эффекты → Обрезка тишины и, ничего не меняя, применяем на трек. Это удалить паузу (миллисекунды тишины) в начале трека.
  6. Готово. Экспортируем в OGG и закидываем в Unity.

Создание зацикленного бесшовного звука двигателей

В целом, я думаю, получилось, нормально. Иногда проскакивают косяки со звучанием вертикального взлета, но я это исправлю… Когда-то 😀.

Видео с моим кораблем

Наконец, готов поделиться результатом кусания локтей, вырывания волос, истерик, панических атак (и это только субботнее утро 😁) в течение 3-х дней.

По-моему, получилось вполне себе прикольно. И да, я удалил свой сомнительной фэнтезийности лес, заменив его большим террейном. Просто, чтобы полетать по кайфу.

Надеюсь, приведенный здесь код будет кому-то полезен. Увидимся в следующих постах 😉.

Zivert - CRY | Премьера клипа

04:24

LOBODA - Americano (Премьера сингла, 2021)

03:31

Баста – Любовь и страх (feat. Дворецкая)

05:41

Ozoda - Esla Meni (Offıcıal Clıp 2021)

05:02

Султан Лагучев - Cкучает осень (премьера 2021)

02:29

Oliver Tree & Little Big - The Internet [Music Video]

03:36

Coldplay X BTS - My Universe (Official Video)

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 .

Читайте также: