Перейти к содержанию
Планета Deus Ex
Авторизация  
VECTOR

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

Поделиться сообщением


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

 

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

Поделиться сообщением


Ссылка на сообщение

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

 

 

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

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  
×
×
  • Создать...