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

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

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

Перейти к: навигация, поиск
м (Плагин для макса)
 
(не показаны 33 промежуточных версий 19 участников)
Строка 1: Строка 1:
{|align=right
+
 
|''Автор:'' '''[[Участник:Neo|Neo][]]'''
+
|}
+
{{Message_box|
+
id =pseudoscience|
+
 
align = center|
 
align = center|
 
backgroundcolor = rgb(235, 235, 255);|
 
backgroundcolor = rgb(235, 235, 255);|
Строка 10: Строка 6:
 
message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}}
 
message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}}
 
__TOC__
 
__TOC__
В данном уроке попытаюсь рассказать о создании полноценного уровня с самого начала. Урок будет представлять из себя расширенную версию туториала, поставляемого в комплекте с редактором. Предполагается осветить не только основы создания уровней, но и охватить такие вопросы как: создание аномалий, воды, стёкол, работа с партиклами и световой анимацией и т.д.
+
В данном уроке попытаюсь рассказать об основах работы с Level Editor-ом пакета SDK, на примере создания простейшего уровня.
  
'''Тутор будет писаться последовательно, т.е. он будет пополняться со временем'''
+
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya или 3D Studio Max.
 
+
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya, почему именно Maya, а не 3D Studio Max? Потому что разработчиками выпущен только плагин для пакета Maya.
+
  
 
== Создание геометрии ==
 
== Создание геометрии ==
 
+
Научить работать в 3D редакторах я не смогу, поэтому подробно остановлюсь только на процессах установки и настройки плагина, текстурировании и назначении шейдеров геометрии.
 
=== Установка и настройка плагина ===  
 
=== Установка и настройка плагина ===  
  
Строка 35: Строка 29:
 
$server_root$ = false| false| e:\sdk\(это путь до папки в которой у вас находится SDK)
 
$server_root$ = false| false| e:\sdk\(это путь до папки в которой у вас находится SDK)
 
$local_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>
 
</pre>
 
Всё, можно пользоваться плагином.
 
Всё, можно пользоваться плагином.
Строка 47: Строка 44:
 
* Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 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: Строка 53:
  
 
==== Настройка 3D Studio Max ====
 
==== Настройка 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" />
  
 
=== Моделирование ===
 
=== Моделирование ===
Работать в пакетах 3D моделирования я к сожалению не смогу научить, поэтому перейду сразу к процессу текстурирования и назначению шейдеров.
+
Для нашего простейшего уровня нам понадобится создать просто бокс в качестве террейна.
  
Хотя процитирую официальную документацию:
+
Создадим box размеров 50м*50м*0,1м.
  
 
==== Замечания и правила ====
 
==== Замечания и правила ====
Строка 70: Строка 73:
 
* Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект - имя_объекта, шейп - имя_объекта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. В выпадающих списках представлены различные варианты шейдеров. Более подробно параметры шейдеров рассмотрены в статье [[Описание шейдеров 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 и т.д.).
 +
После присвоения каналу diffuse colour любой текстуры НЕ ЗАБЫВАЕМ ПРИСВОИТЬ МАТЕРИАЛ НАШЕМУ ТЕРРАЙНУ и сделать Convert to Editable Mesh, иначе будет вылет программы. Делается это двумя способами:
 +
1. Drug&drop материал из слота Material Editor'а на наш box.
 +
2. Нажать кнопку Assign Material to Selection (при условии, что ваш террайн выделен) в редакторе материалов.
 +
З.Ы. Если вы не удовлетворены тем, как текстура легла на террайн, воспользуйтесь модификаторами, например, UVW Map. Затем не забудьте сделать Convert to Editable Mesh!
 +
{{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, сохраняем их в папку {SDK folder}\import.
+
При экспорте из редактора(Maya && 3D Max) мы получим файлы *.object.
  
 
Запускаем Level Editor и добавим нашу геометрию в Objects Library, делается это так: Objects -> Library Editor, откроется диалог Object Library.
 
Запускаем Level Editor и добавим нашу геометрию в Objects Library, делается это так: Objects -> Library Editor, откроется диалог Object Library.
Строка 94: Строка 137:
 
Приступим к созданию уровня, начнём с расстановки объектов.
 
Приступим к созданию уровня, начнём с расстановки объектов.
  
=== Расстановка объектов ===
+
=== Расстановка объектов :) ==
  
 +
Тутор пока незакончен, так что о подробной работе в редакторе,
 +
сохранении и компиляции читаем по ссылке ниже с '''шага 6'''
 +
*[[Maya. Глава 1: Hello World или первый кубик.]]
  
 
== Подключение уровня к игре ==
 
== Подключение уровня к игре ==
Строка 112: Строка 158:
 
*Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\
 
*Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\
  
== Благодарности ==
+
== Ссылки ==
'''OlegatoR''' - за разбор вопроса с аномалиями.
+
 
 +
*[[Описание шейдеров XRayMtl]]
 +
*[[Глобальное озеленение, добавляем траву на уровень]]
 +
*[[Добавляем аномалии на уровень]]
 +
*[[Учимся подвешивать объекты]]
 +
<!--{{Описание шейдеров XRayMtl}}-->
 +
 
  
[[Категория:SDK]][[Категория:Незаконченные статьи]]
+
[[Категория:SDK]]

Текущая версия на 15:01, 10 декабря 2015

align = center| backgroundcolor = rgb(235, 235, 255);| image =Question.gif| heading =Возникли вопросы/предложения| message =Пиши тут.}}

В данном уроке попытаюсь рассказать об основах работы с 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)
Шаг 1: выбираем указанный пункт меню
Шаг 2: выбираем еденицы измерения - метры
Шаг 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
Создание нового материала XRayMtl
Настройка XRay шейдеров материала

Текстурирование заключается в назначении текстуры процедурной карте Diffuse Color. Вообще, в редакторе материалов (В свитке Maps) много процедурных карт, но X-Ray mtl поддерживает (экспортирует) лишь одну, указанную выше. !Важно - чтобы экспорт был, надо назначить карту в кнопку diffuse colour. Можно назначить любую карту формата *tga, так-же важно чтобы размер текстуры (ширина/высота) был равен степени двойки (256, 512 и т.д.). После присвоения каналу diffuse colour любой текстуры НЕ ЗАБЫВАЕМ ПРИСВОИТЬ МАТЕРИАЛ НАШЕМУ ТЕРРАЙНУ и сделать Convert to Editable Mesh, иначе будет вылет программы. Делается это двумя способами: 1. Drug&drop материал из слота Material Editor'а на наш box. 2. Нажать кнопку Assign Material to Selection (при условии, что ваш террайн выделен) в редакторе материалов. З.Ы. Если вы не удовлетворены тем, как текстура легла на террайн, воспользуйтесь модификаторами, например, UVW Map. Затем не забудьте сделать Convert to Editable Mesh!

Question.gif Надо ли расписать процесс назначения текстуры каналу?
Пиши тут.

Экспорт

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

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

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

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

= Расстановка объектов :)

Тутор пока незакончен, так что о подробной работе в редакторе, сохранении и компиляции читаем по ссылке ниже с шага 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\

Ссылки

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