Создание уровня, пошаговое руководство — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Создание уровня, пошаговое руководство — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Текстурирование и назначение шейдеров)
м (Материал)
Строка 10: Строка 10:
 
message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}}
 
message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}}
 
__TOC__
 
__TOC__
В данном уроке попытаюсь рассказать о создании полноценного уровня с самого начала. Урок будет представлять из себя расширенную версию туториала, поставляемого в комплекте с редактором. Предполагается осветить не только основы создания уровней, но и охватить такие вопросы как: создание аномалий, воды, стёкол, работа с партиклами и световой анимацией и т.д.
+
В данном уроке попытаюсь рассказать об основах работы с Level Editor-ом пакета SDK, на примере создания простейшего уровня.
 
+
'''Тутор будет писаться последовательно, т.е. он будет пополняться со временем'''
+
  
 
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya, почему именно Maya, а не 3D Studio Max? Потому что разработчиками выпущен только плагин для пакета Maya.
 
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya, почему именно Maya, а не 3D Studio Max? Потому что разработчиками выпущен только плагин для пакета Maya.
  
 
== Создание геометрии ==
 
== Создание геометрии ==
 
+
Научить работать в 3D редакторах я не смогу, поэтому подробно остановлюсь только на процессах установки и настройки плагина, текстурировании и назначении шейдеров геометрии.
 
=== Установка и настройка плагина ===  
 
=== Установка и настройка плагина ===  
  
Строка 47: Строка 45:
 
* Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3)
 
* Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3)
 
{|
 
{|
|valign=top|[[Изображение:SantimToM1.gif|thumb|Шаг 1: выбираем указанный пункт меню]]
+
|valign=top|[[Изображение:SantimToM1.gif|thumb|400px|Шаг 1: выбираем указанный пункт меню]]
|valign=top|[[Изображение:SantimToM2.gif|thumb|left|Шаг 2: выбираем еденицы измерения - метры]]
+
|valign=top|[[Изображение:SantimToM2.gif|thumb|400px|Шаг 2: выбираем еденицы измерения - метры]]
|valign=top|[[Изображение:SantimToM3.gif|thumb|left|Шаг 3: настраиваем камеру]]
+
|valign=top|[[Изображение:SantimToM3.gif|thumb|400px|Шаг 3: настраиваем камеру]]
 
|}
 
|}
 
Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов:
 
Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов:
Строка 56: Строка 54:
  
 
==== Настройка 3D Studio Max ====
 
==== Настройка 3D Studio Max ====
Настройка содержит два шага:
+
Настройка заключается только в выборе в качестве единиц измерения метров.
 
*Заходим в меню Customize -> Units Setup... В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters.
 
*Заходим в меню Customize -> Units Setup... В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters.
*Заходим в меню Customize -> Grid and Snap settings...
+
[[Изображение:3d-max-unit-setup.gif|thumb|left|400px|Меняем единицы измерения]]
{|
+
<br clear="both" />
|valign=top|[[Изображение:3d-max-unit-setup.gif|thumb|Меняем единицы измерения]]
+
|valign=top|[[]]
+
|}
+
 
+
 
=== Моделирование ===
 
=== Моделирование ===
Работать в пакетах 3D моделирования я к сожалению не смогу научить, поэтому перейду сразу к процессу текстурирования и назначению шейдеров.
+
Для нашего простейшего уровня нам понадобится создать просто бокс в качестве террейна.
  
Хотя процитирую официальную документацию:
+
Создадим box размеров 50м*50м*0,1м.
  
 
==== Замечания и правила ====
 
==== Замечания и правила ====
Строка 77: Строка 71:
 
* Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект - имя_объекта, шейп - имя_объектаShape
 
* Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект - имя_объекта, шейп - имя_объекта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. В выпадающих списках представлены различные варианты шейдеров.
 +
 
 +
{|
 +
|valign=top|[[Изображение:3d-max-create-xraymtl.gif|thumb|400px|Создание нового материала XRayMtl]]
 +
|}
  
 
== Импорт геометрии и текстур в пакет ==
 
== Импорт геометрии и текстур в пакет ==
Строка 119: Строка 123:
 
*Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\
 
*Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\
  
== Благодарности ==
+
== Приложение ==
'''OlegatoR''' - за разбор вопроса с аномалиями.
+
 
 +
=== Описание шейдеров ===
 +
 
 +
 
  
 
[[Категория:SDK]][[Категория:Незаконченные статьи]]
 
[[Категория:SDK]][[Категория:Незаконченные статьи]]

Версия 10:31, 29 мая 2007

Автор: Neo][
Question.gif Возникли вопросы/предложения
Пиши тут.

В данном уроке попытаюсь рассказать об основах работы с Level Editor-ом пакета SDK, на примере создания простейшего уровня.

В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya, почему именно Maya, а не 3D Studio Max? Потому что разработчиками выпущен только плагин для пакета Maya.

Создание геометрии

Научить работать в 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)

Всё, можно пользоваться плагином.

Настройка единиц измерения

Для того, чтобы размеры объектов в редакторе совпадали с теми, что используются в X-Ray SDK, необходимо выполнить соответствующую настройку.

Настройка Maya

Для начала необходимо единицы измерения перевести в метры (по умолчанию в Maya 8.5 используются сантиметры). Делается это в 2 этапа:

  • Заходим в меню Window -> Settings/Preferences -> Preferences. В открывшемся диалоге, в категории Settings, находим список Working Units -> Linear и выбираем Meter, как показано на скриншоте (шаг 1, шаг 2).
  • Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3)
Шаг 1: выбираем указанный пункт меню
Шаг 2: выбираем еденицы измерения - метры
Шаг 3: настраиваем камеру

Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов:

  • Panel -> Perspective -> New
  • View -> Camera Settings -> View Compass

Настройка 3D Studio Max

Настройка заключается только в выборе в качестве единиц измерения метров.

  • Заходим в меню Customize -> Units Setup... В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters.
Меняем единицы измерения


Моделирование

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

Создадим 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

Импорт геометрии и текстур в пакет

При экспорте из редактора(Maya && 3D Max) мы получим файлы *.object, сохраняем их в папку {SDK folder}\import.

Запускаем 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). Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша текстура есть в списке текстур редактора. Можно переходить к следующему шагу.

Диалог Object Library
Создание группы для объектов
Диалог импорта текстур

Создаём уровень

Приступим к созданию уровня, начнём с расстановки объектов.

Расстановка объектов

Подключение уровня к игре

Чтобы уровень можно было создавать прямо из игры, его необходимо добавить в список уровней. Существует четыре случая, рассмотрим каждый.

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\

Приложение

Описание шейдеров

Другие места
LANGUAGE