VECTOR Опубликовано: 2 февраля 2007 Опубликовано: 2 февраля 2007 (изменено) Решил создать новую тему, а то название той старой было какое-то дурацкое. VSD DX — небольшая дополнительная библиотека для Деуса, к-рая включает пока только пару классов для работы с аудио и файлами на диске. 1.WinAmpПозволяет управлять плеером, запущенным в бэкграунде.2.MusicControlПозволяет использовать в мапах самые различные аудио-форматы вместо umx3.MPlayerПросто проигрывает звуковые файлы4.FileSystemТестовый класс. Ничего особого не умеет. Только примитивная запись и чтение из файла. Описание свойств и функций классов можно найти в файле readme_vsddx.txt. В крайнем случае .u файл можно декомпилить и разобраться самому. А как делать FadeOut? А то я забыл.. В текующей реализации никакой специальной функции для этого нет. Поэтому единственным способом на данный момент является как-нибудь извернутся и сделать это через UnrealScript. Например, реализовать это через таймер и функции GetPosition() и GetLength() в классе-потомке MusicControl. Эти функции есть только в той версии, что приложена к первому посту и до этого в инет не попадала. //============================================================================= // MusicControlWithFadeOut //============================================================================= class MusicControlWithFadeOut extends MusicControl; var float FadeVolume; var bool FadeOut; function Timer() { local DeusExPlayer player; Super.Timer(); if((GetLength()-GetPosition() <= 6000) && FadeOut==False) //За 6 секунд до конца { player = DeusExPlayer(GetPlayerPawn()); FadeVolume=float(player.ConsoleCommand(«get ini:Engine.Engine.AudioDevice MusicVolume»)); FadeOut=True; } if(FadeVolume!=0) { FadeVolume=FadeVolume-25; if(FadeVolume<0) FadeVolume=0; SetVolume(FadeVolume); } } function PreBeginPlay() { Super.PreBeginPlay(); SetTimer(0.500000, True); } VSDDX.zip Изменено 2 февраля 2007 пользователем VECTOR
Kronos Опубликовано: 21 февраля 2007 Опубликовано: 21 февраля 2007 В текующей реализации никакой специальной функции для этого нет. Поэтому единственным способом на данный момент является как-нибудь извернутся и сделать это через UnrealScript. Например, реализовать это через таймер и функции GetPosition() и GetLength() в классе-потомке MusicControl. Эти функции есть только в той версии, что приложена к первому посту и до этого в инет не попадала. А можно по подробнее? А то эти функции были бы очень полезны. Например когда враги перебиты, музыка плавно угасает.
VECTOR Опубликовано: 15 августа 2007 Автор Опубликовано: 15 августа 2007 Дико извиняюсь, что не отвечал. Давно уже просто не был на форуме. //============================================================================= // MusicControlWithFadeOut //============================================================================= class MusicControlWithFadeOut extends MusicControl; var float FadeVolume; var bool FadeOut; function Timer() { Super.Timer(); if(FadeVolume!=0 && FadeOut) { //Просто уменьшаем громкость FadeVolume=FadeVolume-25; if(FadeVolume<=0) { FadeVolume=0; FadeOut=False; } //Вызываем SetVolume для установки новой громкости SetVolume(FadeVolume); } } //Эта функции вызывается например из MissionScript при каком-то событии(например — смерть какого-то героя) function Fade() { Super.PreBeginPlay(); SetTimer(0.500000, True); FadeVolume=float(player.ConsoleCommand(«get ini:Engine.Engine.AudioDevice MusicVolume»)); FadeOut=True; } Далее можно похожим образом запустить другой трек. Вызвать playTrack( ... ) и повышать громкость. Проблема только как сделать это одновременно... Если переборю лень, решу эту проблему... А вообще MusicControl слишком «тупой» для таких вещей, думаю правильнее было бы использовать SoundPlayer через MissionScript.VSDDX.zip
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас