Перейти к публикации
Планета Deus Ex

Vsd Dx Class Library


Рекомендованные сообщения

Решил создать новую тему, а то название той старой было какое-то дурацкое.

 

VSD DX — небольшая дополнительная библиотека для Деуса, к-рая включает пока только пару классов для работы с аудио и файлами на диске.

 

1.WinAmp

Позволяет управлять плеером, запущенным в бэкграунде.

2.MusicControl

Позволяет использовать в мапах самые различные аудио-форматы вместо umx

3.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

Изменено пользователем VECTOR
Ссылка на комментарий
  • 3 недели спустя...
В текующей реализации никакой специальной функции для этого нет. Поэтому единственным способом на данный момент является как-нибудь извернутся и сделать это через UnrealScript. Например, реализовать это через таймер и функции GetPosition() и GetLength() в классе-потомке MusicControl. Эти функции есть только в той версии, что приложена к первому посту и до этого в инет не попадала.

 

А можно по подробнее? А то эти функции были бы очень полезны. Например когда враги перебиты, музыка плавно угасает.

Ссылка на комментарий
  • 5 месяцев спустя...

Дико извиняюсь, что не отвечал. Давно уже просто не был на форуме.

 

 

//=============================================================================
// 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

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...