Multi Layer [ACE]

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
12 года 2 мес. назад - 10 года 10 мес. назад #68051 от caveman
caveman создал тему: Multi Layer [ACE]
Как говорят, лень - двигатель прогресса. И именно лень товарища Kian Ni (и моя тоже) привела меня в составлению этой статьи.

Как известно, VXACE всем хорош по сравнению с XP, но одна деталь таки подкачала - маппинг.
Ограниченность количества слоев и размера графики для тайлсетов в асе становится ощутимой, если хочется сделать более-менее приличную карту.

Конечно, люди выкручиваются, собирая карты в фотошопе и применяя технику параллакс-маппинга, но... лень и неудобно, и долго, и вообще!
До недавнего времени я выкручивался при помощи event-маппинга (см. соответствующую статью), но это тоже долгая, нудная и, к тому же, ограниченная техника.

Но - теперь наступило счастье! Киан нашел годный скрипт от товарища LittleDrago (снимаю и грызу шляпу перед этим неизвестным кодером - у него в блоге столько скриптовых вкусностей), который называется Drago - Multi Layer и делает то, что и обозначено в названии: позволяет создавать множество слоев для одной карты клац .

Сейчас я на картинках объясню, как им пользоваться.

0) Добавляем скрипты от драго в проект.

Кроме самого Multi Layer и тех скриптов, что описаны на странице в его блоге (XP Map Loader v1.10 or later; Drago - Core Engine v1.42), нам пригодится его скрипт скриншота .

Ставим первым ядро, потом XP Map Loader, далее Multi Layer и скриншотоделалку.


1) Создаем базовую карту и её слои.

Это простой шаг - тут мы добавляем карту, которая будет основной, и, как её подкарты - дочерние слои. Есть определенное правило именования дочерних слоев - в названии его должна быть подстрока "[join]".
Смотрите скриншот:


Дочерних слоев может быть столько, сколько потянет player, штуки 3-4 - легко.

2) Маппим карты.

Теперь можно маппить карту послойно. Отмечу, что слой А маппится только на основной карте, а остальные - где угодно. Порядок наложения слоев определяется порядком расположения дочерних "карт" в мейкере.
То есть, на скрине, сначала отрисуется Map001, потом Map002, и, наконец, поверх - Map003.

Чтобы маппить было удобно - Киан предложил и доработал для удобства скрипт скриншота (в аттач проекте его версия).
Маппим послойно, и каждый раз после формирования слоя, запускаем карту, скриним (F7), скрин попадает в папку Parallaxes, и его прицепляем как картинку параллакса (не забыть "показать в редакторе") для дочерних карт - и нам будет видна сборка из предыдущих слоев. Более-менее удобно.

Вот так оно проставляется


А тут показаны две дочерние карты без включенной подложки



Тут уже с подложкой


3) Тестируем, подправляем, играем

Один очень важный момент. Как бы я ни расхваливал Драго, скрипт его не так крут, как я описываю, так как он не умеет работать с разными тайлсетами (вернее, не умеет вычислять проходимости и звезды).
По идее Kian Ni, я его подпилил и устранил этот недостаток; теперь все карты (и родительская, и дочерние) могут иметь разные тайлсеты. Картинки и проходимости при этом корректно обрабатываются.

Вот так выглядит конечная версия (мапа не претендует на конкурсы, просто за 5 минут набросал из найденных тайлсетов три слоя.


Измененный скрипт multilayer
ВНИМАНИЕ: Спойлер!


И, наконец, демка, где собраны все скрипты и есть пример карты.
тут


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

Спасибо LittleDrago и Kian Ni за помощь в создании этого способа и статьи.
Последнее редактирование: 10 года 10 мес. назад пользователем DeadElf79.
Спасибо сказали: AnnTenna, JackCL, Cerberus, DeadElf79, sando, Dprizrak1, Демий, Lipton, poca, Jas6666 и ещё 7 человек сказали спасибо.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
12 года 2 мес. назад #68052 от JackCL
JackCL ответил в теме Multi Layer [ACE]
Мне понравился современный домик.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 2 мес. назад #68054 от Kian Ni
Kian Ni ответил в теме Multi Layer [ACE]
Вот скрипт на спрайты: yadi.sk/d/iiSMIzmtK3FvH

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Коммерсант Проект месяца 1 место Проект месяца 2 место 3 место в Кодировке Ветеран Учитель Организатор конкурсов Даритель Стимкея Проект месяца 3 место 2 место Готв Победитель Сбитой кодировки 2 место Победитель конкурса 3 место
Больше
12 года 2 мес. назад #68056 от AnnTenna
AnnTenna ответил в теме Multi Layer [ACE]
Круто, мультислойный скрипт рулезный, правда не уверена, что ему место на факультете маппинга. Может, лучше на факультет скриптов его перекинуть?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
12 года 2 мес. назад #68057 от caveman
caveman ответил в теме Multi Layer [ACE]
Тут больше описания, как маппить с его помощью, чем самого скрипта, потому сюда и кинул :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад #69480 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
Возник такой вопрос:

caveman пишет: Отмечу, что слой А маппится только на основной карте, а остальные - где угодно.

Чем чревато невыполнение этого правила? Краткая проверка на демке никаких проблем не показала.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69481 от caveman
caveman ответил в теме Multi Layer [ACE]
Ммм, что-то такое было, не припомню, честно. Наверное, перекрытие вторым "А" слоем земли деревьев с первого слоя не очень смотрится :)

