Создание Текстур-паков в Geometry Dash V2

По вопросам можно (нужно) писать мне (@lord_nodus).

Полностью актуально до выхода 2.2, скорее всего и в 2.2, но тут Роб его знает

Данный способ будет работать и на телефонах.

Кроме текстур, я покажу, как менять разметку, музыку и анимации.

Начало

Для редактирования потребуются программы:

Игра Geometry Dash или папка с её ресурсами
Растровый фоторедактор с прозрачностью и желательно со слоями (Photoshop, Paint.net (это не сайт, а название программы) и тд)
Для более тонкой настройки текстур, редактор текста как Nodepad++, Sublime Text, Plist Editor, даже блокнот более новых версий или другой ± адекватный (Иметь это не обязательно, для создания простых текстур-паков)

1) Открываем папку с игрой. Если у вас пиратка, ищем куда установили. Для тех, у кого игра в Steam и папка для установи стандартная можно использовать путь «C:\Program Files (x86)\Steam\steamapps\common\Geometry Dash». Если папка другая можно сделать как на скринах →

Создание Текстур-паков в Geometry Dash V2, image #1
Создание Текстур-паков в Geometry Dash V2, image #2
Создание Текстур-паков в Geometry Dash V2, image #3
1 of 3

2) Делаем бекап, копируем папку «Resources» и сохраняем в другие место. Это на случай, если захотите вернуть стандартные текстуры, сохраните файл с фоном или ещё что-то.

3) Открываем папку «Resources» и… а тут уже потребуется немного знаний о том, что за хаос в ней содержится.

Создание Текстур-паков в Geometry Dash V2, image #4

На файл !test.py и .dat внимание не обращаем, это моё и его у вас не будет

В папке содержится: музыка, текстуры, файлы разметки и анимации.

Самое простое, это файлы музыки, их можно просто заменить на другой и в игре будет проигрываться другая музыка.

Дополнительно о музыке, в этой папке хранится только музыка из официальных уровней ГД, в том числе из уровней версий Meltdown, World и секретного уровня The Chellenge. Музыка из пользовательских уровней хранится по пути «C:\Users\{user}\AppData\Local\GeometryDash». Так же в этой папке хранятся файлы созданных уровней и аккаунта, так что удалять эту папку, чтобы освободить место, не лучшая идея.

Дальше разберём файлы текстур (.png) и разметки (.plist). Часто можно заметить, что файлы .png и .plist имеют одинаковые названия и 3 версии с приписками -hd, -uhd и без него.

Создание Текстур-паков в Geometry Dash V2, image #5

Тут всё просто и логично. Файл с определённой припиской используется при включении определённого уровня графики в игре:

Создание Текстур-паков в Geometry Dash V2, image #6

Без — Low (низкая графика)

Создание Текстур-паков в Geometry Dash V2, image #7

hd — Medium (средняя графика)

Создание Текстур-паков в Geometry Dash V2, image #8

uhd — High (Высокая графика)

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

В игре почти все текстуры собраны в большие файлы. Открываем на пример файл «CCControlColourPickerSpriteSheet-uhd.png»

Сейчас будет сложно, но если понять, дальше будет очень просто, особенно на этапе более тонкой настройки текстур иконок.

Создание Текстур-паков в Geometry Dash V2, image #9

Видим, что там лежат текстура палитры для редактора, но вот проблема, как игра понимает где в файле какая текстура? Для этого существует файл с форматом .plist

У вас иконка файла может быть другой
У вас иконка файла может быть другой

С помощью любого текстового редактора его можно открыть. Ищем файл с таким же названием (с учётом приписок -hd…) но с форматом .plist и открываем.

Если мы его откроем чаще всего увидим это →

Отображение в разных программах
Отображение в разных программах
Отображение в разных программах
1 of 3
Отображение в разных программах

Может быть такое, что будет отображаться куча перемешанных строк и табуляций, чаще всего случается, если открыть файл в старых версиях блокнота или других туповатых программах. Если вы редактируете чей-то текстур-пак и в разных программах так отображается, есть вероятность, что тот кто его делал — рукожоп.

