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}} |