PS: Я таки закончил маппить проект мультислойный и добираюсь до фикса звездочки для высоких событий, как только выйдет что-нибудь путное - выложу в эту тему.
Спасибо сказали: Cerberus, DeadElf79

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69488 от caveman
caveman ответил в теме Multi Layer [ACE]
О, Киан задавал автору этот вопрос
Ответ:
1. Yes, tile A passability on child maps are disabled (because of glitch)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад #69496 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
А, то есть проблема только с проходимостью и наложением, получается?

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69498 от caveman
caveman ответил в теме Multi Layer [ACE]
Полагаю, да. Ну, мне хватает за глаза одной А страницы, я даже не пробовал ставить несколько (тем более тайлсеты собранные спер у Киана).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад #69600 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
Обнаружил довольно странный баг: тайл, на который падает тень (от тайла A4 или вручную - неважно) считается непроходимым. Причина - именно MultiLayer (проверил, закомментировав его целиком), но что именно - сообразить не получается.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69601 от caveman
caveman ответил в теме Multi Layer [ACE]
Ах вот оно что!
Я думал, что за фигня с тенью - но так как я её убирал везде, то и пофигу. Посмотрю.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69646 от caveman
caveman ответил в теме Multi Layer [ACE]
С тенью пока не глянул, но зато нашел свой старый вариант переделки фиксозвездочки для multilayer. С ним тоже работать нужно хитро - в тайлсетах выставив terrain tag = 7 для тех тайлов, для которых нежелательно проваливание головы высокого героя или события.

ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад #69650 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
Повозился с Multi Layer. Похоже, там тени вписались куда-то в таблицу Game_Map.data параллельно с началом блока B, соответственно, их проходимость оказывается завязанной на проходимость тайлов из этого самого начала. Ну то бишь, например, тайл, где левая половина затенена, имеет id равный 5, и тот же самый id имеет шестой тайл в блоке B. Как это лечить, пока непонятно, но диагностику провёл :)

Жуть болотная, на лапках, в тапках и с пулемётом...
Спасибо сказали: caveman

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
11 года 11 мес. назад #69651 от Kian Ni
Kian Ni ответил в теме Multi Layer [ACE]
А Кьян просто использует скрипт, который выпиливает все тени.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад - 11 года 11 мес. назад #69653 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
Киан, конечно, крут, но всё же хотелось бы разобраться, почему оно пашет не так, как написано :)

upd: Предварительно скрипт исправлен. В строке 289 должно быть не s > 3, а s >= 3: третий слой - это как раз и есть тени, их "проходимость" нам учитывать не надо. Пишу "предварительно", поскольку так и не понял, почему это не было учтено изначально (при том, что шестой слой в явном виде был выкинут из рассмотрения, т.е. про это авторы знали) и допускаю, что сам что-то упустил.

Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 11 года 11 мес. назад пользователем Cerberus.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69655 от caveman
caveman ответил в теме Multi Layer [ACE]
Ничего не понял из твоего рассуждения про третьи, шестые слои.
s > 3, а s >= 3 это вроде моя доработка, насколько помню, подобранная опытным путем на основе скрипта автора (хотя могу врать)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад #69656 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
Я понял так. Тайлы располагаются слоями. Первый - тайлы А, второй - от В до Е, третий - тени. В той строке это как раз и выражается через s. На n-ой подчинённой карте, соответственно, 3n+1 - тайлы А, 3n+2 - от В до Е, 3n+3 - тени. И если 3n+3 вы из рассмотрения исключали (несколькими строками ниже), то 3 почему-то нет, и это как раз вызывало баг.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Разработчик Проект месяца 3 место Проект месяца 2 место Проект года 1 место Проект года 3 место Учитель Оратор Паладин Проект месяца 1 место 2 место Готв 3 место Организатор конкурсов Ветеран
Больше
11 года 11 мес. назад #69657 от caveman
caveman ответил в теме Multi Layer [ACE]
Усе понятно, 3 было у автора исключено (в его core скрипте в похожем методе), закопировал видимо, а у себя уже добивал, чтобы не прерывалось без задней мысли про тени. Думаю, что фикс будет работать толково.

Можно меня и "на" ты назвать, а неизвестного (лично) мне автора скрипта - "он".

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
11 года 11 мес. назад #69658 от Cerberus
Cerberus ответил в теме Multi Layer [ACE]
Я тогда исправлю прямо в первом сообщении :) За тобой демка.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.146 секунд
Работает на Kunena форум