В данном файле первые 5 строк нас вообще не интересуют, смотрим сразу на 7 строчку, там написано «<key>colourPicker.png</key>» это название текстуры, дальше идут её настройки, которые мы рассмотрим дальше, сейчас нам только может пригодится строки

<key>spriteSize</key>
<string>{52,52}</string>
<key>textureRect</key>
<string>{{1,1591},{52,52}}</string>

{1,1591} это координаты (x,y) текстуры в .png файле, считаются они от верхнего левого угла, указывая на левый верхний угол текстуры. {52,52} это размер текстуры; можно заметить, что эта запись повторяется 2 раза, в {{1,1591},{52,52}} и {52,52} отдельно после <key>spriteSize</key>. То что записано отдельно, есть настоящий размер текстуры, а то что записано в двух фигурных скобках бесполезное значение, которое можно менять, ничего не изменится, единственно, полностью удалять его нельзя.

Зная это открываем файл с текстурой и ищем точку в координатах 1, 1591 и размером 52 на 52, в редакторах обычно отображаются координаты мышки и размер выделения, так что ничего сложного нету.

Создание Текстур-паков в Geometry Dash V2, image #14

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

Создание Текстур-паков в Geometry Dash V2, image #15

Для примера, перерисую её в квадрат.

Сохраняем, запускаем игру

Создание Текстур-паков в Geometry Dash V2, image #16

Запускаем редактор и видим, что ничего не изменилось. Но тут всё просто. Мы редактировали файл с припиской -uhd, а сейчас игра запущена на средней графике.

Создание Текстур-паков в Geometry Dash V2, image #17

Для этого заходим в настройки, открываем вкладку «Graphics»

Создание Текстур-паков в Geometry Dash V2, image #18

Выбираем соответствующий пункт и нажимаем «Apply», игра сделает быстрый перезапуск и новые текстуры применятся.

Создание Текстур-паков в Geometry Dash V2, image #19

Заходим в редактор и всё работает.

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

4) Файлы иконок и другие часто используемые имеют названия:

«FireSheet_01.png» — анимированные блоки и часть блоков из 2.1
«game_bg_01_001», «game_bg_02_001» и тд — задний фон в уровнях
«groundSquare_01_001» и тд — земля
«GJ_GameSheet» — большая часть блоков игры
«GJ_GameSheet02» — все иконки игры, порталы, и триггеры. Так же имеет обводку (Glow эффект) для пауков и роботов.
«GJ_GameSheet03» — элементы интерфейса, кнопки, ключи, шарты и тд
«GJ_GameSheet04» — то что не поместилось в «GJ_GameSheet03» + эффекты порталов и орбов
«GJ_GameSheetGlow» — Свечение (Glow эффект) для иконок, кроме паука и робота, часть эффектов для орбов и текстуры для блоков меняющий прозрачность при приближении
«PlayerExplosion» — эффекты взрыва игрока
«gjFont…» — шрифты для надписей и количества попыток в уровне
«streak_01_001» и тд — след за игроком (о них расскажу потом)

Другие уже используются редко, чтобы их найти достаточно 2 минуты полистать папку с текстурами.

На всякий случай, если кто-то не знает, что такое Glow эффект

Создание Текстур-паков в Geometry Dash V2, image #20

Даёт блокам лёгкое свечение. (отображается только в игре, в редакторе подсветки нету)

Создание Текстур-паков в Geometry Dash V2, image #21

На скрине показано, как выключить эту настройку, по умолчанию она включена.

Создание Текстур-паков в Geometry Dash V2, image #22

У иконок игрока она тоже есть, активируется чекбоксом «Glow», сам чекбокс выдаётся за прохождение 15 меппаков и на зарегистрированных аккаунтах (вроде).

Создание Текстур-паков в Geometry Dash V2, image #23
Создание Текстур-паков в Geometry Dash V2, image #24

Так же этот эффект появляется при выборе чёрного цвета, как основного.

Редактируем иконки и блоки

Тут я расскажу только про иконки, так как блоки редактируются схоже и чуть проще, скажу только пару слов.

