Как я сделал уровень в 29 объектов. Ролик был переведён с канала Спутникс. Ссылки на оригинал и его автора будут в описании
Скачать 21.05 Kb.
|
Ролик был переведён с канала Спутникс. Ссылки на оригинал и его автора будут в описании. Я создал полноценный оценённый уровень Geometry Dash, всего за 29 объектов. Да, весь геймплей, эти бэкграунды и все триггеры, управляющие ими составляют 29 объектов. Для этого мне пришлось провернуть парочку безумных и довольно проклятых махинаций. Первым делом препятствия. Для полноценного уровня нужно как минимум 60 секунд геймплея, но это около сотни объектов, что в обыденности очень мало, однако помните, что мы здесь ради 29 объектов. Поэтому, вместо создания минуты геймплея, я применил маленькую хитрость. Видите ли, единственными препятствиями, которые я добавлю в уровень, будут эти 4 блока. План состоит в том, чтобы позволить игроку пролететь через них, и как только блоки окажутся за пределами экрана, мы переместим их обратно к игроку, чтобы использовать их повторно. Однако это быстро надоедает, поэтому, кроме того, каждый раз, когда они двигаются, мы немного "перемешаем" их с помощью двух rotate-триггеров. Центр, вокруг которого вращаются препятствия, является большим объектом из глоу, который также выполняет роль искусного декора. Неплохо! Но чтобы это продолжалось долго, нам придется повторять эти rotate и move-триггеры снова и снова. Важно помнить, что триггеры тоже являются объектами, и для уровня в 1 минуту нужно 120 триггеров, что слишком много. К счастью, и для этого есть хитрое решение: Это spawn-триггер, который, по сути, активирует другой триггер после некоторой задержки. Однако, мы можем его просто заставить себя активировать так, чтобы он вновь себя активировал, создавая, по сути, цикл. Теперь все, что нам нужно сделать, это заставить его также активировать эти триггеры, а также добавить еще один spawn-триггер, чтобы начать цикл. И вот мы получили БЕСКОНЕЧНЫЙ ГЕЙМПЛЕЙ всего в 10 объектов. А чтобы завершить геймплей, мы должны поменять режим игры с помощью порталов несколько раз, чтобы сделать его более разнообразным. Да, можно пропустить эти порталы, но это не имеет значения, так как геймплей здесь один и тот же. Для того, чтобы эти парты отличались друг от друга, нам нужно разнообразие и в декорациях, посему мы будем использовать некоторые очень хитрые приемы. На декор у нас осталось 17 объектов, и нам нужно их израсходовать так аккуратно, чтобы мы смогли получить от них максимальное разнообразие и эстетику. Начнём с цветов. Мы можем воспользоваться функцией “copy color”, чтобы все цвета были взяты с одного цветового канала, поэтому нам понадобится лишь один триггер для изменения всей палитры. Мы будем менять цвет один раз для каждого парта, включая первый, где мы затухаем в темноту. Музыка также ведёт к созданию некоторых драматических пульсов, и мы можем это использовать с помощью подключения pulse-триггер к созданному нами циклу, поскольку цикл уже синхронизирован с треком. Однако, это становится немного сложнее, чем можно подумать. Вместо того чтобы заставить pulse-триггер выбирать цвет пульса, что означало бы, что мы не сможем менять палитру на протяжении всего уровня, триггер фактически подает черный импульс, но в обратном порядке, поэтому воспринимаемый импульс происходит в промежутке между реальными импульсами. Мы также добавили еще один spawn-триггер, чтобы сместить pulse-триггер от остальной части цикла, чтобы получаемые импульсы синхронизировались с игровым процессом. Оказалось, что это очень подходит к треку, особенно с другими декорациями, которые будут сочетаться с ним и которые вы увидите в полном прохождении уровня в конце этого видео. Так или иначе, теперь у нас возникла проблема, ведь переход между первыми двумя частями песни приводит к рассинхрону цикла. Поэтому нам нужно на время приостановить цикл. Для этого нам нужно остановить цикл с помощью toggle-триггера, передвинуть геймплей, чтобы учесть движение игрока во время паузы, снова переключить цикл, а затем снова его запустить. И всё же мы можем использовать на один объект меньше, используя instant count триггер, который в режиме активации группы по какой-то причине одновременно переключает и порождает группу. Теперь у нас осталось всего 9 объектов, и дальше трюки становятся довольно дикими, так что пристегнитесь. Бэкграунды. Вот фоны, которые находятся в готовом уровне. Обычно в Geometry Dash на них уходят тысячи объектов, но вот на эти ушло ни 100, ни 10, а 3. Всего три объекта на 2 фона. Как? Это текстовый объект. По умолчанию, все, что вы можете написать в них - это 20 символов в одной строке. Обойти ограничение на количество символов не составит труда с помощью хака, однако вы все равно не сможете сделать несколько строк текста, но вот если вы перейдете к этому файлу сохранения, xor decrypt (?) его с ключом 11, отдекодируете его по base64, заархивируете его, перейдёте в ваш рабочий уровень, найдете зашифрованную строку уровня, отдекодируете ее по base 64, заархивируете ее, а затем найдете текстовый объект, отыщите свойство 31, а затем отдекодируйте его по base64, то мы увидим, что это текст, который мы только что ввели, и, как оказалось, если вы просто замените этот текст на нечто с несколькими строками, закодируете его и поместите обратно, а затем проделаете все эти шаги в обратном порядке, игра просто примет это и отобразит его с несколькими строками. Теперь, когда мы можем сделать несколько строк текста в одном объекте, мы можем нарисовать изображение с этим текстом. Однако вы не захотите делать это вручную, поскольку вы не можете видеть текст во время редактирования. Поэтому вместо этого я написал скрипт, который преобразует любое изображение в текстовый объект и вставляет его в уровень за меня. Я расположил некоторые символы шрифта от наиболее яркого к наименее яркому, а ширину каждого символа взял из файла шрифта. (Затем программа просматривает область изображения, выбирает подходящий символ на основе яркости области, записывает символ в текстовый объект и перемещается по ширине этого символа к следующей области, чтобы выбрать следующий символ). Чтобы сделать исходные изображения для фонов в уровне, я нарисовал первый фон вручную, а второй сделал в Блендере. Для этого я отрендерил сцену в Блендере с двумя разными настройками освещения, конвертировал оба в текстовые объекты и придал им два разных цвета, чтобы придать готовому продукту довольно приятную эстетику. Чтобы использовать их в качестве фона в уровне, нам нужен триггер перемещения, который заставит их оставаться на экране. Мы будем использовать вихревой фон в средней части, а фон аля vaporwave - в последней, оставив первую часть пока пустой. Для этого мы выстроим фоны вот так, и будем перемещать их оба при каждом изменении части. Однако вместо того, чтобы перемещать их дважды, мы можем использовать довольно известный трюк, чтобы сделать это с помощью одного объекта. Если установить ослабление триггера перемещения в режим "ease-in-out", а затем установить скорость ослабления на очень низкое число, это заставит объекты двигаться очень быстро, затем замедляться на долгое время, а затем снова ускоряться. В этом случае фон будет быстро перемещаться, скрытый черным импульсом, оставаться на экране в течение всей части с приятным медленным параллаксным движением, а затем быстро сменится вторым фоном в конце, и все это с помощью одного move-триггера. Мы приближаемся к концу, но фон все еще довольно пустой, особенно в первой части, поэтому давайте добавим еще одну деталь. Это объект с классной анимацией масштабирования, который мы можем раздуть с помощью хака масштабирования и использовать в качестве фона для уровня. Мы также можем установить скорость объекта в соответствии со скоростью музыки, и в целом получается довольно приятная анимация. Я добавлю еще вот эту анимацию, которая имеет такой же вид, но я дам ей контрастный цвет и более медленную скорость анимации, чтобы сделать ее интересной. Для этой части я сдвину эти два вверх, чтобы они соответствовали положению солнца, просто потому что, я имею в виду, ну нельзя же оставить все в таком виде. Осталось решить последнюю проблему, и последний объект для ее решения. Сейчас уровень фактически заканчивается на последнем портале, потому что это самый дальний справа объект на уровне. Поэтому последний объект, который мы добавим, также должен будет обозначить конец уровня. Поэтому я использовал генератор изображений, который я сделал для фонов, чтобы сделать свой логотип, и добавил его в нужный конец уровня, чтобы уровень был расширен и включал последнюю часть. Вот и все! Это все объекты итогового уровня, который я сейчас покажу. Перевёл Гото, редактировал Видон, озвучил Гото. Подписывайтесь на мой канал, ставьте лайки с колокольчиком. Не забывайте про мой канал Бусти, где вы можете поддержать выход роликов! Пишите в комментариях названия тех роликов, которые вы хотите увидеть переведёнными. Ссылки на оригинал и его автора в описании. До скорого! |