Реакция AI на Game Type звука |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Реакция AI на Game Type звука |
16.09.2017, 20:11
Сообщение
#21
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Но я еще давно исключил использование данного инструмента, как глючного и неудобного Аналогично. После того, как Scavenger подсказал Gold Wave, в связке с Сообщение отредактировал RayTwitty - 16.09.2017, 20:14 -------------------- |
 
|
|
|
|
16.09.2017, 20:42
Сообщение
#22
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Подсовываешь wav Думаю достаточно напрямик из аудиоредактора сохранить в .ogg, а потом добавить комменты. Никчему wav2ogg. разницу между min Distance и Max Distance лучше делать Вот в этом и фишка SDK, там рисунок показывает плавность затухания. Можно проверять чтобы не было обрывов. от связи разных пар материалов Точно-точно, совсем забыл... что в SE материалу задаются звуки под разные типы: недавно заметил, что нпси в OLR бегают бесшумно, пришлось дорабатывать таблицы в [stalker_step_manager]. Так вот это из-за чего! Натыкался на форуме на такие вопросы. Полезная инфа. Сообщение отредактировал aka_sektor - 16.09.2017, 20:43 -------------------- |
 
|
|
16.09.2017, 23:27
Сообщение
#23
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
Думаю достаточно напрямик из аудиоредактора сохранить в .ogg, а потом добавить комменты. У меня вот Nero wave editor при сохранении в ogg автоматически любой файл превращает в стерео и хз чего еще в заголовок вписывает.Никчему wav2ogg. Вот в этом и фишка SDK, там рисунок показывает плавность затухания. Когда я начинал экспериментировать с SAVandT несколько лет назад, считалось что плавность вообще не лечится, типо бага, и всё. Хотя уже не помню, может в sdk оно так выглядит, что не все тогда понимали, что это именно плавность.Точно-точно, совсем забыл... что в SE материалу задаются звуки под разные типы: По возможности предпочитаю править через "gamemtl.xr compiler/decompiler", который на perl. Не могу утверждать, но вроде в SDK встречал "багу", когда SE физически не найдя в sdk прописанных в gamemtl.xr аудиофайлов просто вырезал обращения к ним из gamemtl.xr при сохранении.
Сообщение отредактировал macron - 16.09.2017, 23:34 |
 
|
|
18.09.2017, 13:25
Сообщение
#24
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
Помнится как-то его восстанавливал Red75. Глянуть бы, как именно. Думаю, скрипты правил. Помнится Глянуть бы, как именно. Думаю, скрипты правил. Олтфак в треде, все в бункир
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
18.09.2017, 13:55
Сообщение
#25
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
RedPython, глянул скрипты AMK, оказывается он подписывался как:
Код Dmitri 'Red75' Roschin
Сообщение отредактировал aka_sektor - 18.09.2017, 13:55 -------------------- |
 
|
|
18.09.2017, 14:13
Сообщение
#26
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
Если именно восстанавливать вырезанный обход аномалий, то это раскоментировать строки xr_motivator.script:99, 103
Код -- if self.object:character_community() == "zombied" then local manager = self.object:motivation_action_manager() manager:remove_evaluator (stalker_ids.property_anomaly) manager:add_evaluator (stalker_ids.property_anomaly, property_evaluator_const(false)) -- end Убрать комментарии, чтобы обход аномалий отключался только для зомбированных, а не для всех НПЦ. Red75 сделал свой скриптовый обход аномалий на добавлении аномалий в список рестрикторов НПЦ. На этой основе сделаны куча других обходчиков аномалий. |
 
|
|
18.09.2017, 14:24
Сообщение
#27
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
abramcumner, это в свою очередь доказывает, что обход аномалий не зависит от Game Type звука.
-------------------- |
 
|
|
19.09.2017, 13:00
Сообщение
#28
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
глянул скрипты AMK, оказывается он подписывался как: Ты ещё не видел, как Икстрим подписывался
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
19.09.2017, 13:37
Сообщение
#29
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Вообще враги на многие звуки реагируют. Шорох кустов, доставание оружия, перезарядка, в каком положении двигаешься, одет ли глушитель при стрельбе. Это в ЗП. Легко отследить по индикатору видимости.
aka_sector, говор от класса торговца произносится в голове ГГ, а не от торговца, поэтому он всегда рядом. Настройки звука тут не влияют. |
 
