Естественно, первый раз взявшись за пакет, охото проверить его на работоспособность и получить первое представление о том, как происходит процесс создания объектов. Собственно для этого мы и создадим первую комнату с четырьмя стенами и полом. В данной главе не будут рассматриваться подробности процесса создания моделей, как я уже сказал, она для того, чтобы получить общее впечатление о том, с чем придётся иметь дело.
Шаг 1. Настраиваем плагины.
Важный шаг, но его рассписывать пока не буду, так как он описан в официальном руководстве. Дополнительная информация к официальной справке есть на этом сайте в статье создание уровня, пошаговое руководство
Шаг 2. Настраиваем сцену.
Для того, чтобы после экспорта модели не возникло недоразумений и просто для удобства работы необходимо настроить следующие вещи:
Единицы измерения
1. Открываем диалог настроек Window -> Settings/Preferences -> Preferences
Рисунок 1. Открываем диалог редактирования настроек программы.
2. В открывшемся диалоге, в списке Categories выбираем пункт Settings
3. Изменяем параметр Linear на meter
Рисунок 2. Меняем еденицы измерения на метры.
4. Нажимаем Save.
Настройка меню
Так как работать нам придётся с полигонами, то имеет смысл перевести меню в режим работы с полигонами. Делается это следующим образом: в том же окне редактирования настроек, что и в предыдущем пункте, только в категории Interface, опцию MenuSet изменяем на Polygons и нажимаем Save.
Рисунок 3. Настройка меню для работы с полигонами.
Настройка камеры
Раз единицы измерения увеличились в 100 раз, то и дальность отображения камеры необходимо увеличить в 100 раз
Для этого в меню камеры выбираем View -> Camera Attribute Editor в открывшемся диалоге изменяем параметры:
* Near Clip Plane на 0.1 (!!! Внимание: десятичная дробная часть числа отделяется точкой, а не запятой)
* Far Clip Plane на 1000
Рисунок 4. Настройка дальности видимости камеры.
Как вы, возможно, знаете, в игре есть два типа полигонов:
* односторонние — только одна сторона видимая, если посмотреть на этот полигон с обратной стороны, вы ничего не увидите.
* двусторонние — обе стороны видимы.
Для того, чтобы не запутаться где у одностороннего полигона какая сторона, отметим следующие пункты в меню камеры:
* Smooth Shade All
* Backface Culling
Рисунок 5. Данные пункты необходимо отметить, чтобы не запутаться где лицевая, а где обратная сторона создаваемой модели.
Шаг 3. Создаём кубик.
Ну вот, приступим:
1. Выбираем в меню Create -> Polygon Primitives -> Значок рядом с Cube. Выбираем именно значок рядом с Cube, как показано на скриншоте ниже, это открывает нам меню ручной настройки создаваемого примитива.
2. Для того, чтоб габариты созданного кубика были 5х5х5 м, в открывшемся окне параметры Width (ширина), Height (высота) и Depth (длина) устанавливаем на значение 5.
3. Кликаем в произвольном месте в окне камеры, желательно ближе к центру. В этом месте у нас появится кубик
Рисунок 6. Ручная настройка габаритов кубика.
В результате, вы должны увидеть примерно следующее:
Рисунок 7. Кубик 5х5х5 м.
Немножко отвлечёмся: как я раньше говорил, игра использует двусторонние и односторонние полигоны. В рассматриваемом сейчас примере мы будем использовать односторонние. Созданный кубик по умолчанию имеет полигоны видимые только снаружи. Для того чтобы нам поместить человека внутрь кубика необходимо вывернуть кубик наизнанку, то есть сделать так, чтобы видимые стороны полигонов, обращённые к игроку, были внутри кубика. Внимание, прежде чем продолжать удостоверьтесь ещё раз, что в тех настройках камеры, которые я описывал выше отмечена галочка на Backface Culling иначе для вас все полигоны будут отображаться как двусторонние.
Выворачиваем:
1. Выделяем кубик.
2. Выбираем в меню пункт Normals -> Reverse
Рисунок 8. Данный пункт меню меняет лицевую и оборотную сторону полигона местами.
Должно получиться что-то наподобие этого:
Рисунок 9. Теперь кубик вывернут наизнанку.
Всё, теперь нам, для получения желаемой модели кубика осталось только убрать у него верхнюю грань, для этого:
1. Кликаем на кубике правой кнопкой мыши, раскроется меню, в нём выбираем пункт Face, теперь мы получаем возможность манипулировать гранями кубика:
Рисунок 10. Переходим в режим редактирования Faces.
Рисунок 10. Переходим в режим редактирования Faces.
2. Кликаем по центру верхнего полигона, который теперь выделен синимквадратиком. Выделенный полигон кубика должен подсветиться.
3. Нажимаем на Delete на клавиатуре.
Рисунок 11. Удаляем верх у кубика.
Всё, желаемая модель получена, теперь время перейти к следующему этапу моделирования.
Шаг 4. Текстурирование.
Для того, чтобы не усложнять пример, этот шаг пока мы пропустим.
Шаг 5. Экспорт сцены из Maya.
Для экспорта:
1. Нажмите в меню File -> Export All..
Рисунок 12. File -> Export All....
2. Сохраняем файл в директорию X:\import\ под именем mp_cube (Х - это диск который создаётся .bat файлом идущим в комплекте с SDK, если он у вас не создан, тогда зайдите в меню пуск и в меню программ запустите следующий файл: X-Ray SDK \ Map X-Drive)
Рисунок 13. Экспортируем в mp_cube.
Шаг 6. Импорт объекта в LevelEditor и настройка сцены
Импорт и настройка свойств объекта
Экспорт объектов хорошо рассмотрен в официальной справке, но на всякий случай я дам порядок выполнения операций с краткими комментариями.
1. Выбираем в меню пункт Object -> Object Lybrary.
2. Создаём папку для объектов нашего уровня, я назвал её mp_test_cube (можно сделать с помощью правой кнопки мыщи, в раскрывшемся меню выбрать Create Folder).
3. Выбираем нашу папку и жмём Import Object, выбираем сохранённый нами файл X:\import\mp_cube. Импортированный файл должен появиться в библиотеке объектов.
4. Выбираем в библиотеке импортированный нами объект и жмём Properties.
5. Откроется меню свойств объекта, там нас интересует пункт Texture, жмём на троеточие рядом с этим пунктом (см. скриншот ниже). Откроется меню выбора текстур, выбираем любую понравившуюся и жмём ОК.
6. Сохраняем изменения в библиотеке объектов.
Рисунок 14. Назначаем текстуру нашему объекту.
Добавляем объект в уровень
1. Жмём Multiple Append.
2. В открывшемся окне ставим галочку на нашем объекте.
3. Жмём ОК, наш объект должен появиться в создаваемом нами уровне.
Рисунок 15. Добавляем объект в уровень.
Добавляем необходимые объекты
Для того чтобы запустить уровень нам необходимо добавить следующие 3 объекта:
1. Респаун игрока ($rpoint)
2. Объект Light
3. Объект Glow
И так добавляем:
1. Респаун:
Рисунок 16. Добавляем респаун игрока.
2. Light:
Рисунок 17. Добавляем Light.
3. Glow:
Рисунок 18. Добавляем Glow.
Настраиваем сцену
1. Заходим в меню Scene -> Options
2. Правим параметры отмеченные на скриншоте:
Рисунок 19. Настраиваем сцену.
3. Теперь сохраняем сцену как mp_test_cube
4. Всё жмём Compile -> Build, после того как билд закончится закрываем едитор и приступаем к следующему шагу
Шаг 7. Компиляция
1. Заходим в меню Пуск -> Выполнить
2. Набираем X:\xrLC.bat mp_test_cube
Рисунок 20. Запускаем компиляцию.
3. По окончании компиляции нажмите ОК.
Рисунок 21. Компиляция окончена.
Есть такое число, - ограничение на количество полигонов в отдельном объекте на карте, это ~150000. На самом деле, это число на порядок ниже. Экспериментально установлено, что если количество полигонов в каком-либо объекте на карте превышает ~ 80000 - 90000, компилятор уровня (xrLC.exe) при компиляции, - тупо слетает на фазе Build UW Mapping.
Шаг 8. Запускаем уровень
Для запуска нам необходимо:
1. Скопировать следующие файлы:
1. Файл level_editor\gamedata\config\mp\map_list.ltx в папку S.T.A.L.K.E.R\gamedata\config\mp\
2. Содержимое папки level_editor\gamedata\levels\mp_test_cube\ в папку S.T.A.L.K.E.R\gamedata\levels\mp_test_cube\
2. Добавить в список карт S.T.A.L.K.E.R\gamedata\config\mp\map_list.ltx (файл можно открыть обычным блокнотом) нашу карту
Рисунок 22. Добавляем нашу карту в список доступных.
Всё карту можно пробовать: