Новое на сайте:
Новости:
Файлы:
Статьи:
Топ пользователей:
Обновления сайта:
Группа "Гости" не имеет право просмотра модуля
|
Форум S.T.A.L.K.E.R. - Моддинг Разбираем S.T.A.L.K.E.R. Уроки моддинга Создание движущихся аномалий в ТЧ |
Создание движущихся аномалий в ТЧ |
Дата: Понедельник, 09.09.2013, 22:59
Сообщение #1
Создание движущихся аномалий в ТЧ Задумал я как то сделать движущуюся аномалию. Прямо как в ЗП. Поиск информации в интернете ничего не дал, единственная заметка на сталкерине про движущиеся аномалии оказалось не тем, что было нужно, немного информации по формату .anm нашлось на АМК форуме. Решил покопаться, попробовать и как ни странно - получилось. Дабы не томить ожидание, привожу видео с получившимся результатом. ЗЫ: В видео аномалии сделаны в ОП, но все то же самое можно повторить на чистой версии игры. На самом деле, ПЫС-ы позаботились о нас и оставили нам класс аномалий - Z_TORRID, который как раз и отвечает за движущиеся аномалии. Яркий пример - аномалия в Х-18. Был конечно вариант сделать как с аномалией на Кордоне (великая и могучая электра в тоннеле), но он мне не подходил, плавности это не прибавляло, зато конфиг раздувало до неимоверных размеров. Итак, от слова переходим к делу: 1) Создаем конфиг нашей аномалии: Следует обратить внимание на строки от idle_particles до idle_big_particles. Это партиклы аномалии, т.е то, как она будет выглядеть. Сделав несколько конфигов и поменяв эти самые партиклы, тип наносимого хита, звуки - можно иметь у себя в арсенале летающую жарку/электру/холодец...да и вообще, все что угодно (здравствуй фантазия). 2) Путь для аномалии: Самое интересное - по аналогии как и с вейпоинтами для НПС, только немного по другому. Пути аномалии зашиты в файл с расширением .anm. Есть несколько способов его сделать: а) Использовать инструмент "Камера" в СДК (У меня это не получилось, промучившись с установкой версии 0.4 (ТЧ) - не обнаружил там этого инструмента, хотя поголовно везде пишут что он там есть. Установив версию 0.6 (ЗП) так и не смог разобраться, честно пытался пару часов, так и бросил.) б) Использовать старенькую утилиту 2009 года - anm2ltx (ссылка будет в конце поста). Хоть и старенькая, но вполне себе рабочая. Поначалу может и покажется все сложным, но уверяю, это не сложнее чем игра в тетрис. Через 15 минут у меня уже был заветный файлик, а еще через 2 минуты я любовался на бегающую аномалию в игре. Итак, качаем утилиту. (Рекомендую отключить антивирус, по крайней мере у меня аваст ругался на троян и постоянно норовил убрать файл утилиты в хранилище.) Скачали, распаковали в диск С (для вашего удобства батники настроены и не надо в них лезть и менять пути до файла). Откроем папку с утилитой, внутри файл anm2ltx.exe и 2 батника - "Декомпиляция" и "Компиляция" соответственно. Создаем в этой же папке новый текстовый файл (название должно быть new_anm, причина та же самая, не нужно копаться в батниках), меняем ему расширение на .ltx и открываем (я использовал Notepad++). Создали, открыли и пишем в него: По порядку, что есть что: [ccm] - некий заголовок, с которого начинается файл. Не знаю что это такое, да и нет желания знать. name= - имя, я оставляю пустым (да и ПЫС-ы сделали также с путями жарки в Х-18). frame_start=0 - начальная строка в файле, всегда 0. frame_end=738 - финальная строка в файле. У меня было 738. Важно! В конце файла, после всех записей должна быть пустая строка! Ее также считаем, когда пишем число в frame_end. fps=30.000000 - кол-во ФПС, остается неизменным. [envelope0] - 1 секция, которая отвечает за движение по координате Х. Содержимое секции: Разберем ее содержимое: keys=24 - кол-во ключей в данной секции. Считаем с 0! k0_value=293.459 - координата Х. k0_time=0.000000 - время, которое потребуется для прохождения от этого ключа до следующего. Начинаем с 0. Т.е в нулевом ключе пишем всегда 0. В следующем ключе увеличиваем на энное кол-во. Я увеличивал на полторы секунды, иначе получатся провалы при движении (аномалия как бы исчезнет при прохождении от точки до точки). Остальные параметры не трогаем и переписываем так, как указаны выше. Их предназначение мне неведомо, брались из путей жарки в Х-18. [envelope1] - 2 секция, которая отвечает за движение по координате Y. Ее содержимое идентично секции [envelope0], за исключением того, что в значении k0_value=293.459 будет записываться координата Y. [envelope2] - 3 секция, которая отвечает за движение по координате Z. В значение k0_value=293.459 будет записываться координата Z. Пара важных моментов: - Координаты в разных секциях должны совпадать по ключам. Т.е имея координаты 1, 0, -1 и записывая их , координата 1 пойдет в нулевой ключ секции [envelope0], координата 0 пойдет в нулевой ключ секции [envelope1], ну и координата -1 пойдет в секцию [envelope2]. Далее, 1 пойдет в первый ключ секции [envelope0], 0 пойдет в первый ключ секции [envelope1], -1 пойдет в первый ключ секции [envelope2] и так далее. Если до сих пор непонятно, покажу так: Координату разбиваем на 3 части - X,Y,Z. Затем пишем каждую часть в свою секцию, с соблюдением номеров ключей. Главное не перепутать и не записать X в нулевой ключ, а Y в 7 ключ. Получится несовпадение и в игре аномалия побежит не так, как надо. - Время в секциях должно совпадать с временем в других секциях. Т.е если в 7 ключе одной секции у вас 3 секунды, то и в другой секции в 7 ключе должно быть 3 секунды. - Кол-во ключей в секциях должно быть равным. Итак, когда у нас все записано, обязательно в конце файла оставлена пустая строка, сохраняем файл и щелкаем на батник "Компиляция". Перед нами появляется файл new_anm.anm, берем его, переименовываем если надо и кидаем в папку с игрой. 3) Непосредственно сам спавн аномалии: Открываем алл спавн и вставляем туда секцию: section_name = zone_fireball - наша секция из шага номер 1. name = zat_fireball_1 - произвольное. motion_name = camera_effects\new_anom\zat_fireball_1.anm - путь до файла с путями. По каким координатам аномалия будет заспавнена - не важно. Важно то, на какой локации. Аномалия на Кордоне, не должна иметь место спавна на Свалке. Т.к левел и гейм вертексы не учитываются при движении, а только координаты, получим белиберду. Скорее всего из-за особенностей ТЧ, бегающие аномалии, не бегают или бегают очень медленно если рядом нет ГГ. Скорей всего связано с экономией ресурсов движка. На видео ниже это хорошо видно, при приближении аномалия бегает как надо, при отдалении почти замирает. Ссылка на anm2ltx - http://rghost.ru/48664004 Ну и в заключение, помимо видео выше, где демонстрировались восстановленные аномалии из ЗП, другое видео с бегающей электрой на Затоне: |
Дата: Среда, 18.09.2013, 14:47
Сообщение #2
volazar, Володя привет. Решил создать такую аномалию, но где-то что-то не так. При запаковке выдает лог:
Вроде все сделал как надо... В zones.ltx инклуд конфига аномалии проставил. Сообщение отредактировал butrikA - Среда, 18.09.2013, 14:48 |
Дата: Среда, 18.09.2013, 15:04
Сообщение #3
butrikA, привет. Запаковка all.spawn не идет? Т.к у тебя аномалия наследует секцию, которая не прописана в acdc.pl (программа не может ей сопоставить нужный игровой класс), то ошибка и будет.
Открой acdc.pl, найди там например такую строку: Код zone_mosquito_bald => 'se_zone_anom', И после нее пропиши следующее: Код zone_fireball => 'cse_alife_torrid_zone', Сохраняй и пакуй. |
Дата: Четверг, 19.09.2013, 11:25
Сообщение #5
butrikA, прописывать нужно именно в файл acdc.pl. Там ближе к середине массива увидишь кучу строк с прописанным всё и вся, что используется в игре. Прописывай строки как указал Володя, иначе прога тупо не понимает что ты от нее хочешь, ведь у нее "в памяти" нет сочиненных тобой новинок. Только после этого компиляция пройдет. А далее будут ли вылеты или нет - зависит от правильности прописки в файлах игры.
|
Дата: Четверг, 10.10.2013, 13:04
Сообщение #6
Друзья, привет. Возникло пару вопросов по аномалии:
1. Что это за параметры: frame_start=0 - frame_end=738, на что они влияют и как вычеслить последнее число? 2. По времени k0_time=0.000000 - если увеличивать на полторы секунды, то следующая точка пути k1_time должна быть 1.500000, а следующая за ней - 3.000000, правильно я понимаю? Моя аномалия двигается нормально, но при переходе с последней точки на первую зависает на время, примерно минуту реального времени, а потом опять в путь. Почему зависает не пойму. |
Дата: Четверг, 10.10.2013, 19:20
Сообщение #7
Цитата (butrikA) Что это за параметры: frame_start=0 - frame_end=738, на что они влияют и как вычеслить последнее число? Что то затупил Ты про параметры в anm файле? Первое всегда начинается с нуля, второе значение равно кол-ву строк в файле (плюс 1 пустая строка в самом конце, которая также учитывается). Цитата (butrikA) то следующая точка пути k1_time должна быть 1.500000, а следующая за ней - 3.000000, правильно я понимаю? Все верно. Нули можно опустить. По завису - выложи свой файлик с путями, посмотрим. ЗЫ: И проверь значения, про которые ты спрашивал в 1 вопросе. |
| |||
| |||