Перейти к содержимому


Фотография

Проигрывание своего аудио скриптом


Лучший Ответ vlad333000 , 14 June 2014 - 11:23

Сначало в файле Description.ext прописываешь свой звук/речь (cfgSounds) звук долженбыть в формате .ogg
Затем в нужно скрипте прописываешь строчку:
playSound "Название звука"

 

Description.ext:

class CfgSounds
{
    sounds[] = {};
    class Название звука // имя использующиеся для вызова в скриптах
    {
        // имя звука в редакторе (пример: эффекты в триггере)
        name = "Название звука";
        // путь до звука (относительно файла с миссией), громкость, тон
        sound[] = {"звуки\звук1.ogg", 1, 1};
        // время субтитров (секунды), текст субтитров (если это речь при использовнии команды say)
        titles[] = {1, "бла-бла-бла"};
    };
};

Что бы добавить еще звуки просто в этом же файле еще раз вставляешь строчки с 4 по 12:

class CfgSounds
{
    sounds[] = {};
    class звук1
    {
    };
    class звук2
    {
    };
};
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 62

#61 OFFLINE   Xenon

Xenon

    Рядовой

  • Пользователи
  • 1 сообщений
  • Откуда:Belarus

Отправлено 22 February 2017 - 12:57

Доброго времени суток, господа. Прошу помочь в такой проблеме: есть скрипт диалога зольдов. Скрипт запускается триггером. Содержимое скрипта такое:

    setacctime 1;
    zold1 say "razg0_0";
    sleep 7;

    setacctime 1;
    zold2 say "razg0_1";
    sleep 3;

    setacctime 1;
    zold 1 say "razg0_2";
    sleep 4;

// и т.д...

В description.ext содержимое такое:

class razg0_0
      {
            name = "razg0_0";
            sound[] = {"\sound\razg0_0.ogg", 10, 1.0};
            titles[] = {1, $STR_razg0_0};
      };
      class razg0_1
      {
            name = "razg0_1";
            sound[] = {"\sound\razg0_1.ogg", 10, 1.0};
            titles[] = {1, $STR_razg0_1};
      };
      class razg0_2
      {
            name = "razg0_2";
            sound[] = {"\sound\razg0_2.ogg", 10, 1.0};
            titles[] = {1, $STR_razg0_2}; 
// и т.д...

Проблема в том, что звук первой фразы (razg0_0) "проглатывается", как будто говорящему в кадык зарядили. Вторая фраза (razg0_1) звучит нормально. Третья - опять "проглатывается". Четвертая, пятая звучат нормально. Ну и т.д. В общем, из 10 фраз - половина не проговаривается. Подскажите куда копать, где искать.

P.S. Заметил такую вещь, что файлы ".ogg" которые произносятся в диалоге нормально весят где-то 50-80 kb, те которые "проглатываются": 130-210 kb. Может это влияет?


  • 0

#62 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 22 February 2017 - 22:21

C  большой долей вероятности, те файлы которые проглатываются, требуют повторной, более актуальной арме 3, перекодировке.


  • 0

#63 OFFLINE   Fawkes

Fawkes

    Рядовой

  • Пользователи
  • 2 сообщений

Отправлено 27 December 2018 - 19:29

Можно ли как то зациклить playsong. через повторяемый тригер не получается. Когда звук кончается, больше не воспроизводится.

В скриптах особо не шарю, но всегда спасали тригеры. Вроде бы в плане редактора 3 часть лучше второй, но постоянно возникают проблемы, которые во второй не встречал

UPD. решил свою проблему по нубски: после проигрывания снова прописал playsong и так много много раз

Я делал так:

У меня было 5 треков. Сначала ставил задающий (стартующий музыку) триггер. В нем прописывал первый трек для проигрывания и условие для срабатывания след.триггера :

Тип активации:

Гражданские

Активация:

Присутствуют

Повторяемый:

галочка отсутствует

Условие:

this

При активации:

playSound a1;p1 say3D "a1";e=true; (где а1 - название первого трека, p1 - источник звука "громкоговоритель к примеру")

Тип таймера:

обратный отсчет:

10 (10 секунд перед началом проигрывания)

 

Далее ставлю еще 5 триггеров в каждом из которых в условии прописывается переменная с предыдущего триггера и длительность трека в секундах +5сек на переход к следующему треку (менюшка "Время ожидания")

 

Тип активации:

НЕТ

Активация:

НЕТ

Повторяемый:

галочка

Условие:

е

При активации:

playSound a2;p1 say3D "a2";f=true;

Тип таймера:

Время ожидания:

115

 

....а дальше всё по аналогии с последним. Пятый триггер соответственно тоже делаем повторяемым и в активации условий пишем снова е=true.

 

Теперь музыка будет все время зациклина в той очередности которую вы прописали.

 

Согласен что не красиво, но тем кто не умеет  и не знает скриптов для упрощения вполне подойдет


  • 0




Яндекс.Метрика