Буду показывать как поменять текстуру у иконки. С начало думаем, какую иконку хотим отредактировать, а если хотим сделать полностью свою, заменив другую, вспоминаем, нужен ли нам 3 слой на неё.

Если не понятно, что за слои, сейчас буду показывать.

Иконки имеют минимум 3 слоя, слой который красится в 1 цвет, слой красящийся во 2 цвет и Glow эффект (о нём написано чуть выше). Так же часть иконок имеют 4 слой, он не меняет цвет и используется чаще всего для высветления, пример →

Создание Текстур-паков в Geometry Dash V2, image #25

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

Но, 4 слой есть только у некоторых иконок и добавить его к той у который нету нельзя.

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

Я обычно использую рисовалку Paint.net, так как она страшно простая, и Notepad++ для редактирования .plist, так как в нём можно отдельные куски разметки сворачивать →

Создание Текстур-паков в Geometry Dash V2, image #26
Создание Текстур-паков в Geometry Dash V2, image #27
Создание Текстур-паков в Geometry Dash V2, image #28
1 of 3
Так же сворачивать умеет Plist Editor, но на момент написания у меня он залагал и не открывается D:
Использовать можно любые схожие программы, главное чтобы был нужный функционал.

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

Создание Текстур-паков в Geometry Dash V2, image #29

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

Список не полный
Список не полный

Тут тоже не сложно, открываем Geometry Dash и считаем номер иконки в списке

Создание Текстур-паков в Geometry Dash V2, image #31

В строке 12 иконок, наша находится в конце 2 строки, подключаем изи математику — 12 (строка) * 2-2(иконка с конца) = 22 это есть номер нашей иконки.

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

Дальше открываем .plist файл, нажимаем поиск (ctrl + f), и вбиваем «ship_22» и нас перекидывает на разметку нужной иконки. Как это работе?

Создание Текстур-паков в Geometry Dash V2, image #32
В файлах разметки, иконки имеют название
{название режима}_{номер}_{слой}_{не влияющие цифры}

Названия для режимов такие:

НЛО — bird
Куб — player
Шар — player_ball
Робот — robot
Кораблик — ship
Паук — spider
Волна — dart

Я записал название режима_номер и программа нашла нужное.

Если, на пример, захочу найти 41 волну, нужно будет искать «dart_41»

Дальше видим, что есть 2 текстуры: «ship_22_001.png» и «ship_22_2_001.png», теперь вопросы: Что это? Где 3, если кораблик это 2 цветных и Glow? Можно ли добавить ещё слой «ship_22_3_001.png»?

1) «ship_22_001.png» в игре эта текстурка окрашивается в первый цвет, «ship_22_2_001.png» окрашивается во 2 цвет.

2) Так как это кораблик, Glow слой лежит файле «GJ_GameSheetGlow».

3) Если добавить новый слой игра не запустится.

Если бы был ещё 1 слой, но бы назывался «ship_22 _extra_001.png», но эта иконка имеет 2 слоя и Glow.

Теперь смотрим на то, что написано после название текстуры

Создание Текстур-паков в Geometry Dash V2, image #33

Нечётные строки имеют название свойства текстуры, чётные значение свойства.

<key>aliases</key>
<key>spriteOffset</key>
<key>spriteSize</key>
<key>spriteSourceSize</key>
<key>textureRect</key>
<key>textureRotated</key>

aliases — Не заметил чтобы на что-то влияло, имеет всегда значение <array/>, если удалить ничего не изменится.

spriteOffset — Смещение текстуры в пикселях по x,y, если удалить смещение будет 0, 0

Создание Текстур-паков в Geometry Dash V2, image #34

У левой текстуры смещение 0, 7 у правой 20, 7

spriteSize - Размер иконки при вырезании. Выше я показывал, как по разметке происходит вытаскивание текстуры из общего файла, это отвечает за размер. При изменении размера, меняется положение точки смещения.

Создание Текстур-паков в Geometry Dash V2, image #35

Размер с 176, 94 увеличен до 200, 110

Создание Текстур-паков в Geometry Dash V2, image #36

Если удалить, текстурка будет прозрачной.

