на главную страницу -|- к архиву статей
Территория
Файлы
Статьи и дополнительная информация
Гостевая книга
Команда

СОЗДАНИЕ ДОПОЛНЕНИЙ В 3D Studio MAX

ЧАСТЬ I

Введение: В данных уроках, я попытаюсь обьясьнить как создавать дополнения для НВН, однако здесь вы не найдете информации о тонкостях создания моделей в 3D Studio MAX - это тема отдельной статьи.
(Так же хочу предупредить, что всё о чём написано в этом цикле статей - это сугубо мой личный опыт и возможно во многих вещах я допустил ошибки. ......Ice Blade)

Содержание:

1.Тайлсеты.
2.Персонажи.
3.Оружие.
4.Размещаемые обьекты(Placeables).
5.Расы.
6.Классы.
7.Скилы.
8.Фиты.

От себя: Чтобы так сказать в комплексе показать создание модификации НВН, я решил создать из Невера - что-то вроде Fallout(ну и что, что не фентези - зато как глобально а?), чтобы продемонстрировать возможности и открытость игрового движка НВН.

Глава первая.


Создание Тайлсетов.

Содержание:
1.Создание тайлов местности.
2.Создание групп.
3.Создание дорог и стен.
4.Создание особеностей.

Создание тайлов местности.


Так как создавать будем Fallout нам потребуется тайлсет для пустыни. Ну чтож приступим в 3DS MAX, я создал следуюшие тайлы:

- пустой тайл(у меня он называется N01_OSN) - он будет основой для тайлсета.

Но идеально ровная пустыня - это как-то уж слишком примитивно, по этому надо бы добавить какких-нибудь дюн.
Для этого потребуются еще несколько тайлов:


- Верхний угловой тайл (N01_UGV).

- Центр стороны(N01_CE)

- Нижний угловой тайл (N01_UGN).

- двойной угол (N01_DVUG).

Вот собственно и все тайлы которые нам нужны.

Для прописания их в НВН нам потребуется создать 2 файла *.set и *stdplt.itp, где * - пусть будет N01

N01.set :

В этом файле описываются наиболее важные характеристики тайлсета.

В начале нужно описать обшее характеристики тайлсета в след-й очередности:

[GENERAL]
Name=N01 - имя таилсета.
Type=SET - тип
Version=V0.2 - версия( необязательно).
Interior=0 - если незнаете ставьте 0
HasHeightTransition=1 - высотные переходы.У нас он только один (тайл поднимается на один уровень, но вот
количество этих уровней мы не ограничеваем).
EnvMap=ttr01__ref01 - Текстура отражения по умолчанию.
Transition=2,5 - высота перехода тайла (дюны у нас поднимаются примерно на половину высоты
обычных НВН-х тайлов)
DisplayName=68728 - имя в Тулсете (Вписываем итендификатор из Dialog.tlk)
Border=Desert
Default=Desert
Floor=Desert - типы местности поумолчанию и за границей модуля.

[TERRAIN TYPES]
Count=1

[TERRAIN0]
Name=Grass
StrRef=63635 - описываем типы местности (у на только один тип песок). В StrRef пишем ID из
Dialog.tlk.

[PRIMARY RULES]
Count=0

[SECONDARY RULES]
Count=0 - у нас нет нескольких однотипныт тайлов, поэтому описывать правила размещения не
имеет смысла.

[TILES]
Count=5 - чосло тайлов в нашем тайлсете.

А теперь приступим к описанию каждого тайла в отдельности:

[TILE0]
Model=N01_UGV - имя нашего тайла (верхний угол).
WalkMesh=msb01 - пишите тоже что у меня.
TopLeft=Desert - тип местности с которым стыкуется угол
TopLeftHeight=1 - этот угол у нас на высоте
TopRight=Desert
TopRightHeight=0
BottomLeft=Desert
BottomLeftHeight=0
BottomRight=Desert
BottomRightHeight=0 - остальные углы внизу.
Top=
Right=
Bottom=
Left=
MainLight1=1
MainLight2=1
SourceLight1=1
SourceLight2=1
AnimLoop1=1
AnimLoop2=1
AnimLoop3=1
Doors=0
Sounds=0
PathNode=B
Orientation=0
ImageMap2D=MI_temp01 - здесь указываете иконку для миникарты.

[TILE1]
Model=N01_CE - имя модели(Центр стороны)
WalkMesh=msb01
TopLeft=Desert -тип местности (он у нас один).
TopLeftHeight=1 -этот угол на высоте.
TopRight=Desert
TopRightHeight=1 -этот угол на высоте.
BottomLeft=Desert
BottomLeftHeight=0 -этот угол внизу.
BottomRight=Desert
BottomRightHeight=0 -этот угол внизу.
Top=
Right=
Bottom=
Left=
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=C
Orientation=0
ImageMap2D=MI_temp01

[TILE2]
Model=N01_UGN - модель(Нижний угловой тайл) N01_UGN
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=1 -этот угол на высоте.
TopRight=Desert
TopRightHeight=1 -этот угол на высоте.
BottomLeft=Desert
BottomLeftHeight=1 -этот угол на высоте.
BottomRight=Desert
BottomRightHeight=0 -этот угол внизу.
Top=
Right=
Bottom=
Left=
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=B
Orientation=0
ImageMap2D=MI_temp01