|
|
19.09.2017, 13:50
Сообщение
#30
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
враги на многие звуки реагируют Вообще-то K.D. уже сказал: Неписи слышат все звуки и все их запоминают, в т.ч. позицию объекта, который их издал. Актор издал звук - обнаружили позицию. В комбате они бы и на звук разворачиваемой шоколадки начали стрелять. Тут вопрос скорее в том, какая специфическая реакция присвоена тому или иному звуку. Зачем столько разных Game Type? Наверняка же каждый не просто так был добавлен. произносится в голове ГГ Да... пожалуй эт в логике Сидора было задано так. P.S. как Икстрим подписывался Код --[[ copyright © xStream & Red75 MMMMMMM MMMMM MMMMMM MMMMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM MMMMMM MMMMMMM MMMMMM MMMMMMM MMMMMM MMMMMMMMMM MMMMMMMMMMMMMM MMMMMMMMMMMMMM MMMMMMMMMMM MMMMMMMM MMMMMMMM MMMMMMM MMMMMMMMMMMM MMMMMMMMMMMM MMMMMMMMMMMMM MMMMMMMMMMMMMM MMMMMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMMM MMMMMMMM MMM MMMMMMM MMMMMMMMMMMMMM MMMMMMM MMMMMMMMMM MMMMMMMMMMMMMMMMM MMMMMMM MMMMMMM MMMMMM MMMMMMM MMMMM MMMMMMM MMMMMMMMMM MMMMMMMMMMMMMMMMM MMMMMMMM MMMMMMM MMMMMM MMMMMMM MMMM MMMMMMMMMM MMMM MMMMMMM MMMMMMMMMMMMMMMMM MMMMMMMMMM MMMMM MMMMMM MMMMMMMMMMM MMMMMMM MMMM MMMMMM MMMMMMMMMMMMMMMMM MMMMM MMMMM MMMMMMMM MMMMMM MMMMMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMMMM MMMMM MMMMM MMMMM MMMMM MMMMMM MMMMMM MMMMMM MMMMMMM MMMMM MMMMMMMMMM MMMMMMM MMMMMM MMMM MM MMMM ]] Да, прикольно Сообщение отредактировал aka_sektor - 19.09.2017, 13:54 -------------------- |
 
|
|
19.09.2017, 14:09
Сообщение
#31
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
А какие там специфические задачи? Услышал шорох - поднял шухер, побежал смотреть. Не нашел никого, побегал и успокоился, увидел - начал стрелять. На звук выстрелов и все ближайшие мутанты могут сбежаться. И кстати, освещенность тоже влияет. В полной темноте я под носом у врага без проблем проползал.
Вообще многие думают, что звуки ни на что не влияют, хотя это не так. Конечно, их нужно правильно настроить в СДК. Иной раз видишь в модах, что звуки вообще через какой-то сторонний конвертер прогнаны без всяких настроек, вот на них мобы никакого внимания и не обращают... А я тут столкнулся со стерео звуками выстрелов. Так-то работают нормально, но если стреляет непись, даже далеко, то звук как бы в голове ГГ разносится. Так что проблемы с ними, однако... Хотя вообще, если судить по ванильным звукам ЗП, то стерео для выстрелов разрабы нигде не применяли. Судя по всему, не подходят они для этого. Хотя выстрел на порядок с ними эффектнее. Не знаю, удастся ли это поправить в звуковом модуле, пока что в голову пришло, это вешать на ствол два звука: стерео только для игрока, для НПС - моно. Да... пожалуй эт в логике Сидора было задано так. Нет, это в движке у торговца.
Сообщение отредактировал Zagolski - 19.09.2017, 14:13 |
 