spriteSourceSize — не понять, что это делает, иногда из-за него может попадать текстура. Можно удалить, будет значение 0,0 (при нём текстура не пропадает)

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

Создание Текстур-паков в Geometry Dash V2, image #37

Значение 1, 335 изменено на 1, 300

textureRotated — имеет значения <true/> или <false/>, если удалить, значение будет <false/>. Игра при считывании текстуры, меняет значение spriteSize местами, а в игре поворачивает текстуру на 90 градусов против часовой стрелки.

Создание Текстур-паков в Geometry Dash V2, image #38

Значение <false/> изменили на <true/>

Создание Текстур-паков в Geometry Dash V2, image #39

Нужно для более компактного умещения текстур в файле

Зная разметку, можно начать редактировать текстуры на максималках

Для начала открывает рисовалку, создаём 2 слой и заливаем его тёмно-синем или тёмно-зелёным цветом, чёрным или серым не желательно, так как фон будет сливаться с некоторыми текстурами.

Создание Текстур-паков в Geometry Dash V2, image #40

Дальше ищем нужную нам иконку, выделяем и редактируем. Для удобства можно собрать все слои и поместить в новый файл послойно.

После редактирования или создания новой, разделяем её на слои, которые будут окрашиваться и заменяем их на новые.

Может произойти, так что новая иконка будет больше старой, вот пример

Хоту сделать иконку, как на моей старой аватарке →

Создание Текстур-паков в Geometry Dash V2, image #41

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

Создание Текстур-паков в Geometry Dash V2, image #42

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

Создание Текстур-паков в Geometry Dash V2, image #43

Прикидываем примерный размер и заносим координаты с размером в разметку (размер можно не экономить, у нас его куча).

Создание Текстур-паков в Geometry Dash V2, image #44

Для удобства, поставил размер, как у первого слоя иконки.

Дальше сохраняем, передвигаем остатки старой текстурки или рисуем новую на новом месте.

Создание Текстур-паков в Geometry Dash V2, image #45

Я перенёс модельку и в нужных местах нарисовал 2 слой.

Создание Текстур-паков в Geometry Dash V2, image #46

И так норм, излишки 2 слоя не будут видны.

Так как я не менял основную форум корабля, Glow и смещение первого слоя можно не менять, но 2 придётся настроить.

Сохраняю всё и запускаю игру.

Сделал прозрачным 1 слой для удобства
Сделал прозрачным 1 слой для удобства

Нужно пододвинуть 2 слой вверх, с начало устанавливаю значение 5 и смотрю.

Создание Текстур-паков в Geometry Dash V2, image #48

Сохраняю и запускаю игру.

Создание Текстур-паков в Geometry Dash V2, image #49

Почти идеально, можно передвинуть на 1 и всё. Кстати, в spriteOffset можно указать дробное значение. Я поставлю {0,6.5}

Создание Текстур-паков в Geometry Dash V2, image #50

Отлично, меняю прозрачность обратно и тестирую в игре.

Создание Текстур-паков в Geometry Dash V2, image #51
Создание Текстур-паков в Geometry Dash V2, image #52

Вот и всё, можно чуть подравнять глаз и сделать тоньше чёрные линии но для понимания как это делать я думаю достаточно.

С обычными иконками мы завершили.

Дополнение к текстурам

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

Создание Текстур-паков в Geometry Dash V2, image #53

У иконок с 4 слоями, дополнительный слой называется extra, а не 03, как было бы логично.

Блоки имеют наикривейшие кастомные названия, разные слои блока не всегда будут иметь приписку 01, 02, 02 и сами блоки не упорядочены как в редакторе.

Эффекты смерти и трейлы

Тут всё просто, есть файл с кадрами эффекта смерти, а в .plist написаны настройки кадров.

Создание Текстур-паков в Geometry Dash V2, image #54

Всё более чем знакомо.

Трейлы хранятся в нерастянутом виде.

Создание Текстур-паков в Geometry Dash V2, image #55

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

Так же, почти все эффекты: частицы в уровнях, в конце уровня, при ускорении и тд, почти все анимации и даже ачивки редактируются.

Анимации бега роботов и пауков