[TILE3]
Model=N01_DVUG - Модель(двойной угол).
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=1 -этот угол на высоте.
TopRight=Desert
TopRightHeight=0 -этот угол внизу.
BottomLeft=Desert
BottomLeftHeight=0 -этот угол внизу.
BottomRight=Desert
BottomRightHeight=1 -этот угол на высоте.
Top=
Right=
Bottom=
Left=
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=O
Orientation=0
ImageMap2D=MI_temp01

[TILE4]
Model=N01_OSN -Модель(пустой тайл)
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=0 -этот угол внизу.
TopRight=Desert
TopRightHeight=0 -этот угол внизу.
BottomLeft=Desert
BottomLeftHeight=0 -этот угол внизу.
BottomRight=Desert
BottomRightHeight=0 -этот угол внизу.
Top=
Right=
Bottom=
Left=
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=O
Orientation=0
ImageMap2D=MI_temp01


Здесь и заканчиваеться (на данный момент) SET-й файл.

Теперь itp.

N01palstd.itp

Для работы с Itp, нам понадобиться ITP Tools.

Этот файл несет в себе палитру для нашего тайлсета.

И так, запустив ITP Tools и загрузив( или создав ( я рекомендую грузить Itp-шник от TMS-овского тайлсета - найти его можно в Templates.bif) вы увидете примерно следуюшее:

(описание: Unit32 StrRef - ID из Dialog.tlk
ResRef ResRef - название для палитры(местность, группа, и.т.д.) .

В загруженном ITP в особенностях и группах удалите всё что есть так чтобы оставался пустой LIST LIST(потом конечно мы туда много чего добавим).
В местности должны остаться только eraiser, grass и raiselower.
Затем в местности в место grass вписываем desert, а в Unit32 StrRef вписываем ID из Dialog.tlk -(песок),
посе Itp должен выглядеть примерно так:

Здесь в общем-то и всё с тайлами местности (незабудьте создать(изменить) ID из Dialog.tlk).

(Смело заганяйте все в OVERIDE(для проверки) или если уже все закончили то в HAK.)

У вас должен получиться тайлсет для работы с такой вот местностью:

Создание групп.


Создание групп впринцепе не слишком отличается от создания обычной местности.
Пустыня без нечего, как-то не интерестно поэтому надо бы добавить туда какой нибудь БУНКЕР.


Значит берем бункер



он состоит из 9-и тайлов

В N01.set описываем каждый тайл, где все углы нижние
Например:
[TILE5]
Model=N01_BUNK_01 -Модель(угол бункера)
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=0 -этот угол внизу.
TopRight=Desert
TopRightHeight=0 -этот угол внизу.
BottomLeft=Desert
BottomLeftHeight=0 -этот угол внизу.
BottomRight=Desert
BottomRightHeight=0 -этот угол внизу.
Top=
Right=
Bottom=
Left=
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=O
Orientation=0
ImageMap2D=MI_temp01

В конце нашего файла (после описания тайлов) пишем след-е:

[GROUPS]
Count=1 - число групп (особенности тоже групы).

[GROUP0]
Name=Bunker_3x3
StrRef=68731
Rows=3 - число столбцов.
Columns=3 - число колонок.
Tile0=5
Tile1=6
Tile2=7
Tile3=8
Tile4=9
Tile5=10
Tile6=11
Tile7=12
Tile8=13 - печесляем тайлы (цифра это номер в описании тайла) которые входят в группу
(очередность имеет особое значение).

Затем в ITP:
В группах
Unit32 StrRef - ссылка на ID
ResRef ResRef - указываете имя модели центрального тайла (вокруг него будет осуществляться поворот).

С группами всё.

Создание дорог и стен.

Теперь давайте сделаем стену для базы(что, уж мелочиться сделаем большую и толстую, железную стену).
Для это нам понадобяться минимум след-е тайлы:

- конец стены.

- центральная часть стены.

- угол стены.

- перекрёсток.

-развилка.

Приступим:

N01.set:
Сразу после описания типов местности (
[TERRAIN TYPES]
Count=1

[TERRAIN0]
Name=Desert
StrRef=63635 )

Вставляем:
[CROSSER TYPES]
Count=1 - Количество перекрёстков.

[CROSSER0]
Name=Wall
StrRef=63301 -описание перекрёстка.

а затем в описаниях тайлов, так же как и обычно описываем тайл но с некоторыми изменениями:
[TILE14]
Model=n01_w01_02 - имя модели(центральная часть стены).
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=0
TopRight=Desert
TopRightHeight=0
BottomLeft=Desert
BottomLeftHeight=0
BottomRight=Desert
BottomRightHeight=0
Top=Wall - а вот сдесь указываем с какой стороны, что должно быть приделанно к этому тайлу.( данное
значение значит что с этой стороны должна быть присоединена стена.)
Right= - здесь стена отсутствует и может быть присоединён любой тайл.
Bottom=Wall - аналогично Top.
Left=
MainLight1=1
MainLight2=1
SourceLight1=1
SourceLight2=1
AnimLoop1=1
AnimLoop2=1
AnimLoop3=1
Doors=0
Sounds=0
PathNode=C
Orientation=0
ImageMap2D=MI_temp01

Теперь Itp:
В местность добавляем новый элемент и пишем:
Unit32 StrRef - ссылка на ID
ResRef ResRef - указываете имя перекрёстка в set-ом файле.

Со стеной всё!!

Дороги делаються аналогично стенам.

Создание особеностей.


Создание особеностей во многом похоже на создание групп.
И так у нас есть стена по которой можно ходить, но вот зайти на неё невозможно - по этому думаю надо сделать лестницу.
Лесница у стены будет немного длинее чем один тайл по этому будет состоять из двух тайлов(но в целом группа особеностей может состоять и из одного тайла):

и

N01.set:

Прописываем тайлы:
[TILE19]
Model=N01_LESN_U -Модель(Верхняя часть лестницы)
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=0
TopRight=Desert
TopRightHeight=0
BottomLeft=Desert
BottomLeftHeight=0
BottomRight=Desert
BottomRightHeight=0
Top=
Right=Wall - с каких сторон должна идти стена.
Bottom=
Left=Wall
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=O
Orientation=0
ImageMap2D=MI_temp01

[TILE20]
Model=N01_LESN_D -Модель(Нижняя часть лестницы)
WalkMesh=msb01
TopLeft=Desert
TopLeftHeight=0
TopRight=Desert
TopRightHeight=0
BottomLeft=Desert
BottomLeftHeight=0
BottomRight=Desert
BottomRightHeight=0
Top=
Right=
Bottom=
Left=
MainLight1=0
MainLight2=0
SourceLight1=0
SourceLight2=0
AnimLoop1=0
AnimLoop2=0
AnimLoop3=0
Doors=0
Sounds=0
PathNode=O
Orientation=0
ImageMap2D=MI_temp01

Затем в группы добавляем:

[GROUP1]
Name=UPwall
StrRef=68733
Rows=2
Columns=1
Tile0=20
Tile1=19

Теперь ITP
В особенности добавляем новый элемент со след-ми значениями :
Unit32 StrRef - ссылка на ID
ResRef ResRef - указываете имя модели центрального тайла.

Всё теперь тайлсет закончен!!!!!!!

Глава вторая.


Создание персонажей.


У нас есть тайлсет, но орки и демоны на фоне бункеров и укреплений - смотряться как-то нелепо, согласитесь?
И так в МАХ-е сделали модель пехотинца(я еще немно подправил файлы с анимацией персонажей, чтобы винтовка, о которой реч пойдет позже, не смотрелась глупо):


-теперь надо её прописать!!

Открываем Apperance.2da
и в конец файла добавляем сточку:
ID 300 -последний.
Label Peh -имя
STRING_REF 68735 -ID из Dialog.tlk
NAME Peh -принадлежность
RACE c_peh - модель
ENVMAP default
BLOODCOLR R
MODELTYPE F
WEAPONSCALE 1
WING_TAIL_SCALE 1
HELMET_SCALE_M 1
HELMET_SCALE_F 1
MOVERATE NORM
WALKDIST 1.6 -т.к модель размером с обычного человека.
RUNDIST 2.7
PERSPACE 0.3
CREPERSPACE 0.5
HEIGHT 1
HITDIST 0.3
PREFATCKDIST 1.7
TARGETHEIGHT H
ABORTONPARRY 1
RACIALTYPE 11
HASLEGS 1
HASARMS 1
PORTRAIT ****
SIZECATEGORY 3
PERCEPTIONDIST 9
FOOTSTEPTYPE 0
SOUNDAPPTYPE 0
HEADTRACK 1
HEAD_ARC_H 60
HEAD_ARC_V 30
HEAD_NAME head_g
BODY_BAG 6
TARGETABLE 1

закатывайте Apperance в overide и увидете новую модель персонажа.(более подробное описание apperance см. в приложении).

Глава третья.


Оружие.


Персонаж есть, но вооружен луком?!!!! - нееет надо и его хотябы заменить.
Есть модель оружия и его иконка.

Прописать её можно так (у меня были некоторые проблемы с вводом нового дистанционного оружия -с обычным всё в норме).
Baseitems.2da
Не будем мучаться и просто введем некоторые корективы в тяжелый арбалет, а в частности
Label vint - имя
Name 68736 - имя в игре.
ModelType 0 - т.к. у нас модель+иконка.
ItemClass vint -модель

(описание Baseitems.2da см. в приложении.)

Теперь у нас почти новая игра.......- но есть еще многое, что нужно по-меньшей мере переделать.


Продолжение следует........(если оно потребуется).

 


Приложения и скриншоты >>>

 

 

Внимание!
Данный текст является интеллектуальной собственностью. Любое цитирование материалов допустимо только со ссылкой на наш сайт!

 


Design by DBColl - 2003 -
Hosted by uCoz