SNDINFO
Материал из DoomDev
(Различия между версиями)
												
			
			Текущая версия (19:00, 12 февраля 2008) (просмотреть исходный код)  | 
			|||
| - | + | __TOC__  | |
| + | SNDINFO содержит множество определений связанных со звуками. Этот ламп позволяет задавать соответствия имен лампов звуков (DSSAWHIT, DSBAREXP и т.д.) любым звуковым событиям, например, смерти игрока или нахождению секрета.  | ||
| - | + | В отличие от Hexen в ZDoom лампы SNDINFO кумулятивны - все найденные лампы SNDINFO обрабатываются в том порядке, в котором они записаны в [[WAD]]е. Поэтому, если нужно что-то изменить, не нужно копировать все из оригинального лампа SNDINFO.  | |
| - | + | В SNDINFO можно использовать комментарии, обозначая их начало символами '''//''' (конец комментария совпадает с концом строки) или заключая их в '''/*''' (начало комментария) и '''*/''' (конец комментария). Всё содержимое комментария игнорируется. (Если вы раньше пользовались блоком SNDINFO в Hexen, обратите внимание, что здесь комментарии не начинаются с символа ''';'''.)  | |
| - | + | Поддерживаются следующие команды:  | |
| - | + | == <логическое_имя> <имя_лампа> ==  | |
| + | Два имени просто записываются подряд в одну строчку: логическое имя (имя звука, используемуе в командах ниже, в игре или в других лампах) и имя лампа звука.  | ||
| + | Логические имена звуков не могут начинаться с символа доллара ($), а имена содержащие пробелы должны быть заключены в кавычки ("). Логические имена звуков не чувствительны к регистру, поэтому «misc/keytry» и «Misc/KeyTry» считаются одинаковыми. Имена звуков не обязаны начинаться с символов «ds».  | ||
| - | + | == $random <псевдоним> {<логическое_имя1> <логическое_имя2> <логическое_имя3> ...} ==  | |
| + | Определяет случайный звук. Созданный псевдоним используется как и обычное логическое_имя, но для проигрывания случайным образом выбирается один из перечисленных в списке звуков. Количество звуков в списке неограничено. Обратите внимание, что соответствие логических имен в списке реальным лампам должно задаваться отдельно.  | ||
| - | + | == $alias <псевдоним> <имя_звука> ==  | |
| + | Задает еще одно логическое имя уже определенному звуку. "Определенный звук" также может быть случайным звуком или псевдонимом. Любое изменение звука-оригинала в последующих SNDINFO автоматически производится и с новым звуком.  | ||
| - | + | == $limit <имя_звука> <количество> ==  | |
| + | Задает максимальное '''количество''' "экземпляров" звука, которое может проигрываться одновременно. 0 - без ограничения.  | ||
| - | + | == $pitchshift <имя_звука> <диапазон> ==  | |
| + | Задает предел случайной вариации высоты указанного звука при проигрывании. '''Диапазон''' может принимать значения от 0 до 7.  | ||
| - | + | == $pitchshiftrange <диапазон> ==  | |
| + | Задает значение pitchshift применяемое по умолчанию ко всем нижеследующим определениям звуков.  | ||
| - | + | == $playerreserve <имя_звука> (устарела) ==  | |
| + | Резервирует указанное '''имя_звука''' для использования игроком. Эта команда должна находиться перед любыми другими определениями звуков игрока и не должна использоваться в [[PWAD]]ах.  | ||
| - | + | == $playersound <класс_игрока> <пол> <логическое_имя> <имя_лампа> ==  | |
| + | Определяет звук, используемый игроком.  | ||
| - | + | '''Класс_игрока''' должен быть 'player', если звук предназначен для стандартного класса игрока Doom, Strife или Heretic. Если же звук предназначен для пользовательского класса, должно использоваться значение свойства [[Classes:PlayerPawn#player.soundclass|Player.SoundClass]]. Если звук предназначен для использования [[S_SKIN|скин]]ом, должно использоваться имя скина. Кроме того, для Hexen допустимы значения 'fighter', 'mage' и 'cleric'.  | |
| - | + | Пол может быть 'male' (мужской), 'female' (женский) или 'other' (другой).  | |
| - | + | На странице [[Звуки игрока]] перечислены все звуки игрока и их назначение.  | |
| - | + | == $playersounddup <класс_игрока> <пол> <логическое_имя> <логическое_имя2> ==  | |
| + | Задает псевдоним для уже определенном звуку игрока  | ||
| - | + | == $playeralias <класс_игрока> <пол> <логическое_имя> <логическое_имя2> ==  | |
| + | Задает псевдоним для уже определенном звуку игрока  | ||
| - | + | == $playercompat <класс_игрока> <пол> <логическое_имя> <совместимое_имя> ==  | |
| + | Определяет псевдоним совмесимости для указанном звука игрока. При определении звука с данным именем совместимости, вместо этого будет переопределен соответствущий звук игрока. При проигрывании также используется соответствующий звук игрока.  | ||
| - | + | == $ambient <индекс> <логический_звук> <тип> <режим> <громкость> ==  | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Определяет звук окружающего мира, проигрываемый при размещении на карте соответствующего предмета (типы 14001-14065).  | |
| - | '''  | + | '''Индекс''' определяет какой тип (14000+индекс) должен иметь соответствующий предмет звука или какой аргумент должен иметь соответствующий универсальный предмет звука.  | 
| - | '''  | + | '''Логический_звук''' определяет проигрываемый звук. Используя один и тот же логический_звук для различных окружающих звуков, можно использовать один и тот же звук с различными параметрами.  | 
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | '''Тип''' может иметь одно из следующих значений:  | |
| + | :* point [<аттен>]  | ||
| + | ::Определяет точечный звук. Громкость, с которой слышен звук уменьшается по мере удаления от источника (соответствующего предмета).  | ||
| - | + | Опциональный дробный параметр аттен указывает с какой скоростью падает громкость по мере удаления от источника. По умолчанию - 1.0.  | |
| - | + | :* surround  | |
| + | ::Проигрывает звук через канал surround с громкостью, независящей от расстояния до предмета-источника.  | ||
| - | + | :* world  | |
| + | ::Указывает, что звук проигрывается с одинаковой громкостью независимо от расстояния до предмета-источника. Ключевое слово 'world' необязательно.  | ||
| - | + | World-звуки были и в [[Heretic]], и в [[Hexen]], а точечные звуки являются нововведением ZDoom.  | |
| + | |||
| + | '''Режим''' может быть:  | ||
| + | :* continuous  | ||
| + | ::Звук проигрывается непрерывным циклом  | ||
| + | |||
| + | :* random минсек макссек  | ||
| + | ::Звук проигрывается через случайные интервалы. Минимум и максимум интервала - дробные значения в секундах.  | ||
| + | |||
| + | :* periodic сек  | ||
| + | ::Звук должен проигрываться через постоянный интервал '''сек''', задаваемый дробным числом в секундах.  | ||
| + | |||
| + | '''Громкость''' - относительная громкость звука (0,0-1,0). 0,0 – звук выключен и никогда не проигрывается. 1,0 – полная громкость. Для точечных звуков это громкость, с которой будет проигрываться звук, когда игрок стоит непосредственно у соответствующего предмета. Чем дальше от него находится игрок, тем тише будет слышен звук. Для остальных звуков это громкость, с которой они будут проигрываться, независимо от местонахождения игрока.  | ||
| + | |||
| + | |||
| + | == $ifdoom  | ||
| + | $ifheretic  | ||
| + | $ifhexen  | ||
| + | $ifstrife ==  | ||
| + | Нижеследующие определения до '''$endif''' обрабатываются только в соответствующей игре  | ||
| + | |||
| + | == $endif ==  | ||
| + | Завершает блок '''$if*'''  | ||
| + | |||
| + | == $map <номер_карты> <музыка> (устарела) ==  | ||
| + | Эта команда определяла музыку карты в [[Hexen]]. Поддерживается только для совместимости и не должна использоваться в новых проектах. Музыка карты должна определяться в лампе [[MAPINFO]].  | ||
| + | |||
| + | == $musicvolume <музыка> <коэффициент> ==  | ||
| + | Задает коэффициент громкости. Используется для компенсации при использовании музыки, которая имеет другую громкость.  | ||
| + | |||
| + | == $registered ==  | ||
| + | Игнорируется. Допустима для совместимости с Hexen.  | ||
| + | |||
| + | == $archivepath <строка> ==  | ||
| + | На данный момент не используется.  | ||
| + | |||
| + | == $mididevice <устройство> (только для [[SVN]]-версии) ==  | ||
| + | Задает устройство по умолчанию для проигрывания данного звукового файла. Может быть полезно, если он хорошо звучит только при одном из способом воспроизведения. Допустимы Timidity, Windows Synth и OPL playback (для MUS).  | ||
| + | |||
| + | == Замечания ==  | ||
| + | В ZDoom поддерживаются различные звуки боли игрока в зависимости от его здоровья. Но в Doom, Heretic и Hexen был только один звук боли, поэтому в SNDINFO сделано так:  | ||
| + |  $playersound		player	male	*pain100	dsplpain  | ||
| + |  $playersounddup        player	male	*pain75		*pain100  | ||
| + |  $playersounddup        player	male	*pain50		*pain100  | ||
| + |  $playersounddup        player	male	*pain25		*pain100  | ||
| + | Для *pain75, *pain50 и *pain25 вместо имени лампа использован *pain100, чтобы он проигрывался независимо от здоровья игрока. Но это, разумеется, можно изменить.  | ||
| + | |||
| + | ----  | ||
| + | |||
| + | В [[SVN]]-версии звук боли и звук смерти может зависеть от типа ущерба. Например:  | ||
| + |  $playersound           player  male    *death-fire     dsburn  | ||
| + | При нанесении ущерба игроку ZDoom сначала попробует найти звук соответствующий типу ущерба, а если такового нет, будет использован общий звук (например, *death).  | ||
| + | |||
| + | == Примеры ==  | ||
| + | Данный пример делает звук смерти игрока случайным:  | ||
| + |  $random pl_death { player/death1 player/death2 player/death3 }  | ||
| + | |||
| + |  player/death1 pldth1  | ||
| + |  player/death2 pldth2  | ||
| + |  player/death3 pldth3  | ||
| + | |||
| + |  $playersound           player  male    *death          pl_death  | ||
| + | Реально проигрывается случайный звук из набора pldth1, pldth2 и pldth3.  | ||
| - | + | {{zdoomwikibased}}{{zdoom}}  | |

