Как добавить новую локацию и двери (Инструкция)

Вы просматриваете публикацию, размещенную в разделе "Библиотека" → "Моддинг".

  • Дата размещения:
  • Дата предыдущего просмотра: 29 ноября 2020 г., 2:38
  • Количество просмотров: 38
  • Дата последнего редактирования: 22 ноября 2020 г., 21:46
  • Количество правок: 8
  • Опубликовал: Austin
Итак, допустим, вы нарисовали или где-то нашли подходящую карту новой локации в формате bmp-изображения. Как перенести ее в игру и заставить работать? Далее пошаговая инструкция, частично основанная на учебнике Cuv's Area Making Class Tutorial (он на английском языке доступен тут: http://www.shsforums.net/topic/28080-cuvs-area-making-class-tutorial/ )

РАЗДЕЛ I. Сама карта локации

1. Скачиваем программу IETME (IE Tileset Map Editor) ( http://www.baldursgatemods.com/forums/index.php?action=downloads;sa=view;down=67 ) и задаем в ней путь к игре и настройки.

2. Далее берем вашу картинку с картой новой локации и смотрим ее размер. Допустим, размер изображения составляет 1216 X 896. Вы берете эти числа и делите их на 64, чтобы получить высоту и ширину локации. Записываем их куда-нибудь.

3. Переходите в IETME на вкладку File -> New --->, здесь вам будет предложено ввести информацию H и W, которая составляет 19 X 14 – эти цифры мы получили в предыдущем шаге (1216/64 и 896/64). Нажмите OK.

4. Далее идем на вкладку File --> Open--> и открываем вашу bmp-картинку с картой. Если у вас две картинки (с открытыми дверьми и с закрытыми), то начните с локации с открытыми дверями

5. Переходим на вкладку File --> Switch to Area Editing. Тут все необходимые настройки для создания локации. Жмем сначала кнопку Area Properties в центре, в новом окошке задаем название будущего wed-файла и скрипта локации – все названия делаем одинаковыми (например, WW1290 – так будет называться ваша локация в будущем). Также выбираем тут сразу тип локации (подземелье, город и т.д.). Это можно сделать и потом, но лучше сразу, чтобы не забыть.

6. Далее – долгая и занудная часть! Нужно выделить область, где персонаж сможет ходить (она называется Search Map). Для этого кликаете левой кнопкой на какую-нибудь точку карты, где можно будет передвигаться (проще всего начать с дверного проема, где герой впервые появится), потом на следующую точку, и так далее – рисуете многоугольник внешних границ передвижения. То есть ЗА этот многоугольник герой выйти не сможет. Если посреди комнаты, например, стоит шкаф, то пока не обращайте на него внимания – это потом, рисуйте сперва главную внешнюю границу. Когда закончите и соедините последнюю точку с самой первой – кликайте ПРАВОЙ кнопкой мыши на получившийся многоугольник и после этого уже ЛЕВОЙ кнопкой кликайте на пункт контекстного меню Add as Searsh Region. Тем самым мы создали область для передвижений. После этого еще раз кликайте ПРАВОЙ кнопкой мыши на многоугольник, пока не убедитесь, что он выделился оранжевым (не белым!) цветом, и выбирайте в контекстном меню пункт Change Properties. Откроются свойства нашего многоугольника. Выбираем пункт Stone1, Able to Pass («камень, разрешено ходить»). Готово, самая неприятная часть позади.

7. Теперь точно так же выделяем на карте каждый объект, который герои должны обходить (шкафы, стулья и т.д.), рисуем вокруг них такой же многоугольник, тоже добавляем в Searsh Region, кликаем правой кнопкой и выделяем оранжевым, но в свойствах (Change Properties) выбираем уже другой пункт – Solid Obstacle, Not Able to Pass («Твердое препятствие, нельзя ходить»). Все – теперь герои не будут проходить сквозь эти предметы на карте!

8. Далее наверху выбираем пункт Auxillary Maps, в нем выбираем подпункт Light map, в мини-окошке кликаем на Erase и выбираем White. Потом точно так же выбираем подпункт Height map и в нем – Black. Это карты оттенков освещения.

9. Выбираем в левом меню пункт Save Area, чтобы сохранить результат. Выбираем итоговую папку, указываем название нашей локации (оно должно совпадать с ранее выбранным названием wed-файла, см. пункт 5), и по очереди подтверждаем все, о чем спросит программа. После этого в итоговой папке у нас появится все необходимое – файл .are с самой локацией, файл .wed со списком полигонов на ней, файл .tis с изображением карты, файл мини-карты .mos и три .bmp-файлика. Также там будет файл с расширением .slh – его сразу удаляйте, чтобы не путаться, он не нужен.

10. Осталось еще сделать так, чтобы персонажи становились полупрозрачными, когда скрыты за стенами. Для этого выделяем стены, шкаф и прочие объекты, за которыми игрок может стоять, щелкаем правой кнопкой и выбираем Add as Wall. И так по всем этим объектам. После этого еще раз сохраняем локацию и готово.

11. Далее надо еще адаптировать наши новые файлы .TIS для EE-версии (.tis+.pvrz). Чтобы сделать это гарантированно без глюков, лучше сначала сконвертировать их в png, а потом уже в tis+pvrz.
Для этого:
- Кладем в папку Override наш tis-файл (который будет адаптировать под EE).
- Открываем программу Near Infinity, подгружаем установленную игру
- Находим наш tis-файл в программе и открываем его.
- Экспортируем его в формат .png (кнопка «Export» внизу экрана, далее вариант «as .png»)
- Создаем .tis+.pvrz из нашего png. Для этого выбираем опции наверху программы «Tools» - «Convert» - «Image to TIS», в открывшемся окне выбираем исходный png-файл и папку, куда подгрузятся готовые файлы. Внизу окошка в поле «TIS Version» выбираем «PVRZ-based»! Жмем Start conversion.
- Всё, tis-файлы для EE-версии готовы.

12. В своем моде делаем папку tis, а в ней две отдельные подпапки – EE и Vanilla. Новый (созданный на Шаге №11) tis и файлы pvrz кладем в папку tis/EE. Старый (созданный изначально самой IETME) tis (без pvrz) кладем в папку tis/Vanilla.
Все остальные файлы локации (кроме tis и pvrz) кладем в подпапку are, которую создаем в папке своего мода.

13. Теперь давайте посмотрим на нашу локацию в игре! Копируем наши новые файлы в папку Override в корневой папке игры. Это должны быть: файл .are, файл .wed, файл .tis (ВАЖНО! Если у вас EE-версия, то кладем в override файлы tis+pvrz с Шага №12, а если у вас ванильная версия – то обычный tis, созданный IETME), файл.mos и три .bmp-файлика.

14. Запускаем игру, открываем консоль, вводим команду CLUAConsole:MoveToArea("НАЗВАНИЕ ВАШЕЙ ЛОКАЦИИ"). Проверяем, как выглядит наша локация. Если всё ОК, осталось сделать двери (если, конечно, они есть на локации). О дверях пойдет речь ниже, в разделе II.

15. Когда вся локация готова, осталось указать код для ее установки в tp2-файле (чтобы файлы сами копировались в папку override при установке вашего мода).
В файле tp2 пишем:
COPY ~ПАПКА ВАШЕГО МОДА/are~ ~override~
ACTION_IF GAME_IS "bg2ee eet" BEGIN
COPY ~ ПАПКА ВАШЕГО МОДА/tis/EE~ ~override~ 
END ELSE BEGIN
COPY ~ ПАПКА ВАШЕГО МОДА/tis/Vanilla~ ~override~

Заметьте – тут указан фрагмент с проверкой на наличие EE-версии. Если она найдена, установятся .tis+.pvrz. Если нет – старые tis.
Всё, теперь при установке мода ваша локация добавится.

РАЗДЕЛ II. Двери

1. Итак, локация есть, но у вас, допустим, есть на ней двери и надо сделать так, чтобы они открывались и закрывались. Начинаем. Открываем нашу локацию (вариант с ОТКРЫТЫМИ дверьми), в меню слева в разделе Overlay выбираем Add Overlay, потом выбираем наш новый Overlay 1 из выпадающего меню чуть выше, потом жмем Add/Delete Tiles. Карта пропадет и появится сетка. Кликайте по квадратам в тех местах, где примерно находится ваша открытая дверь (если не попали – не страшно, кликните еще раз и квадрат снова пропадет). Задача – определить, какие квадраты затрагивают изображение открытой двери (даже если это уголок двери – все равно считаем его). Обычно их два, четыре или шесть, запомните их расположение (это должен получиться квадрат или прямоугольник) и число квадратов, которые выделили (например, два на два, или два горизонтальных и три вертикальных). Можете сделать для себя скриншот, чтобы не забыть.


2. Далее открываем локацию с ЗАКРЫТЫМИ дверьми. Рисовать на ней Search Map и прочее не надо! Нам нужна только картинка с закрытой дверью. Действуем, как в предыдущем пункте - выбираем Add Overlay, потом выбираем наш новый Overlay 1 из выпадающего меню чуть выше, потом жмем Add/Delete Tiles. Карта пропадет и появится сетка. Кликайте по квадратам и выделите те, которые наметили в предыдущем шаге! То есть те, где примерно будет открываться дверь (хотя на нашей текущей карте дверь закрыта).


3. Выделили? Должен получиться квадрат или прямоугольник. После этого нажимаем кнопку Edit Tiles (чтобы сетка пропала) и жмем на клавиатуре кнопку Print Screen. Открываем Paint или Фотожоп, вставляем туда (Ctrl+V) наш сделанный ранее скриншот.

4. После этого надо подсчитать число квадратов по горизонтали и по вертикали. Например, у вас получилось 2x2 квадрата. Умножаем число квадратов по горизонтали на 64, потом так же умножаем число квадратов по вертикали на 64. Получаем число - в нашем случае это 128 x128.

5. Вырезаем из вставленного на шаге №3 скриншота картинку с нашими квадратами закрытой двери – но следим, чтобы размер вырезанного фрагмента составлял то число, которое мы определили на шаге №4 * (например, 128 x128). Если число будет неверным, то добавить дверь не получится, IETME потом выдаст ошибку.

6. Сохраняем этот вырезанный фрагмент как файл .bmp под названием Door1.bmp, например.

7. Открываем IETME, в нем открываем нашу локацию с ОТКРЫТЫМИ дверьми. В меню слева посередине видим пункт Insert closed door bitmap («Вставить картинку закрытой двери») – кликаем его, выбираем наш файл Door1.bmp. В левом верхнем углу появится наша подготовленная ранее картинка закрытой двери. Перетаскиваем ее на то место, где сейчас изображена открытая дверь! Так, чтобы изображения совпали и дверь выглядела теперь как закрытая. Следим, чтобы ни с одной стороны не было белых, серых и т.д. полос (если есть – значит, неточно вырезали изображение со скриншота, возвращаемся на Шаг 5 и вырезаем картинку заново так, чтобы не «захватить» в этот раз лишнего и при этом соблюдать ту цифру, что мы ранее определили (в нашем случае 128x128).

8. Если всё нормально, жмем ПРАВОЙ кнопкой на вставленную только что картинку закрытой двери и в выпадающем меню жмем единственный возможный вариант - Fit Here. Дверь закрепится на нужном месте. Жмем в IETME кнопку Draw closed doors – и видим, что теперь дверь открывается и закрывается! Мы это сделали! Если на карте несколько дверей – повторяем это и с остальными.

9. Сохраняем повторно всю нашу локацию (включая карты освещения и прочее).

10. Но и это еще не всё! Далее надо еще нарисовать место, где игрок должен стоять, чтобы открыть дверь (иначе в игре открыть ее не получится). Снова открываем IETME, посередине, под кнопкой Sleep Interruption, находим окошко с выпадающим списком. В нем выбираем нашу дверь (Door1). Теперь рисуем на карте мышкой место, где игрок будет стоять, чтобы открыть дверь. Желательно без искривлений – если они будут, то программа потом сама изменит вашу область так, чтобы искривлений не было, но расширит ее. Как выделили – щелкаете правой кнопкой по этой области и в контекстном меню выбирайте пункт Set as region where door can be opened.

11. Далее обводим мышкой проем закрытой двери (если она открыта – жмем Draw closed doors и закроется), щелкаем правой кнопкой по новой области и выбираем Set as closed door outline. Чтобы игра подсвечивала закрытую дверь при наведении. То же самое делаем с открытой дверью, выбрав Set as open door outline.

12. Далее обводим мышкой проем открытой двери, щелкаем правой кнопкой по новой области и выбираем Add as Open Door Polygon. Этим мы показываем игре, где отображаться дверь, когда она открыта.

13. То же самое делаем с закрытой дверью (обводим и выбираем теперь уже Add as Close Door Polygon).

14. Чтобы не вышло так, что игрок проходит сквозь открытую или закрытую дверь, жмем кнопку Select Close Impassible blocks. Появится мелкая-мелкая сетка. Щелкаем на те шестиугольнички, где игрок не должен ходить, когда дверь закрыта! Еще раз жмем Select Close Impassible blocks, чтобы сетка пропала. Потом то же самое, но уже жмем кнопку Select Open Impassible blocks и выделяем те блоки, где игрок не должен ходить, когда дверь открыта (распахнута). Иначе он будет ходить сквозь распахнутую дверь, что некрасиво.

15. Сохраняем повторно всю нашу локацию (включая карты освещения и прочее).

16. Кладем файлы в папку Override (или переустанавливаем мод, если нужный код в tp2-файл вы уже добавляли ранее). Переносимся консолью в нашу локацию (CLUAConsole:MoveToArea("НАЗВАНИЕ ВАШЕЙ ЛОКАЦИИ") и проверяем, как работает дверь.

Теперь осталось только добавить вход на вашу локацию с другой (игровой) локации, чтобы на нее можно было попасть не только через консоль, но и в игре. Но об этом надо говорить отдельно, раздел 3 в планах.

Зарегистрируйтесь, чтобы оставлять комментарии.