Динамическая музыка в Сталкере |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Динамическая музыка в Сталкере |
03.07.2020, 20:35
Сообщение
#1
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Итак.
Кто-то разбирал предметно данный вопрос? Как именно она устроена. Напомню, впервые введена была в Чистом Небе. Осталась и в Зове Припяти, изменив лишь композиции. Однако до этого, ЕМНИП, засвечивалась в модах на ТЧ. Оттуда собственно была взята ПЫС и допилена. UPD: На примере Зова Припяти. Там за динамическую музыку отвечает: gamedata\scripts\xrs_dyn_music.script Если посмотреть на параметры в нём, то враг должен находится от игрока на расстоянии от 75 до 99 метров, чтобы музыка сработала. И от 100 метров, чтобы прекратилась. UPD2: За то какие композиции будут играть отвечает: gamedata\scripts\xrs_dynamic_music_themes.script Однако если посмотреть этот же файл в Чистом небе, то становится понятно, что тамошняя система более сложная. Зов Припяти ограничен лишь 4 наборами разных тем по 3 файла: -> Код themes={ { files={ "music\\combat\\theme1_part_1", "music\\combat\\theme1_part_2", "music\\combat\\theme1_part_3" }, }, { files={ "music\\combat\\theme2_part_1", "music\\combat\\theme2_part_2", "music\\combat\\theme2_part_3" }, }, { files={ "music\\combat\\theme3_part_1", "music\\combat\\theme3_part_2", "music\\combat\\theme3_part_3" }, }, { files={ "music\\combat\\theme4_part_1", "music\\combat\\theme4_part_2", "music\\combat\\theme4_part_3" } } } UPD3: ЧН же задаёт для каждой локации определенный набор динамической музыки. Но не простой. Имеются условия для проигрывания той или иной темы: -> Код maps = "marsh, escape, garbage, darkvalley, agroprom, agroprom_u, yantar, red_forest, military, limansk, hospital", files={ intro_1 = "music\\combat\\theme2_intro_1", intro_2 = "music\\combat\\theme2_intro_2", danger_1 = "music\\combat\\theme2_danger_1", danger_1a = "music\\combat\\theme2_danger_1a", danger_2 = "music\\combat\\theme2_danger_2", danger_3 = "music\\combat\\theme2_danger_3", danger_3a = "music\\combat\\theme2_danger_3a", danger_3b = "music\\combat\\theme2_danger_3b", danger_3c = "music\\combat\\theme2_danger_3c", danger_4 = "music\\combat\\theme2_danger_4", danger_5 = "music\\combat\\theme2_danger_5", idle_1 = "music\\combat\\theme2_idle_1", idle_2 = "music\\combat\\theme2_idle_2", combat_1 = "music\\combat\\theme2_combat_1", combat_2 = "music\\combat\\theme2_combat_2", combat_3 = "music\\combat\\theme2_combat_3", combat_4 = "music\\combat\\theme2_combat_4", combat_5 = "music\\combat\\theme2_combat_5", combat_6 = "music\\combat\\theme2_combat_6", combat_7 = "music\\combat\\theme2_combat_7", combat_8 = "music\\combat\\theme2_combat_8", final_1 = "music\\combat\\theme2_final_1", final_2 = "music\\combat\\theme2_final_2", final_3 = "music\\combat\\theme2_final_3", final_4 = "music\\combat\\theme2_final_4", final_5 = "music\\combat\\theme2_final_5" Расшифровать скорее всего можно так: intro - враг рядом, но ещё не видит игрока danger - враг увидел игрока idle - враг потерял игрока из виду combat - враг вступил в бой final - игрок победил врага Сообщение отредактировал aka_sektor - 03.07.2020, 21:28 -------------------- |
 
|
|
|
|
03.07.2020, 20:47
Сообщение
#2
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
aka_sektor, это которая срабатывает в засвете ГГ врагами?
Ничего сложного там нет. Я данную фичу прикручивал в БТР, вкачестве плеера. Сообщение отредактировал Diesel - 03.07.2020, 21:32 |
 
|
|
03.07.2020, 21:15
Сообщение
#3
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
aka_sektor, данную тему можно и логикой отдельной запилить. Получить сигнал тревоги, включить рандомное чтение файлов звуков из папки.
В ЗП это сделать как два пальца об асфальт. И не надо писать целый менеджер. Есть конечно плюс от пысовской реализации, что не надо целиком файл воспроизводить, а лишь третью часть. Ну и звук как бы заглушается. Сообщение отредактировал Diesel - 03.07.2020, 21:19 |
 
|
|
03.07.2020, 21:37
Сообщение
#4
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Условия видимо задаются данным кодом:
-> Код graph={ null={ intro_1 = {"lo",">"}, combat_5 = {"hi",">"} }, intro_1={ final_2 = {"lo","<"}, danger_1 = {"lo",">"}, combat_5 = {"hi",">"} }, intro_2={ final_2 = {"lo","<"}, danger_3 = {"lo",">"}, combat_6 = {"hi",">"} }, danger_1={ final_2 = {"lo","<"}, danger_2 = {"lo",">"}, combat_5 = {"hi",">"} }, danger_1a={ final_2 = {"lo","<"}, danger_2 = {"lo",">"}, combat_5 = {"hi",">"} }, danger_2={ final_1 = {"lo","<"}, danger_3a = {"lo",">"}, combat_1 = {"hi",">"} }, danger_3={ final_2 = {"lo","<"}, danger_4 = {"lo",">"}, combat_5 = {"hi",">"} }, danger_3a={ final_2 = {"lo","<"}, danger_4 = {"lo",">"}, combat_5 = {"hi",">"} }, danger_3b={ final_2 = {"lo","<"}, danger_4 = {"lo",">"}, combat_5 = {"hi",">"} }, danger_3c={ final_2 = {"lo","<"}, danger_4 = {"lo",">"}, combat_5 = {"hi",">"} }, danger_4={ final_4 = {"lo","<"}, danger_5 = {"lo",">"} }, danger_5={ final_4 = {"lo","<"}, danger_1a = {"lo",">"}, combat_6 = {"hi",">"} }, idle_1={ final_1 = {"lo","<"}, danger_3a = {"lo",">"}, combat_1 = {"hi",">"} }, idle_2={ final_3 = {"lo","<"}, danger_3c = {"lo",">"}, combat_4 = {"hi",">"} }, combat_1={ final_3 = {"lo","<"}, danger_4 = {"hi","<"}, combat_2 = {"hi",">"} }, combat_2={ final_5 = {"lo","<"}, danger_4 = {"hi","<"}, combat_3 = {"hi",">"} }, combat_3={ final_2 = {"lo","<"}, idle_1 = {"hi","<"}, combat_4 = {"hi",">"} }, combat_4={ idle_1 = {"lo","<"}, idle_1 = {"hi","<"}, combat_6 = {"hi",">"} }, combat_5={ final_3 = {"lo","<"}, danger_4 = {"hi","<"}, combat_2 = {"hi",">"} }, combat_6={ final_3 = {"lo","<"}, idle_2 = {"hi","<"}, combat_7 = {"hi",">"} }, combat_7={ final_3 = {"lo","<"}, idle_2 = {"hi","<"}, combat_8 = {"hi",">"} }, combat_8={ final_2 = {"lo","<"}, danger_3b = {"hi","<"}, combat_5 = {"hi",">"} }, final_1={ null = {"lo","<"}, intro_1 = {"lo",">"}, combat_5 = {"hi",">"} }, final_2={ null = {"lo","<"}, intro_1 = {"lo",">"}, combat_5 = {"hi",">"} }, final_3={ null = {"lo","<"}, idle_2 = {"lo",">"}, combat_5 = {"hi",">"} }, final_4={ null = {"lo","<"}, intro_2 = {"lo",">"}, combat_5 = {"hi",">"} }, final_5={ null = {"lo","<"}, intro_2 = {"lo",">"}, combat_5 = {"hi",">"} Однако непонятно как это читать. Понятно, что это знак ">" больше. А это "<" меньше. Что значит "lo" и "hi" ? UPD: Если проверить по файлу: xrs_dyn_music.script Это некие переменные: Код if v[1]=='lo' then glevel=music_lo_lvl end if v[1]=='hi' then glevel=music_hi_lvl end Код local music_lo_lvl=7
local music_hi_lvl=17 Сообщение отредактировал aka_sektor - 03.07.2020, 21:42 -------------------- |
 
|
|
03.07.2020, 22:11
Сообщение
#5
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
aka_sektor, это громкость однако.
|
 
|
|
04.07.2020, 21:00
Сообщение
#6
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Diesel, если понимаешь в скриптах, опиши подробнее, что как работает.
от пысовской реализации На самом деле, в коде скрипта в ЧН например, значится моддер xStream. Наверное взято из AMK Mod'а было ПЫС. звук как бы заглушается. Да, вот мне например ЧНовская динамическая музыка нравится. Вроде бы даже был мод, кто-то делал, переносящий её на Зов Припяти. Интересно, как это получилось. Неужели просто эти 2 скрипта перекинули из ЧН в ЗП? Или все же есть движковая привязка. Какие-то особые коллбеки. И например, из ЧН/ЗП в ТЧ уже так просто не перекинешь. Нужно костылять там будет. Хотя AMK мод то был на ТЧ вообще то. Сообщение отредактировал aka_sektor - 04.07.2020, 21:06 -------------------- |
 
|
|
04.07.2020, 21:05
Сообщение
#7
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
aka_sektor, я слабак в скриптах. Могу лишь делать вид, что соображаю. Хотя если уметь управлять механизмом, то не обязательно знать его устройство. Зачем ломать голову? Вот бы сейчас все знали как работает впрыск в Д.Д.
|
 
|
|
04.07.2020, 22:09
Сообщение
#8
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Помимо скриптовой оболочки есть ещё код, отвечающий за её запуск. Случайно столкнулся, из-за небольшого косяка. Месяца три без неё двиг работал...
Сообщение отредактировал ForserX - 04.07.2020, 22:10 -------------------- В армии по 01.07.2020. |
 
|
|
04.07.2020, 22:46
Сообщение
#9
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
код, отвечающий за её запуск Движковый? Хорошо бы подробнее узнать. Кста, насчет AMK мода, попутал. Там никогда не было динамической музыки. Это xStream отдельный выпускал мод, на пару с DEXXX. "Interactive Music Mod": Ещё кста, на ТЧ переносили таки музыку из ЧН. Вот мод "Clear Sky Dynamic Music": Уже не знаю, как оно там реализовано. Сообщение отредактировал aka_sektor - 04.07.2020, 22:49 -------------------- |
 
|
|
06.07.2020, 00:48
Сообщение
#10
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Движковый? Хорошо бы подробнее узнать. Я уже не скажу на память, что-то в районе level***.cpp файлов. -------------------- В армии по 01.07.2020. |
 
|
|
Текстовая версия | Сейчас: 19.04.2024, 20:33 |