Задумал я как то сделать движущуюся аномалию. Прямо как в ЗП. Поиск информации в интернете ничего не дал, единственная заметка на сталкерине про движущиеся аномалии оказалось не тем, что было нужно, немного информации по формату .anm нашлось на АМК форуме. Решил покопаться, попробовать и как ни странно - получилось.
На самом деле, ПЫС-ы позаботились о нас и оставили нам класс аномалий - Z_TORRID, который как раз и отвечает за движущиеся аномалии. Яркий пример - аномалия в Х-18. Был конечно вариант сделать как с аномалией на Кордоне (великая и могучая электра в тоннеле), но он мне не подходил, плавности это не прибавляло, зато конфиг раздувало до неимоверных размеров.
Итак, от слова переходим к делу: 1) Создаем конфиг нашей аномалии:
visible_by_detector = off blowout_wind = off spawn_blowout_artefacts = off
Следует обратить внимание на строки от 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 секция, которая отвечает за движение по координате Х. behaviour0=1 behaviour1=1 keys=24 -- кол-во ключей в данной секции. Считаем с 0! k0_value=293.459 -- координата Х. k0_time=0.000000 -- время, которое потребуется для прохождения от этого ключа до следующего. Начинаем с 0. Т.е в нулевом ключе пишем всегда 0. В следующем ключе увеличиваем на энное кол-во. Я увеличивал на полторы секунды, иначе получатся провалы при движении (аномалия как бы исчезнет при прохождении от точки до точки). k0_shape=0 k0_tension=0.000488 k0_continuity=0.000488 k0_bias=0.000488 k0_param0=0.000488 k0_param1=0.000488 k0_param2=0.000488 k0_param3=0.000488 k1_value=291.068 k1_time=3.500000 k1_shape=0 k1_tension=0.000488 k1_continuity=0.000488 k1_bias=0.000488 k1_param0=0.000488 k1_param1=0.000488 k1_param2=0.000488 k1_param3=0.000488 k2_value=288.727 k2_time=4.500000 k2_shape=0 k2_tension=0.000488 k2_continuity=0.000488 k2_bias=0.000488 k2_param0=0.000488 k2_param1=0.000488 k2_param2=0.000488 k2_param3=0.000488 [envelope1] -- 2 секция, которая отвечает за движение по координате Y. behaviour0=1 behaviour1=1 keys=24 k0_value=-4.781 k0_time=0.000000 k0_shape=0 k0_tension=0.000488 k0_continuity=0.000488 k0_bias=0.000488 k0_param0=0.000488 k0_param1=0.000488 k0_param2=0.000488 k0_param3=0.000488 k1_value=-2.050 k1_time=3.500000 k1_shape=0 k1_tension=0.000488 k1_continuity=0.000488 k1_bias=0.000488 k1_param0=0.000488 k1_param1=0.000488 k1_param2=0.000488 k1_param3=0.000488 k2_value=0.175 k2_time=4.500000 k2_shape=0 k2_tension=0.000488 k2_continuity=0.000488 k2_bias=0.000488 k2_param0=0.000488 k2_param1=0.000488 k2_param2=0.000488 k2_param3=0.000488 [envelope2] -- 3 секция, которая отвечает за движение по координате Z. behaviour0=1 behaviour1=1 keys=24 k0_value=-233.855 k0_time=0.000000 k0_shape=0 k0_tension=0.000488 k0_continuity=0.000488 k0_bias=0.000488 k0_param0=0.000488 k0_param1=0.000488 k0_param2=0.000488 k0_param3=0.000488 k1_value=-240.625 k1_time=3.500000 k1_shape=0 k1_tension=0.000488 k1_continuity=0.000488 k1_bias=0.000488 k1_param0=0.000488 k1_param1=0.000488 k1_param2=0.000488 k1_param3=0.000488 k2_value=-246.864 k2_time=4.500000 k2_shape=0 k2_tension=0.000488 k2_continuity=0.000488 k2_bias=0.000488 k2_param0=0.000488 k2_param1=0.000488 k2_param2=0.000488 k2_param3=0.000488
Остальные параметры не трогаем и переписываем так, как указаны выше. Их предназначение мне неведомо, брались из путей жарки в Х-18.
Пара важных моментов: - Координаты в разных секциях должны совпадать по ключам. Координату разбиваем на 3 части - X,Y,Z. Затем пишем каждую часть в свою секцию, с соблюдением номеров ключей. Главное не перепутать и не записать X в нулевой ключ, а Y в 7 ключ. Получится несовпадение и в игре аномалия побежит не так, как надо. - Время в секциях должно совпадать с временем в других секциях. Т.е если в 7 ключе одной секции у вас 3 секунды, то и в другой секции в 7 ключе должно быть 3 секунды. - Кол-во ключей в секциях должно быть равным. Итак, когда у нас все записано, обязательно в конце файла оставлена пустая строка, сохраняем файл и щелкаем на батник "Компиляция". Перед нами появляется файл new_anm.anm, берем его, переименовываем если надо и кидаем в папку с игрой
3) Непосредственно сам спавн аномалии: Открываем алл спавн и вставляем туда секцию:
[20121] ; cse_abstract properties section_name = zone_fireball -- наша секция из шага номер 1. name = esc_fireball_1 -- имя произвольное. position = 12.198,8.734,-395.748 direction = 0,0,0
; cse_motion properties motion_name = camera_effects\new_anom\new_anm.anm -- путь до файла с путями.
По каким координатам аномалия будет заспавнена - не важно. Важно то, на какой локации. Аномалия на Кордоне, не должна иметь место спавна на Свалке. Т.к левел и гейм вертексы не учитываются при движении, а только координаты, получим белиберду.
Скорее всего из-за особенностей ТЧ, бегающие аномалии, не бегают или бегают очень медленно если рядом нет ГГ. Скорей всего связано с экономией ресурсов движка. Автор - volazar.
P.S. Опытным модмейкерам это известно, а вот новичкам будет интересно, поэтому и выкладываю этот тутор. Чуть не забыл: - не забудьте в zones.ltx проставить инклуд конфига аномалии. - если при запаковке спавна выскакивает unknown class for section (или как-то так), в acdc.pl прописать секцию zone_fireball => 'cse_alife_torrid_zone',
Сообщение отредактировал Mel - Вторник, 07.01.2014, 18:35