Сегодня мы с вами научимся создавать костюмы для игры на примере нано-костюма . Добавлять его мы будем в Народную Солянку.
Для создания костюма нам нужно:
1. иконка костюма, которая будет отображаться в инвенаре;
2. визуал костюма ( делятся на два: модель костюма, лежащего на земле и модель игрока, одетого в костюм);
3. добавить сам костюм в игру;
4. добавить описание нашего костюма;
5. сама текстура нашего костюма;
6. прописать процент хита, который доносится до объекта при попадании.
Итак, по порядку:
Файл gamedata\textures\ui\ui_icon_equipment.dds содержит иконки предметов, отображаемые в инвентаре.
Для создания нам понадобится Adobe Photoshop и плагин для работы с .dds-изображениями.
Открываем наш файл. Иконки расположены по сетке 50х50 пикселей. Чтобы включить её отображение, зайдите в меню:
Редактирование -> Установки -> Направляющие, сетка и фрагменты и установите в нем следующие значения:
Линия через каждые: 50
Единицы измерения: пиксели
Внутреннее деление на: 1
После чего выберите пункт:
Просмотр -> Показать -> Сетку
Теперь сетка правильно настроена и отображается. Выберем место для иконки.
Иконка будет размером 2х6, то есть 100х300 пикселей, так как это стандартный размер иконки для брони.
Теперь рисуем саму иконку: можно либо с нуля нарисовать свою, либо найти в интернете фото сложенного костюма(или в рост), либо взять уже имеющуюся иконку, к примеру экзоскелета и изменить её на своё усмотрение.
Если берём иконку в инете, то:
Находим качественную фотографию костюма с однородным фоном, открываем её в Photoshop, выделяем с помощью второго вида инструмента "Лассо"( Ctrl+C). Открываем файл с иконками, нажимаем Ctrl+V, далее нажимаем Ctrl+T, зажимаем Shift ("Сохранение пропорций") и тянем за край выделения, сжимая изображение до нужного размера.
После чего применяем трансформацию, перетаскиваем изображение на нужное место и нажимаем Shift+Ctrl+E ("Слить слои").
Теперь иконке изменим и альфа-канал:
Выделяем иконку оружия и перейдем в окне со слоями на закладку:
Каналы -> Alpha
После чего заливаем выделение белым. Мы сделали иконке альфа-канал.
Теперь нужно сохранить файл в правильном формате.
Выбираем:
Файл -> Сохранить
И выставляем в появившемся окне следующие настройки:
Скрин:
Проверяем выставлены ли параметры
Save Format: DXT5 (Interpolated Alpha)
MIP maps: No MIP maps
Теперь надо присвоить её нашему костюму. Но это чуть позже.
2. МОДЕЛИ:
Новых моделей мы делать не станем, просто воспользуемся дублированными моделями костюмов.
Так как у нас нано-костюм то модели берём:
gamedata\meshes\equipments\stalker_nano_suit.ogf --- Это модель костюма лежащего на земле.
gamedata\meshes\actors\nano\stalker_nano.ogf --- Это модель игрока, одетого в костюм.
P.S. для других костюмов берём соответствующюю модель и даём ей свое название.
3. ТЕПЕРЬ, ЧТОБЫ ДОБАВИТЬ НАШ КОСТЮМ В ИГРУ ЕГО НАДО ПРОПИСАТЬ В ФАЙЛЕ outfit.ltx :
Откраваем файл outfit.ltx, он находится по пути: gamedata\config\misc\
И прописываем в этом файле:
;--------------------------------------------------------------------------------------------- ; Нанозащитный костюм ;--------------------------------------------------------------------------------------------- [nano_outfit]:outfit_base ; имя секции нашей брони GroupControlSection = spawn_group $spawn = "outfit\exo_outfit" $prefetch = 32 class = E_STLK cform = skeleton visual = equipments\stalker_nano_suit.ogf ; модель костюма, лежащего на земле (стандартно в папке gamedata\meshes\equipments) actor_visual = actors\nano\stalker_nano.ogf ;модель игрока, одетого в костюм (стандартно в папке gamedata\meshes\actor\hero , но в нашем случае это другой путь) ef_equipment_type = 5 ; предпочтительность одевания брони НПС (не используется) cost = 160000 ; ну это и так понятно - цена inv_name = nano_outfit_name ; ссылка на строку, содержащую название костюма в файле string_table_outfit.xml inv_name_short = nano_outfit_name ; ссылка на строку с названием костюма на земле description = nano_outfit_description ; ссылка на строку с описанием костюма power_loss = 0.01 power_restore_speed = 0.0036 health_restore_speed = 0.0036 bleeding_restore_speed = -0.006 satiety_restore_speed = 0.0002 inv_weight = 12.0 ; вес ( в кг) slot = 6 ;слот, на который цепляем костюм (для брони всегда 6) inv_grid_width = 2 ; размер иконки по оси X inv_grid_height = 3 ; размер иконки по оси Y inv_grid_x = 24 ; координата X левого верхнего угла иконки инвентаря из файла gamedata\textures\ui\ui_icon_equipment.dds inv_grid_y = 22 ; координата Y левого верхнего угла иконки инвентаря из файла gamedata\textures\ui\ui_icon_equipment.dds full_scale_icon = 24,0 ;иконка игрока в полный рост в инвентаре (стандартно из файла gamedata\textures\ui\ui_icons_название костюма.dds) full_icon_name = npc_icon_nano_outfit ;имя иконки immunities_sect = sect_nano_outfit_immunities ; ссылка на секцию износостойкости костюма( стандартно находится после коэфициентов защиты) ; NANO RESISTANCE ;показатели защиты игрока нашим костюмом(чем больше, тем будет больше защита) burn_protection = 0.8 ; ожог strike_protection = 0.75 ; удар shock_protection = 0.8 ;электрошок wound_protection = 0.75 ; разрыв radiation_protection = 0.8 ; радиация telepatic_protection = 0.8 ; телепатия chemical_burn_protection = 0.8 ; химический ожог explosion_protection = 0.75 ; взрыв fire_wound_protection = 0.75 ; пулестойкость bones_koeff_protection = nano_helmet_damage ;описано чуть ниже в 6 пункте sprint_allowed = true ; можно ли бегать в костюме- да (true),нет (false) [sect_nano_outfit_immunities] ; секция износостойкости самого костюма(чем меньше, тем медленне костюм будет "портиться". А если 0 то вечный костюм) burn_immunity = 0.08 strike_immunity = 0.075 shock_immunity = 0.08 wound_immunity = 0.075 radiation_immunity = 0.08 telepatic_immunity = 0.08 chemical_burn_immunity = 0.08 explosion_immunity = 0.075 fire_wound_immunity = 0.075
PS: Примечания вместе с ; можно удалить(это описание параметров).
PPS: Имя иконки берется из файла \gamedata\config\ui\ui_icons_npc.xml .
И если костюм новый, то иконка в полный рост тоже новая. И сначала она добавляется в файл \gamedata\textures\ui\ui_icons_название костюма.dds (вообще можно создать любой файл), а потом создается для нее профиль в ui_icons_npc.xml такого содержания:
<texture id="npc_icon_nano_outfit" x="289" y="1707" width="130" height="330"/>
А если иконка полного роста не важна, то просто берется нужный айди из ui_icons_npc.xml .
4. ОПИСАНИЕ НАШЕГО КОСТЮМА:
Открываем файл string_table_outfit.xml по пути: gamedata\config\text\rus
И в конце, НО ОБЯЗАТЕЛЬНО ДО !!! закрывающего тега:
</string_table>дописываем следующее:
<string id="nano_outfit_description"> [code]<text>%c[255,1,255,255]Удар:%c[255,1,255,1] +75%\n%c[255,1,255,255]Разрыв:%c[255,1,255,1] +75%\n%c[255,1,255,255]Взрыв:%c[255,1,255,1] +75%\n%c[255,1,255,255]Пулестойкость:%c[255,1,255,1] +75%\n%c[255,1,255,255]Ожог:%c[255,1,255,1] +80%\n%c[255,1,255,255]Хим.ожог:%c[255,1,255,1] +80%\n%c[255,1,255,255]Электрошок:%c[255,1,255,1] +80%\n%c[255,1,255,255]Здоровье:%c[255,1,255,1] +800\n%c[255,1,255,255]Кровотечение:%c[255,1,255,1] -200%\n%c[255,1,255,255]Радиация:%c[255,1,255,1] +80%\n%c[255,1,255,255]Телепатия:%c[255,1,255,1] +80%\n%c[default] Это очень редкий костюм! Сталкер по имени volazar нашёл его в лаборатории под Саркофагом. Это первый и единственный прототип Нано костюма, разработанный на основе ПСЗ-9. В дальнейшем от его производства отказались из-за дороговизны материалов и исчезнувших редких артефактов. Это замечательный защитный костюм для Зоны, поскольку он комбинирует превосходные защитные свойства от аномалий, великолепную пулестойкость, защиту от пси-излучений и может восстанавливать ваше здоровье. Берегите его! Больше такого костюма вы нигде не найдёте, ведь он существует в единственном экземпляре!</text> </string> <string id="nano_outfit_name"> <text>Нано костюм</text> </string>
Теперь у нас есть описание!
5. ТЕКСТУРА НАШЕГО КОСТЮМА:
Можно поступить также, как и с иконкой костюма. Я взял текстуру из SIMBION MOD-а :
act_nanosuit_dark.dds act_nanosuit_bump.dds act_nanosuit_bump#.ddsВсё это лежит по пути: gamedata\textures\act\
6.НУ ЧТО, НАМ ОСТАЛОСЬ ПРОПИСАТЬ ПРОЦЕНТ ХИТА, КОТОРЫЙ ДОНОСИТСЯ ДО ГГ( ЛИБО ДО ДРУГОГО NPC) ОДЕТОГО В КОСТЮМ ПРИ ПОПАДАНИИ В НЕГО:
Идём по пути: gamedata\config\creatures\ и находим там файл: damages.ltx .
Открываем его и после строчки:
;***************************************************************
; BODY SECTIONS
;***************************************************************
Прописываем следующее:
[body_nano_damage] bip01_pelvis = 1.0, 0.75 bip01_spine = 1.0, 0.75 bip01_spine1 = 1.0, 0.75 bip01_spine2 = 1.0, 0.75 bip01_l_clavicle = 1.0, 0.75 bip01_l_upperarm = 1.0, 0.75 bip01_l_forearm = 1.0, 0.75 bip01_l_hand = 1.0, 0.75 bip01_r_clavicle = 1.0, 0.75 bip01_r_upperarm = 1.0, 0.75 bip01_r_forearm = 1.0, 0.75 bip01_r_hand = 1.0, 0.75 bip01_l_thigh = 1.0, 0.75 bip01_l_calf = 1.0, 0.75 bip01_l_foot = 1.0, 0.75 bip01_r_thigh = 1.0, 0.75 bip01_r_calf = 1.0, 0.75 bip01_r_foot = 1.0, 0.75
;***************************************************************
; HEAD SECTIONS
;***************************************************************
Прописываем следующее:
[head_nano_damage] bip01_neck = 1.0, 0.45 bip01_head = 1.0, 0.45 eyelid_1 = 1.0, 0.45 eye_left = 1.0, 0.45 eye_right = 1.0, 0.45 jaw_1 = 1.0, 0.45
;***************************************************************
; FULL SECTIONS
;***************************************************************
Прописываем следующее:
[nano_helmet_damage]:body_nano_damage,head_nano_damage hit_fraction = 0.05ПОЗДРАВЛЯЮ, МЫ ЗАКОНЧИЛИ СОЗДАНИЕ КОСТЮМА!!!
Вот этот самый костюм( ставить на Народную Солянку!):
Нано - костюм
Скрины:
Выражаю благодарность volazar за составленный текст.
Edited by Fagot, 22 December 2013 - 09:10.