|
|
23.09.2017, 02:40
Сообщение
#32
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Посмотрел исходники, насчет:
реагируют на звук выстрела, звук попадания, крик ранения или смерти. Реагируют понятным образом - опасный объект заносится в дэнжер менеджер. И действительно: danger_manager.cpp Код void CDangerManager::add (const CSoundObject &object) { if (!object.m_enabled) return; const CEntityAlive *obj = smart_cast<const CEntityAlive*>(object.m_object); if ((object.m_sound_type & SOUND_TYPE_BULLET_HIT) == SOUND_TYPE_BULLET_HIT) { add (CDangerObject(obj,object.m_object_params.m_position,object.m_level_time,CDangerObject::eDangerTypeBulletRicochet,CDangerObject::eDangerPerceiveTypeSound)); return; } if ((object.m_sound_type & SOUND_TYPE_WEAPON_SHOOTING) == SOUND_TYPE_WEAPON_SHOOTING) { add (CDangerObject(obj,object.m_object_params.m_position,object.m_level_time,CDangerObject::eDangerTypeAttackSound,CDangerObject::eDangerPerceiveTypeSound)); return; } if ((object.m_sound_type & SOUND_TYPE_INJURING) == SOUND_TYPE_INJURING) { bool do_add = true; if (object.m_object) { const CActor *actor = smart_cast<const CActor*>(object.m_object); if (actor && !m_object->is_relation_enemy(actor)) do_add = false; } if (do_add) add (CDangerObject(obj,object.m_object_params.m_position,object.m_level_time,CDangerObject::eDangerTypeEntityAttacked,CDangerObject::eDangerPerceiveTypeSound)); return; } if ((object.m_sound_type & SOUND_TYPE_DYING) == SOUND_TYPE_DYING) { add (CDangerObject(obj,object.m_object_params.m_position,object.m_level_time,CDangerObject::eDangerTypeEntityDeath,CDangerObject::eDangerPerceiveTypeSound)); return; } if (obj && m_object->is_relation_enemy(obj)) { add (CDangerObject(obj,object.m_object_params.m_position,object.m_level_time,CDangerObject::eDangerTypeEnemySound,CDangerObject::eDangerPerceiveTypeSound)); return; } } UPD: Параметры в исходниках Код xr_token anomaly_type_token[]={ { "undefined", sg_Undefined }, { "Item picking up", SOUND_TYPE_ITEM_PICKING_UP }, { "Item dropping", SOUND_TYPE_ITEM_DROPPING }, { "Item taking", SOUND_TYPE_ITEM_TAKING }, { "Item hiding", SOUND_TYPE_ITEM_HIDING }, { "Item using", SOUND_TYPE_ITEM_USING }, { "Weapon shooting", SOUND_TYPE_WEAPON_SHOOTING }, { "Weapon empty clicking", SOUND_TYPE_WEAPON_EMPTY_CLICKING }, { "Weapon bullet hit", SOUND_TYPE_WEAPON_BULLET_HIT }, { "Weapon recharging", SOUND_TYPE_WEAPON_RECHARGING }, { "NPC dying", SOUND_TYPE_MONSTER_DYING }, { "NPC injuring", SOUND_TYPE_MONSTER_INJURING }, { "NPC step", SOUND_TYPE_MONSTER_STEP }, { "NPC talking", SOUND_TYPE_MONSTER_TALKING }, { "NPC attacking", SOUND_TYPE_MONSTER_ATTACKING }, { "NPC eating", SOUND_TYPE_MONSTER_EATING }, { "Anomaly idle", SOUND_TYPE_ANOMALY_IDLE }, { "Object breaking", SOUND_TYPE_WORLD_OBJECT_BREAKING }, { "Object colliding", SOUND_TYPE_WORLD_OBJECT_COLLIDING }, { "Object exploding", SOUND_TYPE_WORLD_OBJECT_EXPLODING }, { "World ambient", SOUND_TYPE_WORLD_AMBIENT }, { 0, 0} }; Параметры в параметрах Код enum ESoundTypes { SOUND_TYPE_NO_SOUND = 0x00000000ui32, SOUND_TYPE_WEAPON = 0x80000000ui32, SOUND_TYPE_ITEM = 0x40000000ui32, SOUND_TYPE_MONSTER = 0x20000000ui32, SOUND_TYPE_ANOMALY = 0x10000000ui32, SOUND_TYPE_WORLD = 0x08000000ui32, SOUND_TYPE_PICKING_UP = 0x04000000ui32, SOUND_TYPE_DROPPING = 0x02000000ui32, SOUND_TYPE_HIDING = 0x01000000ui32, SOUND_TYPE_TAKING = 0x00800000ui32, SOUND_TYPE_USING = 0x00400000ui32, SOUND_TYPE_SHOOTING = 0x00200000ui32, SOUND_TYPE_EMPTY_CLICKING = 0x00100000ui32, SOUND_TYPE_BULLET_HIT = 0x00080000ui32, SOUND_TYPE_RECHARGING = 0x00040000ui32, SOUND_TYPE_DYING = 0x00020000ui32, SOUND_TYPE_INJURING = 0x00010000ui32, SOUND_TYPE_STEP = 0x00008000ui32, SOUND_TYPE_TALKING = 0x00004000ui32, SOUND_TYPE_ATTACKING = 0x00002000ui32, SOUND_TYPE_EATING = 0x00001000ui32, SOUND_TYPE_IDLE = 0x00000800ui32, SOUND_TYPE_OBJECT_BREAKING = 0x00000400ui32, SOUND_TYPE_OBJECT_COLLIDING = 0x00000200ui32, SOUND_TYPE_OBJECT_EXPLODING = 0x00000100ui32, SOUND_TYPE_AMBIENT = 0x00000080ui32, SOUND_TYPE_ITEM_PICKING_UP = SOUND_TYPE_ITEM | SOUND_TYPE_PICKING_UP, SOUND_TYPE_ITEM_DROPPING = SOUND_TYPE_ITEM | SOUND_TYPE_DROPPING, SOUND_TYPE_ITEM_HIDING = SOUND_TYPE_ITEM | SOUND_TYPE_HIDING, SOUND_TYPE_ITEM_TAKING = SOUND_TYPE_ITEM | SOUND_TYPE_TAKING, SOUND_TYPE_ITEM_USING = SOUND_TYPE_ITEM | SOUND_TYPE_USING, SOUND_TYPE_WEAPON_SHOOTING = SOUND_TYPE_WEAPON | SOUND_TYPE_SHOOTING, SOUND_TYPE_WEAPON_EMPTY_CLICKING = SOUND_TYPE_WEAPON | SOUND_TYPE_EMPTY_CLICKING, SOUND_TYPE_WEAPON_BULLET_HIT = SOUND_TYPE_WEAPON | SOUND_TYPE_BULLET_HIT, SOUND_TYPE_WEAPON_RECHARGING = SOUND_TYPE_WEAPON | SOUND_TYPE_RECHARGING, SOUND_TYPE_MONSTER_DYING = SOUND_TYPE_MONSTER | SOUND_TYPE_DYING, SOUND_TYPE_MONSTER_INJURING = SOUND_TYPE_MONSTER | SOUND_TYPE_INJURING, SOUND_TYPE_MONSTER_STEP = SOUND_TYPE_MONSTER | SOUND_TYPE_STEP, SOUND_TYPE_MONSTER_TALKING = SOUND_TYPE_MONSTER | SOUND_TYPE_TALKING, SOUND_TYPE_MONSTER_ATTACKING = SOUND_TYPE_MONSTER | SOUND_TYPE_ATTACKING, SOUND_TYPE_MONSTER_EATING = SOUND_TYPE_MONSTER | SOUND_TYPE_EATING, SOUND_TYPE_ANOMALY_IDLE = SOUND_TYPE_ANOMALY | SOUND_TYPE_IDLE, SOUND_TYPE_WORLD_OBJECT_BREAKING = SOUND_TYPE_WORLD | SOUND_TYPE_OBJECT_BREAKING, SOUND_TYPE_WORLD_OBJECT_COLLIDING = SOUND_TYPE_WORLD | SOUND_TYPE_OBJECT_COLLIDING, SOUND_TYPE_WORLD_OBJECT_EXPLODING = SOUND_TYPE_WORLD | SOUND_TYPE_OBJECT_EXPLODING, SOUND_TYPE_WORLD_AMBIENT = SOUND_TYPE_WORLD | SOUND_TYPE_AMBIENT, SOUND_TYPE_WEAPON_PISTOL = SOUND_TYPE_WEAPON, SOUND_TYPE_WEAPON_GUN = SOUND_TYPE_WEAPON, SOUND_TYPE_WEAPON_SUBMACHINEGUN = SOUND_TYPE_WEAPON, SOUND_TYPE_WEAPON_MACHINEGUN = SOUND_TYPE_WEAPON, SOUND_TYPE_WEAPON_SNIPERRIFLE = SOUND_TYPE_WEAPON, SOUND_TYPE_WEAPON_GRENADELAUNCHER = SOUND_TYPE_WEAPON, SOUND_TYPE_WEAPON_ROCKETLAUNCHER = SOUND_TYPE_WEAPON, }; Только доступные параметры (отсеяные из предыдущего спойлера) Код SOUND_TYPE_ITEM_PICKING_UP = SOUND_TYPE_ITEM | SOUND_TYPE_PICKING_UP, SOUND_TYPE_ITEM_DROPPING = SOUND_TYPE_ITEM | SOUND_TYPE_DROPPING, SOUND_TYPE_ITEM_TAKING = SOUND_TYPE_ITEM | SOUND_TYPE_TAKING, SOUND_TYPE_ITEM_HIDING = SOUND_TYPE_ITEM | SOUND_TYPE_HIDING, SOUND_TYPE_ITEM_USING = SOUND_TYPE_ITEM | SOUND_TYPE_USING, SOUND_TYPE_WEAPON_SHOOTING = SOUND_TYPE_WEAPON | SOUND_TYPE_SHOOTING, SOUND_TYPE_WEAPON_EMPTY_CLICKING = SOUND_TYPE_WEAPON | SOUND_TYPE_EMPTY_CLICKING, SOUND_TYPE_WEAPON_BULLET_HIT = SOUND_TYPE_WEAPON | SOUND_TYPE_BULLET_HIT, SOUND_TYPE_WEAPON_RECHARGING = SOUND_TYPE_WEAPON | SOUND_TYPE_RECHARGING, SOUND_TYPE_MONSTER_DYING = SOUND_TYPE_MONSTER | SOUND_TYPE_DYING, SOUND_TYPE_MONSTER_INJURING = SOUND_TYPE_MONSTER | SOUND_TYPE_INJURING, SOUND_TYPE_MONSTER_STEP = SOUND_TYPE_MONSTER | SOUND_TYPE_STEP, SOUND_TYPE_MONSTER_TALKING = SOUND_TYPE_MONSTER | SOUND_TYPE_TALKING, SOUND_TYPE_MONSTER_ATTACKING = SOUND_TYPE_MONSTER | SOUND_TYPE_ATTACKING, SOUND_TYPE_MONSTER_EATING = SOUND_TYPE_MONSTER | SOUND_TYPE_EATING, SOUND_TYPE_ANOMALY_IDLE = SOUND_TYPE_ANOMALY | SOUND_TYPE_IDLE, SOUND_TYPE_WORLD_OBJECT_BREAKING = SOUND_TYPE_WORLD | SOUND_TYPE_OBJECT_BREAKING, SOUND_TYPE_WORLD_OBJECT_COLLIDING = SOUND_TYPE_WORLD | SOUND_TYPE_OBJECT_COLLIDING, SOUND_TYPE_WORLD_OBJECT_EXPLODING = SOUND_TYPE_WORLD | SOUND_TYPE_OBJECT_EXPLODING, SOUND_TYPE_WORLD_AMBIENT = SOUND_TYPE_WORLD | SOUND_TYPE_AMBIENT, Сообщение отредактировал aka_sektor - 23.09.2017, 03:36 -------------------- |
 
