Войти на сайт

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

ТЕМА: Multi Layer [ACE]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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