Войти на сайт

Авторизация, ждите ...
×
  • Страница:
  • 1
  • 2

ТЕМА: Multi Layer [ACE]

Multi Layer [ACE] 10 года 1 мес. назад #68051

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Как говорят, лень - двигатель прогресса. И именно лень товарища 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 за помощь в создании этого способа и статьи.
Последнее редактирование: 8 года 10 мес. назад от DeadElf79.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: AnnTenna, JackCL, Cerberus, DeadElf79, sando, Dprizrak1, Демий, Lipton, poca, Jas6666 и еще 7 пользователей

Multi Layer [ACE] 10 года 1 мес. назад #68052

  • JackCL
  • JackCL аватар
  • Вне сайта
  • Светлый дракон
  • Кролик вашей мечты
  • Сообщений: 711
  • Спасибо получено: 1004
  • РазработчикПроект года 3 местоПроект года 2 местоПроект месяца 1 место
Мне понравился современный домик.

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

Multi Layer [ACE] 10 года 1 мес. назад #68054

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
Вот скрипт на спрайты: yadi.sk/d/iiSMIzmtK3FvH
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 10 года 1 мес. назад #68056

  • AnnTenna
  • AnnTenna аватар
  • Вне сайта
  • Администратор
  • ловлю волны настроения
  • Сообщений: 4542
  • Спасибо получено: 4690
  • Победитель Сбитой кодировкиПроект месяца 1 местоПроект года 2 местоВетеранУчительПроект месяца 3 местоРазработчикОрганизатор конкурсов3 место2 место
Круто, мультислойный скрипт рулезный, правда не уверена, что ему место на факультете маппинга. Может, лучше на факультет скриптов его перекинуть?

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

Multi Layer [ACE] 10 года 1 мес. назад #68057

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Тут больше описания, как маппить с его помощью, чем самого скрипта, потому сюда и кинул :)
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69480

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
Возник такой вопрос:
caveman пишет:
Отмечу, что слой А маппится только на основной карте, а остальные - где угодно.
Чем чревато невыполнение этого правила? Краткая проверка на демке никаких проблем не показала.
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69481

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Ммм, что-то такое было, не припомню, честно. Наверное, перекрытие вторым "А" слоем земли деревьев с первого слоя не очень смотрится :)

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

Multi Layer [ACE] 9 года 10 мес. назад #69488

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
О, Киан задавал автору этот вопрос
Ответ:
1. Yes, tile A passability on child maps are disabled (because of glitch)
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69496

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
А, то есть проблема только с проходимостью и наложением, получается?
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69498

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Полагаю, да. Ну, мне хватает за глаза одной А страницы, я даже не пробовал ставить несколько (тем более тайлсеты собранные спер у Киана).
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69600

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
Обнаружил довольно странный баг: тайл, на который падает тень (от тайла A4 или вручную - неважно) считается непроходимым. Причина - именно MultiLayer (проверил, закомментировав его целиком), но что именно - сообразить не получается.
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69601

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Ах вот оно что!
Я думал, что за фигня с тенью - но так как я её убирал везде, то и пофигу. Посмотрю.
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69646

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
С тенью пока не глянул, но зато нашел свой старый вариант переделки фиксозвездочки для multilayer. С ним тоже работать нужно хитро - в тайлсетах выставив terrain tag = 7 для тех тайлов, для которых нежелательно проваливание головы высокого героя или события.

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69650

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
Повозился с Multi Layer. Похоже, там тени вписались куда-то в таблицу Game_Map.data параллельно с началом блока B, соответственно, их проходимость оказывается завязанной на проходимость тайлов из этого самого начала. Ну то бишь, например, тайл, где левая половина затенена, имеет id равный 5, и тот же самый id имеет шестой тайл в блоке B. Как это лечить, пока непонятно, но диагностику провёл :)
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: caveman

Multi Layer [ACE] 9 года 10 мес. назад #69651

  • Kian Ni
  • Kian Ni аватар
  • Вне сайта
  • Заблокирован
  • Я души кушаю людей.
  • Сообщений: 1247
  • Спасибо получено: 412
А Кьян просто использует скрипт, который выпиливает все тени.
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69653

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
Киан, конечно, крут, но всё же хотелось бы разобраться, почему оно пашет не так, как написано :)

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

Multi Layer [ACE] 9 года 10 мес. назад #69655

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Ничего не понял из твоего рассуждения про третьи, шестые слои.
s > 3, а s >= 3 это вроде моя доработка, насколько помню, подобранная опытным путем на основе скрипта автора (хотя могу врать)
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69656

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
Я понял так. Тайлы располагаются слоями. Первый - тайлы А, второй - от В до Е, третий - тени. В той строке это как раз и выражается через s. На n-ой подчинённой карте, соответственно, 3n+1 - тайлы А, 3n+2 - от В до Е, 3n+3 - тени. И если 3n+3 вы из рассмотрения исключали (несколькими строками ниже), то 3 почему-то нет, и это как раз вызывало баг.
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.

Multi Layer [ACE] 9 года 10 мес. назад #69657

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Проект месяца 2 местоВетеран3 местоПроект года 3 местоОраторПрограммист RubyРазработчикПроект месяца 1 местоПроект года 1 место2 место Готв
Усе понятно, 3 было у автора исключено (в его core скрипте в похожем методе), закопировал видимо, а у себя уже добивал, чтобы не прерывалось без задней мысли про тени. Думаю, что фикс будет работать толково.

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

Multi Layer [ACE] 9 года 10 мес. назад #69658

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • 2 место Проект месяца 2 местоПроект месяца 1 местоПроект месяца 3 местоПрограммист JavaScript Писатель 3 место2 место Сбитая кодировка3 местоОрганизатор конкурсовПобедитель Сбитой кодировки
Я тогда исправлю прямо в первом сообщении :) За тобой демка.
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Время создания страницы: 0.273 секунд