Когда стряпал свою локацию перерыл весь интернет, нашел несколько хороших видеообучений(выложены на нашем сайте). Но сам всегда предпочитал мануалы в текстовом варианте, и думаю не я один. Читайте, исправляйте, комментите.
Дело было ночью в 3 часа, делать было нечего и решил я запилить небольшой мануал по созданию локаций для ЗП. В нем я постарался упомянуть все мелочи с которыми столкнутся новички в картостроительстве. Итак приступим:
Первым делом нам нужно скачать собственно софт для создания 3d моделей. Тут у нас есть выбор - это или Maya или 3ds MAX. По слухам, MAYA более подходит для создания локаций, но я всегда хотел научиться моделить именно в 3ds MAX поэтому выбрал его.
3ds MAX нам нужен версии ОБЯЗАТЕЛЬНО версии 2011 года и 32 битный. Почему? Потому что плагины позволяющие переносить готовые модели в SDK из 3ds MAX, и наоборот работают только на этой версии. Я думаю ссылку вы найдете сами, и конечно же будете использовать лицензию;).
НАСТРОЙКА 3DS MAX И УСТАНОВКА ПЛАГИНОВ
1.Выбор легкого интерфейса в котором нет кучи ненужных кнопок.
Меню Customize->Custom UI and Default Switchers->ame-light.
1.В меню Customize ищем нужный пункт.
2.Выбираем ame-light
2.Подключение плагинов для импорта моделей типа .object(тип 3d моделей сталкера в SDK) и экспорта готовой геометрии локации и SDK.
а)Скачиваем плагины для экспорта/импорта по этой ссылке,а также скрипты для вставки моделей статики в 3ds MAX.
б)Устанавливаем плагины следующим образом - засовываем все файлы из архивов с расширением dli,dlu,dlt в папку ВАШПУТЬ\Autodesk\3ds Max 2011\plugins, скрипты аналогично только в папку scripts.
в)Плагины подключаются автоматически при запуске 3d MAX(поэтому ставить надо при выключенной программе). Скрипты включаются следующим образом - в строке меню ищем пункт MAX Script, нажимаем в выпадающем меню - Run Script, выбираем тот скрипт который нужно.
3.Пункт Run Script запускает любые скрипты для 3ds MAX.
Эти действия приходится выполнять каждый раз когда вы хотите включить скрипт, после закрытия 3ds MAX скрипты тоже автоматически закрываются (звучит по кэповски).
г) Отдельно подключается плагин для экспорта геометрии в SDK. Щелкаем кнопку с молотком с правой стороны. Видим 9 кнопок (Asset Browser, Camera Match..У меня на картинке уже есть STALKER Export, поэтому для примера я буду добавлять еще одну такую же кнопку:) У вас в итоге должна быть одна.) Щелкаем квадратик "Configure Button Sets".
4.Кнопка настройки кнопок:D
Там видим два списка, слева возможные плагины для добавления на панель, слева кнопки которые уже есть в панели. Увеличиваем количество кнопок на 1(у вас с 9 до 10, у меня с 10 до 11), жмем ок.
5.Настройка кнопок
Окошко закрылось, снова открываем его, и перетаскиваем из левого списка пункт STALKER EXPORT в левую пустую кнопку(она в самом низу правого списка).
6.Справа появилось место для кнопки, засовываем туда пункт из левого списка.
Жмем ОК, и вуаля - у нас появилась кнопка.
7.Кнопка появилась(у меня две).
3.Подключим папку с текстурами Сталкера для быстрого доступа к ним(и соответственно будущего быстрого текстурирования)
Папку с текстурами получаем путем распаковки ресурсов сталкера(это придется делать еще и при установке SDK,поэтому данный пункт лучше выполнить после этого). Включаем Макс, выбираем в верхней строчке меню пункт Customize - Configure User Path - Пункт Images,
8.Пункт настройки пользовательских путей(в том числе и текстур).
после того как выбрали его - справа кнопку Modify. И после этого ищем нашу папку с текстурами.
9.Выбор нашей папки с текстурами.
Как нашли ее, открываем ее и нажимаем Use Path внизу. Все.
4.Настроим освещение, чтобы было удобнее моделировать. Для этого жмем кнопку 8 на верхней цифровой клавиатуре, или идем в меню Rendering,
10.Настройка освещения. Открываем меню Environment.
ищем пункт Ambient,
11.Окно настройки освещения.
выбираем его и выбираем удобное для себя освещение. Я использую серое.
12. Выбор цвета освещения.
Поэкспериментируйте чтобы понять какое лучше для вас.
После этого в принципе можно начинать моделирование локации(чего мы очень хотим).
Пара слов по управлению в 3ds MAX:
- Alt+Средняя кнопка мыши - вращение вокруг объекта
- Z при каком-нибудь выделенном объекте - фокусирование на нем.(ЧТО ОЧЕНЬ ВАЖНО, ПОТОМУ ЧТО У ВАС НАВЕРНЯКА ПОЯВИТСЯ ВОПРОС "ПОЧЕМУ У МЕНЯ МЕДЛЕННО РАБОТАЕТ МАСШТАБИРОВАНИЕ)
- Колесико мыши - масштаб.
- Средняя кнопка мыши - перемещение камеры(вверх,вниз итд)
- F3 - включение режима контуров
- F4 - включение режима контуров поверх объекта
- F2 - включение подсветки выделенного полигона(когда вы его выделяете он может быть показан просто красной кромкой, а может быть закрашен, что собственно и переключает кнопка)
- Alt-C режим "Нож", когда на выделенном полигоне вы можете сделать вырез любой сложности.
- Самая нижняя правая кнопка в углу - переключает вид от 4 окон к 1, в котором вы последний раз щелкали мышкой. Нажмите чтобы понять что я имел в виду.
ну вот в принципе и все. Остальное лучше смотреть в специализированных мануалах по 3ds MAX.
Теперь разберемся с SDK.
НАСТРОЙКА SDK
После того как вы его скачали(ссылка на скачивание), переходим к установке. Устанавливать лучше в путь по умолчанию, так будет меньше проблем. Но если очень хочется, то можно ставить в любую папку.
После установки нам нужно распаковать в папку
ВАШПУТЬ\X-Ray CoP SDK\editors\gamedata ресурсы Сталкера(наш мануал по SDK для ЗП, и собственно ЗП. Отличия от SDK ТЧ и ЧН небольшие, но есть). Для распаковки мы берем распаковщик от бардака (
с нашего сайта, или
stalkerin.gameru.net) и распаковываем игровые архивы(которые находятся в папке где бы вы думали? С игрой) из папки resources. При желании можно распаковать и архивы из папки levels (в которой находятся готовые уровни, но просто так их в СДК не засунуть), но это уже на вкус и цвет. После копирования ресурсов в папку с SDK. Далее скачиваем набор ускоренных компиляторов, засовываем его в папку
ВАШПУТЬ\X-Ray CoP SDK\editors. На этом процесс настройки SDK закончен.
ПРОЦЕСС СОЗДАНИЯ ЛОКАЦИИ В 3ds MAX И ЕЕ ПОСЛЕДУЮЩИЙ ЭКСПОРТ в SDK:
Для примера создадим свою простую локацию, обычный куб.
Итак открываем 3ds MAX.
Создаем простую комнату(как это делать ищем уже в другом месте), обязательно текстурим его(не забываем про конвертер), нажимаем кнопку 8 и жмем пункт
Ambient. Выбираем черный цвет, сохраняем, смотрим чтобы все поверхности которые должен видеть игрок - были повернуты к нему НЕ ЧЕРНОЙ СТОРОНОЙ. Иначе в игре эта поверхность будет попросту не видна игроку и вместо стены будет зиять проем. Проверяем на наличие спаренных точек и поверхностей используя скрипт Xray_invalid(
ССЫЛКА) на который была дана выше и наконец экспортим нашу "локацию" в SDK. Для этого выделяем все объекты на локации которые хотим перенести(в нашем случае это лишь куб). Выбираем в правой панель кнопку с молотком. Выбираем
S.T.A.L.K.E.R. Export. Нажимаем кнопку
Export Editor Object,
13.Включенный плагин S.T.A.L.K.E.R. Export.
ищем папку import располагающуюся в папке с SDK(ВАШПУТЬ\X-Ray CoP SDK\editors\import)
14.Путь к папке import
ждем появления надписи Export successfully completed и на этом процесс экспорта завершен.
15.Успешно завершившийся экспорт.
ОШИБКИ ПРИ ЭКСПОРТЕ В SDK
Примечания - во время экспорта могут возникнуть ошибки.
Типичные ошибки которые появляются в логе экспорта:
Converting node 'Box001'
- Processing material 'Material #26' ...
'Material #35' -> bad submaterial
'Material #35' -> can't parse material
Invalid mesh: 'fhkяяяраряроа'. Faces<2 or Verts<4
Group001 -> Can't convert to TriObject
! can't convert
! Export failed
--------------------------------------------------------------------
Разберем подробно. Converting node 'Box001' значит что конвертер приступил к конвертированию этого объекта находящегося на карте. Поэтому отличным решением будет называть каждую модель отдельно находящуюся на карте своим именем, чтобы потом быстро найти источник ошибки. Если вы этого не сделали, или даже сделали, но забыли где находится этот объект, жмем кнопку H(английскую), в строке Find пишем имя объекта вызвавшего ошибку, и жмем ок. После этого объект на карте автоматически выделится, и после нажатия кнопки Z, наша камера окажется центрированной на него. После этого разбираемся собственно с проблемой.
Bad submaterial, can't parse material - скорее всего этой модели на одной из поверхности отсутствует текстура.
Invalid mesh: 'fhkяяяраряроа'. Faces<2 or Verts<4 - скорее всего модель состоит из слишком мало числа полигонов (например состоящая из трех вершин плоская поверхность). Но иногда, эта ошибка тоже означает, что модель не затекстурена полностью.
Group001 -> Can't convert to TriObject - это значит что вы для удобства или фиг знает для чего, сгруппировали объекты на карте с использованием инструмента Group. Экспортер не понимает такие объекты, и нужно разгруппировать все группы из объектов которые вы хотите экспортировать.
КОМПИЛЯЦИЯ КАРТЫ В SDK
В левом верхнем углу жмем меню Objects, в выпавшем списке выбираем Library Editor.
16.Кнопка Library Editor
Там ищем кнопку Import Object,
17.Наш объект который мы экспортили(for_manual).
жмем ее, ищем место куда сохранили свою экспортированную из 3ds MAX модель, выбираем, жмем ОК.
18.Окошко Object Library, кнопка Import Object в правом столбце.
Ваша модель теперь в библиотеке объектов SDK, гордитесь этим:). Тут же(в Object Library), можно сразу посмотреть модель(для этого жмем галочку Preview), назначить соответствие текстурам на объекте игровым материалам(кнопка Properties, чтобы при стрельбе в металл например был звук металла и дырки от металла). ну и собственно больше нам пока ничего не нужно.
После того как наша геометрия добавлена в библиотеку, ищем в правом нижнем углу небольшую(пока) табличку Objects. Ищем надпись Refresh List, жмем ее,
19.До Refresh List, нашего объекта еще нет в списке.
и наш объект появляется в списке объектов для добавления.
20.А вот и появился.
Выбираем его, жмем кнопку A(англ), и кликом мыши ставим объект на карту. Если вы все сделали правильно, должно получиться что-то вроде картинки выше.
Не пугайтесь отсутствию стен с нашей стороны и потолка. Когда вы будете играть на этой карте, с этой стороны нам смотреть не на что, поэтому поверхность отображается только изнутри комнаты(для этого мы переключали Ambient в черный цвет и смотрели черноту стен).
Теперь сохраняем нашу карту, нажимая File-Save As. После этого начинаем настройку. Жмем кнопку Scene->Options. Там назначаем имя локации(Name prefix), путь где она будет лежать в папке с SDK(Level path), качество будущей компиляции(Для пробы нам пока подойдет Draft), и внизу тип игры(Game Type, Single - одиночная игра, DM - DeathMatch, TDM - Team DeathMatch, ArtefactHunt - охота за артефактом, и CTA - не помню). Для теста выберем DM. Жмем File->Save,настраиваем освещение.
21.Окно настройки локации в SDK.
Для того чтобы карта заработала нужно поставить хотя бы один источник света, и свечение. Для этого выбираем пункт Light слева, жмем A(англ) жмякаем свет куда угодно на карте,
22.На скрине нажата кнопка Light. Теперь добавляем свет на локацию.
выбираем Glow(тоже справа), жмем A, а затем Enter чтобы зайти в пункт свойств поставленного объекта. Там ищем пункт Texture, выбираем Glow и любой из видов свечений.
23.Выбор текстуры свечения.
Сохраняем карту. Теперь нам нужно расставить места появления игроков(это же все таки мультиплеерная карта). Для этого ищем справа пункт Spawn Element, в появившемся внизу списке ищем $rpoint(respawn point), выбираем его, ставим на карте. (должен поставиться человечек).
24.Нажата кнопка Spawn Elements. Внизу выбираем rpoint.
В его свойствах ставим тот же тип игры который указали на карте(DM), назначаем команду 0.
25.Настройка свойств точки респавна.
То же повторяем для еще одного человечка,только его команда будет 1(и вместо человечка собствено будет флаг). После этого ищем справа пункт Scene->Validate.
26.Кнопка Validate.
и если вы все сделали правильно, то валидация пройдет, и вылезет окошко с надписью Validation OK! и кнопкой OK. Теперь справа выбираем пункт Compile->Build
27.Кнопка Build.
и соглашаемся с вылезшим окошком. Все, карта почти готова. Остается самое долгое, и в принципе простое.
Открываем папку с SDK ищем файл tool_compile_xrLC_all,открываем его блокнотом.Там вы увидите следующее
start bin\compilers\xrLC.exe -f for_manual -nosmg -keep_temp_files
где for_manual - это название нашей карты, под каким мы ее назвали в SDK. Пишем название,
28.Открытый в блокноте файл настроек компилятора.
сохраняем файл, запускаем. Ждем окошка Congratulation! В котором написано время потраченное на компиляцию.
Ура, карта скомпилирована, теперь нужно засунуть ее в СТАЛКЕР. Для этого в корневой папке SDK, ищем папку map_compressor. В папку map_compressor\for_levels\levels засовываем папку с вашей картой из папки editors\gamedata\levels.
29.Папка с нашей локацией в SDK.
(одни папки да папки). В map_compressor
30.Расположение папки map_compressor
ищем файл build_map. В нем правим путь к нашей карте:
[include_folders]
levels\НАЗВАНИЕПАПКИСКАРТОЙ = true ;
textures = true
configs\text = true
в level name меняем название карты на ваше название, сохраняем,
31.Открытый файл настроек архиватора карт.
и запускаем файлик compress_map находящийся в этой же папке.
32.Запускаем compress_map.
После появления двух черных окошек в папке будет создан файл for_levels.pack_#0 являющийся вашей картой упакованной в специальный архив.
33.Появившаяся сжатая карта, еще с неотредактированным названием и расширением.
Переименовываем этот файл в ЛЮБОЕНАЗВАНИЕ.db, и копируем его в папку КОРНЕВАЯПАПКАСЗОВОМПРИПЯТИ\mp.
34.С уже отредактированным названием наша карта лежит в папке с другими МП картами Зова Припяти.
После этого в папке gamedata\configs правим файл game_maps_mp.ltx(если у вас не распакована геймдата, файлик можно скачать ниже по ссылке) следующим образом - в списке карт в самом верху файла добавляем название файла который вы копировали в папку mp со знаком =,в самый низ файла добавляем:
[НАЗВАНИЕФАЙЛА]
weathers = [default]
35.Файл в котором надо прописывать свои карты.
Сохраняем файлик, запускаем СТАЛКЕР, создаем сетевую игру DeathMatch, с максимальным количеством игроков ограниченным количеством точек респавна которые вы ставили в SDK - и наслаждаемся нашим корявым творением. На это все, с вами был mister_dogan.
Приложения к мануалу:
1.
Файл game_maps_mp(хотя конечно непонятно кому он понадобится, если вы будете распаковывать сталкер для SDK).
2.Здесь будет ссылка на статью об ошибках при компиляции.
3.Здесь будет ссылка на статью по вставке объектов в 3ds MAX.