Самое весёлок как по мне, для тех кто прочитал до конца.

Роб недавно показал, что в 2.2 робот и паук будет менять анимацию с ускорением. Весь прикол в том, что такое можно частично воссоздать сейчас…

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

Нужный мне файл анимаций называется Spider_AnimDesc.plist он общий для всех уровней графики. Есть ещё Spider_AnimDesc2.plist, но я не знаю, что он делает.

С роботом всё проще в разы, так как анимаций меньше.

Создание Текстур-паков в Geometry Dash V2, image #56

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

Первый кадр idle — то как выглядит паук в меню, в статистике аккаунта и тд

fall — падение и полёт

Создание Текстур-паков в Geometry Dash V2, image #57

Полёт на этих штуках тоже fall

jump — прыжок (а сферах тоже)

run и walk — анимация движения, если скорость -1 или 1 используется walk, если выше используется run

Вот список всех деталей паука, каждая деталь в файле анимации обозначена тегом

Тег 0 — задняя правая нога (если на него смотреть)
Тег 1 — передняя правая нога
Тег 2 — дополнительная деталь задней левой ноги (есть не у всех пауков)
Тег 3 — тело
Тег 4— задняя левая нога
Тег 5 — передняя левая нога
Создание Текстур-паков в Geometry Dash V2, image #58

Кадры выглядят так →

Создание Текстур-паков в Geometry Dash V2, image #59
Это стандартные значение, их можно поменять, меняя номер тега или название текстуры. Кстати, менял названия текстур на те, что используются в кубе, игра не запускается, для создание моделек, можно использовать только текстуры паука

Каждый кадр имеет положение каждой детали, её позиция, размер, поворот, отражение и слой.

Я сделаю не сильно сложную анимацию.

С начала быстро сделаю текстуры, показывать как не буду, всё так же как на кубе, но деталей больше.

Создание Текстур-паков в Geometry Dash V2, image #60

Так как не хотелось морочится со слоями, можно в разметке изменить название с «spriteSize» на «spriteSize1» у кого-то слоя, и его не будет отображаться и его не нужно будет редактировать.

На скрине полностью прозрачная моделька, сделал её, чтобы некоторые детали не мешались, так как моя моделька будет из 3 деталей.

Дальше настраиваем анимацию.

Тут всё индивидуально, делал так:

Меняю текстуры (учитываем что текстура у 3 ног будет одинаковая, если вы в верхней части файла анимации не измените текстуры конечностей). Если текстура будет вращаться, то смешение лучше делать 0, так как точка вращения будет 0,0. Передвинуть её можно будет через позицию в анимации.

В начале можно было заметить, что у меня в папке есть файл !test.py, это программа на питоне, зачем страдать, пытаясь поменять позицию у каждого спрайта в анимации, если можно просто сделать программу. Убеждаюсь, что свойство position есть только у текстур, чтобы не поменять ничего лишнего, и пишу программу.

Создание Текстур-паков в Geometry Dash V2, image #61

Все анимации полностью сброшены.

Это же программой, меняя некоторые значения поменял анимации и другие.

Создание Текстур-паков в Geometry Dash V2, image #62

Теперь паук превратился в машинку, но колёса не крутятся, и огонь сзади не мигает, сейчас буду делать.

Спустя 2 часа я всё настроил, делать огонь уже лень.

Создание Текстур-паков в Geometry Dash V2, image #63

Теперь это машинка, у которой крутятся колёса. Два колеса и дополнительная деталь ноги сделал невидимыми, чтобы не мешали, так что машину можно ещё сильнее заанимировать, на пример, наклон человека в кабине, огонь из трубы и ещё что-то. Так же она окрашивается при изменении цвета →

Создание Текстур-паков в Geometry Dash V2, image #64

Не хватает только переделать Glow, но мне уже лень

Создание Текстур-паков в Geometry Dash V2, image #65

На этом всё.

Результат можно скачать тут → https://yadi.sk/d/MKVMw7ZCdpyI5g

Работает только на высокой графике, анимации паука меняются для всех. Перед установкой, сделайте бекап!

Кол-во правок — 1

5025 views·12 shares