Создание уровня, пошаговое руководство — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→Ссылки) |
RedPython (обсуждение | вклад) м (restored) |
||
Строка 14: | Строка 14: | ||
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya или 3D Studio Max. | В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya или 3D Studio Max. | ||
− | + | == Создание геометрии == | |
+ | Научить работать в 3D редакторах я не смогу, поэтому подробно остановлюсь только на процессах установки и настройки плагина, текстурировании и назначении шейдеров геометрии. | ||
+ | === Установка и настройка плагина === | ||
− | + | ==== Установка для Maya ==== | |
+ | Установка плагина заключается в копировании: | ||
+ | *Всех файлов из папки scripts_plugins\scripts в папку C:\Documents and Settings\UserName\My Documents\maya\scripts | ||
+ | *Всех файлов из папки scripts_plugins\ver-ххх в папку C:\Program Files\Autodesk\Maya_ххх\bin | ||
+ | *Файла scripts_plugins\xray_path.ltx в папку C:\Program Files\Autodesk\Maya_ххх\bin | ||
+ | ==== Установка для 3D Studio Max ==== | ||
+ | [http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=100 Качаем] плагин. Распаковываем архив, копируем содержимое папки '''plugin'''(именно plugin) в папку макса. | ||
+ | ==== Настройка ==== | ||
+ | Далее в официальном руководстве написано, что требуется диск Х, мы приложили батник для создания этого диска и т.д. | ||
+ | Возможно кто-то согласится с таким вариантом, но я решил просто отредактировать файл xray_path.ltx и не мучатся с батником и диском. | ||
− | + | Необходимо изменить только первые две строчки файла xray_path.ltx: | |
+ | <pre> | ||
+ | $server_root$ = false| false| e:\sdk\(это путь до папки в которой у вас находится SDK) | ||
+ | $local_root$ = false| false| e:\sdk\(это путь до папки в которой у вас находится SDK) | ||
+ | После некоторого шаманства заработало в таком виде: | ||
+ | $server_root$ = false| false| C:\Program Files\X-Ray SDK\level_editor\ | ||
+ | $local_root$ = false| false| C:\Program Files\X-Ray SDK\level_editor\ | ||
+ | </pre> | ||
+ | Всё, можно пользоваться плагином. | ||
− | + | === Настройка единиц измерения === | |
+ | Для того, чтобы размеры объектов в редакторе совпадали с теми, что используются в X-Ray SDK, необходимо выполнить соответствующую настройку. | ||
− | + | ==== Настройка Maya ==== | |
− | + | Для начала необходимо единицы измерения перевести в метры (по умолчанию в Maya 8.5 используются сантиметры). Делается это в 2 этапа: | |
+ | * Заходим в меню Window -> Settings/Preferences -> Preferences. В открывшемся диалоге, в категории Settings, находим список Working Units -> Linear и выбираем Meter, как показано на скриншоте (шаг 1, шаг 2). | ||
+ | * Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3) | ||
+ | {| | ||
+ | |valign=top|[[Изображение:SantimToM1.gif|thumb|400px|Шаг 1: выбираем указанный пункт меню]] | ||
+ | |valign=top|[[Изображение:SantimToM2.gif|thumb|400px|Шаг 2: выбираем еденицы измерения - метры]] | ||
+ | |valign=top|[[Изображение:SantimToM3.gif|thumb|400px|Шаг 3: настраиваем камеру]] | ||
+ | |} | ||
+ | Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов: | ||
+ | * Panel -> Perspective -> New | ||
+ | * View -> Camera Settings -> View Compass | ||
+ | |||
+ | ==== Настройка 3D Studio Max ==== | ||
+ | Настройка заключается только в выборе в качестве единиц измерения метров. | ||
+ | *Заходим в меню Customize -> Units Setup... В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters. | ||
+ | *Так же необходимо нажать кнопку System Unit Setup и приравнять условную единицу к метру (т.е. там где "1 Unit = 1,0 в выпадающем списке выбрать Meters. Флажок "Respect System Units in Files" должен быть включен) | ||
+ | |||
+ | [[Изображение:3d-max-unit-setup.gif|thumb|left|400px|Меняем единицы измерения]] | ||
+ | <br clear="both" /> | ||
+ | |||
+ | === Моделирование === | ||
+ | Для нашего простейшего уровня нам понадобится создать просто бокс в качестве террейна. | ||
+ | |||
+ | Создадим box размеров 50м*50м*0,1м. | ||
+ | |||
+ | ==== Замечания и правила ==== | ||
+ | |||
+ | * Вся геометрия должна быть создана в реальных мировых размерах (если стол в реальной жизни высотой 1 метр, значит его надо и в Maya делать высотой 1 метр, всё предельно ясно и просто) | ||
+ | * Bounding box персонажа имеет три состояния: стоя (1.8х0.7х0.7 в метрах), сидя (1.5х0.7х0.7 в метрах) и очень сидя (1.2х0.7х0.7 в метрах). | ||
+ | * Весь уровень должен быть не больше 150 тысяч треугольников. | ||
+ | * Сцена должна состоять из групп. Название группы формируется по такому принципу: mp_имяуровня_назвгеометрии. Например, в нашей тестовой сцене такие группы: mp_atp_terrain, mp_atp_buildings. В группе может находится как и один объект, так и несколько. Имена объектов внутри группы никоем образом не должны совпадать с именем группы. В переделах одной группы все имена должны быть уникальны. | ||
+ | * Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект - имя_объекта, шейп - имя_объектаShape | ||
+ | |||
+ | === Текстурирование и назначение шейдеров === | ||
+ | |||
+ | ==== 3D Studio Max ==== | ||
+ | Открываем Material Editor(M) выделив один из образцов материала, открываем диалог Material/Map Browser, щелчком на кнопке Standart. Создадим новый материал XRayMtl, дважды щёлкнув по нему в списке. | ||
+ | |||
+ | Займёмся настройкой параметров материала. X-ray материал, кроме текстуры использует надстройку состоящую из трёх шейдеров - Engine, Compiler, Material. | ||
+ | * Engine - отображение текстуры в движке игры. | ||
+ | * Compiler - используется при компиляции уровня. | ||
+ | * Material - игровой материал (wallmark, sound и др.). | ||
+ | Для начала настроим шейдеры. В Material Editor-e разворачиваем свиток XRay Params. В выпадающих списках представлены различные варианты шейдеров. Более подробно параметры шейдеров рассмотрены в статье [[Описание шейдеров XRayMtl]]. Для нашего примера ограничимся установкой следующих значений: | ||
+ | * Engine - default | ||
+ | * Compiler - default | ||
+ | * Material - material/asphalt | ||
+ | {| | ||
+ | | valign=top |[[Изображение:3d-max-create-xraymtl.gif|thumb|400px|Создание нового материала XRayMtl]] | ||
+ | | valign=top |[[Изображение:3d-max-xray-params.gif|thumb|Настройка XRay шейдеров материала]] | ||
+ | |} | ||
+ | |||
+ | Текстурирование заключается в назначении текстуры процедурной карте Diffuse Color. | ||
+ | Вообще, в редакторе материалов (В свитке Maps) много процедурных карт, но X-Ray mtl поддерживает (экспортирует) лишь одну, указанную выше. | ||
+ | !Важно - чтобы экспорт был, надо назначить карту в кнопку diffuse colour. Можно назначить любую карту формата *tga, так-же важно чтобы размер текстуры (ширина/высота) был равен степени двойки (256, 512 и т.д.). | ||
+ | {{Message_box| | ||
+ | id =pseudoscience| | ||
+ | align = center| | ||
+ | backgroundcolor = rgb(235, 235, 255);| | ||
+ | image =Question.gif| | ||
+ | heading =Надо ли расписать процесс назначения текстуры каналу?| | ||
+ | message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}} | ||
+ | |||
+ | === Экспорт === | ||
+ | |||
+ | ==== 3D Studio Max ==== | ||
+ | Для начала выделяем все объекты, которые мы хотим экспортировать в виде единого объекта, т.е. всё, что мы выберем сейчас в редакторе будет представленно как одна модель. В нашем случае это один box. | ||
+ | |||
+ | Переходим на командную панель Utilities, нажимаем кнопку More... В появившемся списке в самом конце видим XRay Export, выбираем, жмём ОК. | ||
+ | После запуска модуля на панели появится новый свиток XRay Export, в списке Selected можно проконтролировать какие объекты выбраны, нажимаем кнопку Export Editor Object... cохраняем файл в папку {SDK folder}\import. | ||
+ | {| | ||
+ | | valign=top |[[Изображение:3d-max-xray-export.gif|thumb|400px|Запускаем модуль экспорта]] | ||
+ | | valign=top |[[Изображение:3d-max-xray-export2.gif|thumb|400px|Экспорт объектов]] | ||
+ | |} | ||
+ | |||
+ | == Импорт геометрии и текстур в пакет == | ||
+ | При экспорте из редактора(Maya && 3D Max) мы получим файлы *.object. | ||
+ | |||
+ | Запускаем Level Editor и добавим нашу геометрию в Objects Library, делается это так: Objects -> Library Editor, откроется диалог Object Library. | ||
+ | [[Изображение:SDK-Find-new-texture.gif|thumb|Редактор нашёл текстуру]] | ||
+ | Для удобства создадим новую группу для наших объектов, щёлкаем в левой части окна ПКМ и выбираем Create Folder, переименуем в my_first_level. | ||
+ | Выделяем группу, и нажимаем кнопку Import Object, ищём наши *.object файлы, после того как объекты добавлены можно посмотреть, как они примерно будут выглядеть в игре, для этого ставим галочку Preview и любуемся нашим объектом. Теперь можно закрыть диалог Object Library. | ||
+ | |||
+ | Если использовали свою текстуру, то её также надо добавить в пакет, Images -> Check New Textures. Данная команда заставляет редактор просмотреть папку SDK/Import и добавить новые файлы в Texture List, файлы должны быть в формате Targa(*.tga). | ||
+ | Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша текстура есть в списке текстур редактора. Можно переходить к следующему шагу. | ||
+ | {| | ||
+ | |valign=top|[[Изображение:SDK-Object-Library.gif|thumb|left|Диалог Object Library]] | ||
+ | |valign=top|[[Изображение:SDK-OL-crt-grp.gif|thumb|left|Создание группы для объектов]] | ||
+ | |valign=top|[[Изображение:SDK-Update-Image-Dialog.gif|thumb|300px|Диалог импорта текстур]] | ||
+ | |} | ||
+ | |||
+ | == Создаём уровень == | ||
+ | Приступим к созданию уровня, начнём с расстановки объектов. | ||
+ | |||
+ | === Расстановка объектов :) == | ||
+ | |||
+ | Тутор пока незакончен, так что о подробной работе в редакторе, | ||
+ | сохранении и компиляции читаем по ссылке ниже с '''шага 6''' | ||
+ | *[[Maya. Глава 1: Hello World или первый кубик.]] | ||
+ | |||
+ | == Подключение уровня к игре == | ||
+ | Чтобы уровень можно было создавать прямо из игры, его необходимо добавить в список уровней. | ||
+ | Существует четыре случая, рассмотрим каждый. | ||
+ | |||
+ | === SDK объединён с игрой === | ||
+ | В данном случае надо только отредактировать файл gamedata\config\mp\map_list.ltx, вписав в каждой из секции [deathmatch], [teamdeathmatch], [artefacthunt] название своего уровня. | ||
+ | === SDK не объединён с игрой, игра распакована === | ||
+ | В данном случае надо также отредактировать файл gamedata\config\mp\map_list.ltx, вписав в каждой из секции [deathmatch], [teamdeathmatch], [artefacthunt] название своего уровня + скопировать содержимое папки [SDK folder]\gamedata\levels\название уровня\ в папку [STALKER folder]\gamedata\levels\название уровня\. | ||
+ | === SDK не объединён с игрой, игра не распакована === | ||
+ | Повторяем действия предыдущего случая, только папки надо будет создавать самому, файл gamedata\config\mp\map_list.ltx можно взять из папки [SDK folder]\gamedata\config\mp\map_list.ltx | ||
+ | === SDK не объединён с игрой + использовались свои текстуры === | ||
+ | В данном случае необходимо скопировать: | ||
+ | *Текстуры из [SDK folder]\gamedata\textures\user\ в папку [STALKER folder]\gamedata\textures\user\ | ||
+ | *Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\ | ||
+ | |||
+ | == Ссылки == | ||
+ | |||
+ | *[[Описание шейдеров XRayMtl]] | ||
+ | *[[Глобальное озеленение, добавляем траву на уровень]] | ||
+ | *[[Добавляем аномалии на уровень]] | ||
+ | *[[Учимся подвешивать объекты]] | ||
+ | <!--{{Описание шейдеров XRayMtl}}--> | ||
+ | |||
+ | |||
+ | [[Категория:SDK]] |
Версия 13:35, 21 мая 2011
Автор: Neo][ |
Возникли вопросы/предложения Пиши тут. |
Содержание
В данном уроке попытаюсь рассказать об основах работы с Level Editor-ом пакета SDK, на примере создания простейшего уровня.
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya или 3D Studio Max.
Создание геометрии
Научить работать в 3D редакторах я не смогу, поэтому подробно остановлюсь только на процессах установки и настройки плагина, текстурировании и назначении шейдеров геометрии.
Установка и настройка плагина
Установка для Maya
Установка плагина заключается в копировании:
- Всех файлов из папки scripts_plugins\scripts в папку C:\Documents and Settings\UserName\My Documents\maya\scripts
- Всех файлов из папки scripts_plugins\ver-ххх в папку C:\Program Files\Autodesk\Maya_ххх\bin
- Файла scripts_plugins\xray_path.ltx в папку C:\Program Files\Autodesk\Maya_ххх\bin
Установка для 3D Studio Max
Качаем плагин. Распаковываем архив, копируем содержимое папки plugin(именно plugin) в папку макса.
Настройка
Далее в официальном руководстве написано, что требуется диск Х, мы приложили батник для создания этого диска и т.д. Возможно кто-то согласится с таким вариантом, но я решил просто отредактировать файл xray_path.ltx и не мучатся с батником и диском.
Необходимо изменить только первые две строчки файла xray_path.ltx:
$server_root$ = false| false| e:\sdk\(это путь до папки в которой у вас находится SDK) $local_root$ = false| false| e:\sdk\(это путь до папки в которой у вас находится SDK) После некоторого шаманства заработало в таком виде: $server_root$ = false| false| C:\Program Files\X-Ray SDK\level_editor\ $local_root$ = false| false| C:\Program Files\X-Ray SDK\level_editor\
Всё, можно пользоваться плагином.
Настройка единиц измерения
Для того, чтобы размеры объектов в редакторе совпадали с теми, что используются в X-Ray SDK, необходимо выполнить соответствующую настройку.
Настройка Maya
Для начала необходимо единицы измерения перевести в метры (по умолчанию в Maya 8.5 используются сантиметры). Делается это в 2 этапа:
- Заходим в меню Window -> Settings/Preferences -> Preferences. В открывшемся диалоге, в категории Settings, находим список Working Units -> Linear и выбираем Meter, как показано на скриншоте (шаг 1, шаг 2).
- Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3)
Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов:
- Panel -> Perspective -> New
- View -> Camera Settings -> View Compass
Настройка 3D Studio Max
Настройка заключается только в выборе в качестве единиц измерения метров.
- Заходим в меню Customize -> Units Setup... В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters.
- Так же необходимо нажать кнопку System Unit Setup и приравнять условную единицу к метру (т.е. там где "1 Unit = 1,0 в выпадающем списке выбрать Meters. Флажок "Respect System Units in Files" должен быть включен)
Моделирование
Для нашего простейшего уровня нам понадобится создать просто бокс в качестве террейна.
Создадим box размеров 50м*50м*0,1м.
Замечания и правила
- Вся геометрия должна быть создана в реальных мировых размерах (если стол в реальной жизни высотой 1 метр, значит его надо и в Maya делать высотой 1 метр, всё предельно ясно и просто)
- Bounding box персонажа имеет три состояния: стоя (1.8х0.7х0.7 в метрах), сидя (1.5х0.7х0.7 в метрах) и очень сидя (1.2х0.7х0.7 в метрах).
- Весь уровень должен быть не больше 150 тысяч треугольников.
- Сцена должна состоять из групп. Название группы формируется по такому принципу: mp_имяуровня_назвгеометрии. Например, в нашей тестовой сцене такие группы: mp_atp_terrain, mp_atp_buildings. В группе может находится как и один объект, так и несколько. Имена объектов внутри группы никоем образом не должны совпадать с именем группы. В переделах одной группы все имена должны быть уникальны.
- Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект - имя_объекта, шейп - имя_объектаShape
Текстурирование и назначение шейдеров
3D Studio Max
Открываем Material Editor(M) выделив один из образцов материала, открываем диалог Material/Map Browser, щелчком на кнопке Standart. Создадим новый материал XRayMtl, дважды щёлкнув по нему в списке.
Займёмся настройкой параметров материала. X-ray материал, кроме текстуры использует надстройку состоящую из трёх шейдеров - Engine, Compiler, Material.
- Engine - отображение текстуры в движке игры.
- Compiler - используется при компиляции уровня.
- Material - игровой материал (wallmark, sound и др.).
Для начала настроим шейдеры. В Material Editor-e разворачиваем свиток XRay Params. В выпадающих списках представлены различные варианты шейдеров. Более подробно параметры шейдеров рассмотрены в статье Описание шейдеров XRayMtl. Для нашего примера ограничимся установкой следующих значений:
- Engine - default
- Compiler - default
- Material - material/asphalt
Текстурирование заключается в назначении текстуры процедурной карте Diffuse Color. Вообще, в редакторе материалов (В свитке Maps) много процедурных карт, но X-Ray mtl поддерживает (экспортирует) лишь одну, указанную выше. !Важно - чтобы экспорт был, надо назначить карту в кнопку diffuse colour. Можно назначить любую карту формата *tga, так-же важно чтобы размер текстуры (ширина/высота) был равен степени двойки (256, 512 и т.д.).
Надо ли расписать процесс назначения текстуры каналу? Пиши тут. |
Экспорт
3D Studio Max
Для начала выделяем все объекты, которые мы хотим экспортировать в виде единого объекта, т.е. всё, что мы выберем сейчас в редакторе будет представленно как одна модель. В нашем случае это один box.
Переходим на командную панель Utilities, нажимаем кнопку More... В появившемся списке в самом конце видим XRay Export, выбираем, жмём ОК. После запуска модуля на панели появится новый свиток XRay Export, в списке Selected можно проконтролировать какие объекты выбраны, нажимаем кнопку Export Editor Object... cохраняем файл в папку {SDK folder}\import.
Импорт геометрии и текстур в пакет
При экспорте из редактора(Maya && 3D Max) мы получим файлы *.object.
Запускаем Level Editor и добавим нашу геометрию в Objects Library, делается это так: Objects -> Library Editor, откроется диалог Object Library.
Для удобства создадим новую группу для наших объектов, щёлкаем в левой части окна ПКМ и выбираем Create Folder, переименуем в my_first_level. Выделяем группу, и нажимаем кнопку Import Object, ищём наши *.object файлы, после того как объекты добавлены можно посмотреть, как они примерно будут выглядеть в игре, для этого ставим галочку Preview и любуемся нашим объектом. Теперь можно закрыть диалог Object Library.
Если использовали свою текстуру, то её также надо добавить в пакет, Images -> Check New Textures. Данная команда заставляет редактор просмотреть папку SDK/Import и добавить новые файлы в Texture List, файлы должны быть в формате Targa(*.tga). Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша текстура есть в списке текстур редактора. Можно переходить к следующему шагу.
Создаём уровень
Приступим к созданию уровня, начнём с расстановки объектов.
= Расстановка объектов :)
Тутор пока незакончен, так что о подробной работе в редакторе, сохранении и компиляции читаем по ссылке ниже с шага 6
Подключение уровня к игре
Чтобы уровень можно было создавать прямо из игры, его необходимо добавить в список уровней. Существует четыре случая, рассмотрим каждый.
SDK объединён с игрой
В данном случае надо только отредактировать файл gamedata\config\mp\map_list.ltx, вписав в каждой из секции [deathmatch], [teamdeathmatch], [artefacthunt] название своего уровня.
SDK не объединён с игрой, игра распакована
В данном случае надо также отредактировать файл gamedata\config\mp\map_list.ltx, вписав в каждой из секции [deathmatch], [teamdeathmatch], [artefacthunt] название своего уровня + скопировать содержимое папки [SDK folder]\gamedata\levels\название уровня\ в папку [STALKER folder]\gamedata\levels\название уровня\.
SDK не объединён с игрой, игра не распакована
Повторяем действия предыдущего случая, только папки надо будет создавать самому, файл gamedata\config\mp\map_list.ltx можно взять из папки [SDK folder]\gamedata\config\mp\map_list.ltx
SDK не объединён с игрой + использовались свои текстуры
В данном случае необходимо скопировать:
- Текстуры из [SDK folder]\gamedata\textures\user\ в папку [STALKER folder]\gamedata\textures\user\
- Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\