Воскресенье, 05.05.2024, 23:04 | Приветствую Вас Гость

fan-сайт

Каталог статей

Главная » Статьи » Статьи

Создание/редактирование артефактов
Создание/редактирование артефактов

Распишу по пунктам как добавить например к "огненому шару" аномалию Жарка... 
Открываете файл: gamedata/config/misc/artefacts.ltx 
И там в самом начале файла такая секция: 
Код:
;Артефакты, которые при активизации создают аномальные зоны
;формат: {секция_артефакта} = {секция_зоны},Radius,Power
[artefact_spawn_zones]
af_medusa = zone_mosquito_bald_weak, 2.0, 30.0


Обозначает что артефакт af_medusa при активации создаст аномальную зону zone_mosquito_bald_weak с радиусом 2 метра и мощностью 30 (возможно влияет и на время жизни аномалии) 
Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0 
и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0 
В принципе можно прописать там не статик а zone_zharka_weak незнаю что из них правильнее использовать... статик работает тоже.В той-же папке есть файл zone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static. 
После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии. 
А это всё там же в начале файла чуть ниже того где вы добавили новый артефакт в список есть такие строчки: 
Код:
[af_activation_gravi]
;----------------------------------------------------------------------------------------------------------------------------------------
;format:                        time(sec),    sound_name,                 light_R,G,B,      light_range,        particle_name,                        af_animation_name
;----------------------------------------------------------------------------------------------------------------------------------------
starting                    =    5.0,        anomalygravi_idle00,    0.5, 1.0, 1.5,      5.0,            "anomaly2artefact_gravi_blast_start",    "idle"
flying                        =    2.0,        anomalygravi_idle01,    0.8, 1.0, 1.2,      3.0,            "anomaly2artefactartefact_gravi",                "idle"
idle_before_spawning        =    5.0,        anomalygravi_blowout5,    1.0, 1.0, 1,        0.0,            "anomaly2artefact_gravi_blast_finished",    "idle"                
spawning                    =    1,          anomalygravity_entrance,    0.9, 1.1, 1.01,      0.0,        "",        "idle"


Что как раз и описывает анимацию.. 
По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно... потому что нам сейчас важна не красота а работоспособность.... Так вот... из заголовка "[af_activation_gravi]" берем название последовательности af_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию) 
Найдете что-то вроде: 
Код:
[af_fireball]:af_base
GroupControlSection    = spawn_group
$spawn             = "artifactszharka fireball"
$npc            = on                ; option for Level Editor
;$prefetch         = 3
cform           = skeleton
class           = ARTEFACT

visual                = physicsanomalyartefact_fire.ogf
description            = enc_zone_artifact_af-fireball
inv_name            = af-fireball

И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi 
И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunities вместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; зоначает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать. 
В игре берем артефакт в первый слот и активируем. 


Сегодня мы на примере научимся созданию новых артефактов. Создадим, например, артефакт под названием "Ромашка". 

Статья написана по материалам Hunter Mod.

Создание конфига

Заходим в папку gamedata\config\misc и открываем файл artefacts.ltx.
И находим, например, артефакт "Медуза":

Код:
[af_medusa]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito medusa"

$prefetch = 64
cform = skeleton
class = ARTEFACT

visual = physics\anomaly\artefact_blackdrip.ogf  
description = enc_zone_artifact_af-medusa
inv_name = af-medusa
inv_name_short
inv_weight = 0.5

inv_grid_x = 9
inv_grid_y = 4

cost = 1000

jump_height = .5

particles = anomaly2\artefact\artefact_gravi

lights_enabled = false


;скорости увеличения (уменьшения) 
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_medusa_absorbation

artefact_activation_seq = af_activation_bold