|
|
24.09.2017, 14:32
Сообщение
#33
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
По типам звуков:
В общем даже на знаю, то ли они очень старые, судя по отметке в исходнике ai_sounds.h Код // Created : 15.08.2002 // Modified : 15.08.2002 То ли, так глубоко запрятаны, что простому ковыряльщику их не найти. Похоже различия типов звуков пока останутся "загадкой зоны". Ничего не остаётся как принять версию: слышат все звуки и все их запоминают, в т.ч. позицию объекта, который их издал. Получается влияет на стелс? Каково именно отличие от тех 4 типов, которые "заносят в денжер менеджер"?Услышал шорох - поднял шухер, побежал смотреть. "Шухер"? Что это за схема?Как мне объяснили, "заносят в денжер менеджер" это: - схема поведения, при которой NPC ждет появления опасного объекта или звука или трупа - в ней указано время действия для каждого типа опасности, как оно выйдет так NPC и перестает её учитывать Например: если NPC услышал выстрел - он насторожился, услышал ещё раз - проверил враг или нет, если враг - пошел в бой - оценивается расстояние и игнорируемые опасности, заданные в логике В общем, попросту говоря - проверяет на опасность. "Шухер" эт его часть. Я думаю, с остальными типами звуков, именно что "NPC слышит и запоминает позицию объекта, который издал звук". Фишка в том, что слышимость после превышения максимума шума именно что "заносит звук в денжер менеджер". Отличие от тех 4 типов в том, что в их случае это происходит сразу же, вне зависимости от их громкости (кроме случаев когда Max AI Dist превышен, т.е. например, игрок слишком далеко, чтобы NPC услышал его выстрел) Т.е. например, если тип звука undefined - он никак не будет влиять на уровень шума. Опять же вопрос, к чему было разбивать на столько типов? Может быть, во времена разработки, задумывалось сделать уникальные реакции на каждый тип. Дмитрий Ясенев его знает... Сообщение отредактировал aka_sektor - 24.09.2017, 14:43 -------------------- |
 
|
|
Текстовая версия | Сейчас: 26.04.2024, 02:59 |