[af_medusa_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета 
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity  = 0.98


В этой секции задаются параметры артефакта, начиная от внешнего вида и заканчивая коэффициентами различных эффектов вроде вывода радиации. Сделаем копию секции, принадлежающей "Медузе", и заменим её название с af_medusa на af_romashka.

Должно выйти примерно вот так:

Код:
[af_romashka]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito romashka"

$prefetch = 64
cform = skeleton
class = ARTEFACT

visual = physics\anomaly\artefact_blackdrip.ogf  
description = enc_zone_artifact_af-romashka
inv_name = af-romashka
inv_name_short
inv_weight = 0.5

inv_grid_x = 9
inv_grid_y = 4

cost = 1000

jump_height = .5

particles = anomaly2\artefact\artefact_gravi

lights_enabled = false


;скорости увеличения (уменьшения) 
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_romashka_absorbation

artefact_activation_seq = af_activation_bold

[af_romashka_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета 
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity  = 0.98


Назначение некоторых параметров, влияющих на одевшего артефакт: 
health_restore_speed - прирост к скорости восстановления здоровья 
radiation_restore_speed - прирост скорость вывода радиации 
satiety_restore_speed - прирост к голоду 
power_restore_speed - прирост к выносливости 
bleeding_restore_speed - прирост к скорости остановки кровотечений

Создание описания и имени артефакта

Заходим в gamedata\config\text\rus и открываем файл string_table_enc_zone.xml. Добавим туда строку с названием артефакта.

Код:
<string id="af-romashka">
<text>"Ромашка"</text>
</string>


Теперь у артефакта есть имя, но одного его недостаточно. Нужно сделать описание.
Поэтому добавим и его.

Код:
<string id="enc_zone_artifact_af-romaska">
<text>Очень странный артефакт. Впервые появился в Зоне где-то в 2011 году, но толку от него - ноль. Ученые
                      не обнаружили никакого влияния артефакта на организм носителя.</text>
</string>


Все, поздравляю, вы только что создали свой первый артефакт! :)



В этой статье я расскажу как добавить новую модель артефакта в игру, о создании конфигов рассказано в этой статье (Создание нового артефакта)

Для работы нам понадобятся: 
X-Ray SDK 0.4
Набор плагинов для экспорта моделей в SDK
Adobe Photoshop
3ds max 8

Подготовка к моделированию

Прежде чем приступить к моделированию подумаем об особенностях артефакта и нарисуем скетч(эскиз) чтобы не получить черти-что.

Общая концепция

Общая концепция - это основа-основ нашей работы, именно от этого этапа зависит весь предстоящий ход работы, поэтому к нему надо отнестись с максимальной ответственностью. В результате моих творческих мук получилось вот что: 

Название: Плазменный Кактус 

Характеристики: 
Радиация -68 
Кровотечение +15 
Пулестойкость -10 
Электрошок +30 
Удар +10

Описание: Этот артефакт порождается аномалией «Карусель», представляет из себя наполовину сваренный состав из неизвестных редких растений, одним из которых предположительно является мутировавший вид крапивы, на вид похож на кактус, отчего и получил свое название. Также можно заметить слабую светящуюся оболочку, предположительно плазменной структуры. Артефакт достаточно редкий и дорогой.

Рисуем скетч

Рисовать можно хоть в Фотошопе хоть на газете или школьной тетрадке, значения не имеет.
Рисую я плохо, поэтому получилось вот что:

 

Прошу особо не пинать)))

Моделирование и текстурирование

Идея готова, осталось лишь воплотить ее в жизнь.

Основное моделирование

Итак, запускаем Макс и делаем модельку максимально схожую со скетчем

 

Для достижение этого результата я использовал модификатор MeshSmooth и Nois, а для корректировки формы FreeForm Deformer

Теперь делаем "иголки" нашего артефакта

 

Текстурирование

Проецируем текстуру и если надо создаем развертку, у меня получилось так:

 

Окончательно моделирование

Отмасштабируем все элементы и правильно присоединим "иголки" к основному мешу, для этого я рекомендую использовать скрип Scatter С его помощью можно как-бы "рисовать" одними мешами на другом.

 

Так же создаем сферу, которая будет являться "плазменной оболочкой"

Назначение шейдеров

Для моего артефакта я использовал следующие параметры: 
Основной кусок артефакта: model/selflightl, def_shaders/def_vertex, game_material/default_object 
Иголки: model/model aref, def_shaders/def_vertex, game_material/default_object 
Плазменная оболочка: model/lightplanes, def_shaders/def_vertex, game_material/default_object

Подготовка к экспорту в Actor Editor

Масштабируем модель до "сталкеровских" размеров, потом применяем модификатор Physique, и присоединяем кость. Далее все просто: переходим в Utilites(На нем нарисован молоточек), more/S.T.A.L.K.E.R. Export и нажимаем Export Skin

Работа в SDK

Устали? А ведь в переди еще не мало работы, возможно это даже самый сложный этап.

Настройки в Actor Editor

После правильного импорта текстур и геометрии должно получиться примерно так:

 

Невзрачно, да? А ведь после окончания всего процесса будет красиво...надеюсь красиво... 

Ладно, вернемся к теме, первым делом проверяем шейдеры, если что-то напортачили в 3ds max то сейчас еще не поздно исправить, далее убираем галку напротив пункта Make Progressive(для чего нужен этот параметр мне не известно), переходим во вкладку Bones и щелкаем на названии кости... Теперь ставим следующие параметры: 
Bone/Game Material: default_object 
Mass: на усмотрение 
Shape/Type: любой предлагаемый параметр в зависимости от формы 

Теперь нажимаем кнопку Generate Shape/All , и экспортим модель в ogf...

Создание парктикла артефакта

Запускаем Parcticle Editor, (заранее предупреждаю что делать наш парктикл мы будет на основе уже имеющегося, т.к. в этому уроке не будут рассматриваться азы работы в этой программе SDK, про это уже подробно написано тут ) 

создаем свою директорию и копируем туда уже имеющиеся парктикл_группы(PG) и принадлежащие к нему парктикл_эффекты, не забываем править пути.

После редактирования всех параметров у меня получилось так:

 

Чтобы новый парктикл заработал копируем файл parcticles.xr из директории SDK в директорию игры, и прописываем соответствующие параметры в конфиги артефакта.

Заключение

После упорных трудов мы создали с нуля модель артефакта, а добавление его в игру это дело техники.


Категория: Статьи | Добавил: montaque (25.05.2010)
Просмотров: 21779 | Рейтинг: 3.7/3
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

<ЧАТ>
500

Облако
интернет Информация новости прибыль работа реклама Spawn Спавн ТТ2 гниение Трупы