HLFX.Ru Forum Страницы (2): « 1 [2]
Показать все 3960 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Alexander Pafos 31-03-2025 в 18:08:

как в воспроизвести звук с определенной секунды? на клиенте. я знаю про функцию playsound но она принимает только путь до файла и громкость.
я хотел сделать радио у которого счетчик времени шел бы независимо от того играет ли звук.

__________________
И по программам их узнаете их...

пржект
https://www.moddb.com/games/silent-vilage


Отправлено Дядя Миша 01-04-2025 в 07:03:

Цитата:
Alexander Pafos писал:
как в воспроизвести звук с определенной секунды?

Это через сентенции можно. Там как раз есть параметры,
v - volume
t - timecompress
p - pitch
s - start in percents
e - end in percents

Вот буковка s это то что тебе нужно. Допусти у тебя файл 10 секунд, а ты хочешь начать воспроизведение с пятой секунды. То есть ровно 50 процентов. Вот и пишешь s50 перед твоим файлом в объявлении секвенции или после файла, я не помню уже, путаюсь вечно. Посмотри как устроены оригинальные секвенции. Так же есть консольная команда spk для их воспроизведения и отладки.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 03-04-2025 в 09:45:

Цитата:
Дядя Миша писал:
Это через сентенции можно. Там как раз есть параметры

Кстати да. Очень удобная вещь. Самое на мой взгляд важное то, что прекэшить звуки не надо. Количество сентенций очень большое, в юбилейном обновлении лимит увеличили до 2048.


Отправлено Sigurth 22-04-2025 в 15:25:

Цитата:
Alexander Pafos писал:
я хотел сделать радио у которого счетчик времени шел бы независимо от того играет ли звук

Не уверен, что такое сработает, но попробовать можно. Просто включи звук с самого начала с громкостью 0 и задай канал CHAN_STREAM (это вроде как не сбрасывает loop-звук в начало если далеко отойти). Затем, когда надо "включить", выставляй громкость 1, когда выключить - 0.
Цитата:
Ku2zoff писал:
прекэшить звуки не надо

На самом деле, звуки вообще прекешить не обязательно. Можно спокойно проигрывать звук на клиенте без прекеша на сервере. Он загрузится на ходу. Прекеш нужен лишь лишь (помимо предзагрузки) для выдачи индекса, чтобы передавать его мессагой с сервера. Иначе с сервера без прекеша звук не проиграть.

__________________
Никогда не поздно сделать мод под хл1


Отправлено Ku2zoff 23-04-2025 в 01:50:

Цитата:
Sigurth писал:
На самом деле, звуки вообще прекешить не обязательно. Можно спокойно проигрывать звук на клиенте без прекеша на сервере. Он загрузится на ходу.

Из-за этого возникают статтеры. Ни один раз такое видел в модах на халфу. Маааленький такой лаг перед проигрыванием звука, когда игра подвисает. Может быть это из-за hdd? У ssd время доступа меньше и скорость чтения выше. Звуки, на самом деле, не так уж много весят, в отличие от текстур. Все звуки можно прекэшить с теперешними объёмами оперативной памяти.


Отправлено Sigurth 23-04-2025 в 05:08:

Цитата:
Ku2zoff писал:
Маааленький такой лаг перед проигрыванием звука

У меня на HDD такое было. Я в свое время таким костылем "увеличил" себе лимит звуков. Можно еще более костыльным костылем предзагрузить такие звуки на клиенте. Где-нибудь в CHud::Init() воспроизвести все необходимые звуки разом с нулевой громкостью и на одном канале. Тогда никаких микрофризов во время игры не будет. Правда сейчас уже не так актуально с новыми лимитами.

А теперь у меня так вообще целая система саундскриптов, как в хл2, все в блокнотике настраивается, и все звуки на клиенте играются. И все это появилось из-за лимита в 512 звуков) А еще из-за того, что конструкции switch/case или if/else, которые выбирают рандомно один звук из нескольких, занимают слишком много места и времени для внесения туда изменений.

То есть вместо какого-нибудь:
C++ Source Code:
1
float flVolume = RANDOM_FLOAT ( 0.25 , 0.75 ) * 0.4;//random volume range
2
switch ( (int)(RANDOM_FLOAT(0,1) * 6) )
3
{
4
  case 0: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark1.wav", flVolume, ATTN_NORM);	break;
5
  case 1: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark2.wav", flVolume, ATTN_NORM);	break;
6
  case 2: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark3.wav", flVolume, ATTN_NORM);	break;
7
  case 3: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark4.wav", flVolume, ATTN_NORM);	break;
8
  case 4: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark5.wav", flVolume, ATTN_NORM);	break;
9
  case 5: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark6.wav", flVolume, ATTN_NORM);	break;
10
}


У меня просто:
C++ Source Code:
EmitSound("Spark");


А все параметры в блокнотике в таком виде:

code:
"Spark" { $chan CHAN_VOICE $vol RANDOM( 0.1 0.3 ) "ambient/electro/spark1.wav" "ambient/electro/spark2.wav" "ambient/electro/spark3.wav" "ambient/electro/spark4.wav" "ambient/electro/spark5.wav" "ambient/electro/spark6.wav" "ambient/electro/spark7.wav" "ambient/electro/spark8.wav" }

__________________
Никогда не поздно сделать мод под хл1


Отправлено Дядя Миша 23-04-2025 в 11:38:

Цитата:
Sigurth писал:
А все параметры в блокнотике в таком виде:

у меня для описания эффектов нечто похожее

C++ Source Code:
1
soundDef "ricochet_sound"
2
{
3
  sound		"weapons/ric1.wav"
4
  sound		"weapons/ric2.wav"
5
  sound		"weapons/ric3.wav"
6
  sound		"weapons/ric4.wav"
7
  sound		"weapons/ric5.wav"
8
  volume		"0.7f..0.9f"
9
  channel		"auto"
10
  attenuation	"1.0"
11
  pitch		"90..105"
12
}

Рандом через двойную точку задаётся.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Sigurth 14-05-2025 в 11:15:

Задам наверное очень нубский вопрос. Возможно это тема уже обсуждалась, но честно я не нашел, да и особо не искал. В общем, можно ли что-то где-то подкрутить, чтобы при компиляции карты текстуры с масштабом меньше 1.0 имели так же и меньшее количество лайтмап. Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах. Особенно вырвиглазно смотрится, когда х1.0 текстуры успешно освещаются, а х0.5 детали на них "не дотягиваются" до света. (Пример на скрине: стены х1, вентиляция и коробки х.5)

В общем, можно ли такое просто включить при компиляции (если да - то как), или надо лезть в код компиляторов (если да, то может кто-то уже лазил и поделится результатом)

__________________
Никогда не поздно сделать мод под хл1


Отправлено ZGreen 14-05-2025 в 13:07:

Наверное, тебе поможет параметр -notexscale у hlrad.


Отправлено Дядя Миша 14-05-2025 в 16:09:

Цитата:
Sigurth писал:
Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах

Разумеется можно, но только для Ксаша и компилировать надо P2ST.

В настройках ворлдспавна указываешь zhlt_worldluxels 2 и готово.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 14-05-2025 в 17:24:

Цитата:
ZGreen писал:
Наверное, тебе поможет параметр -notexscale у hlrad.

ЕМНИП, это работает в обратную сторону, когда текстура не сжата, а растянута. Что, в общем, логично на дату выхода халфы. Подавляющее большинство текстур в халфовских вадах имеют размеры для наложения на игровые объекты в масштабе 1 к 1. Дверь будет правильного размера, ящик тоже, вентиляционная шахта тоже. А вот всякие уличные декорации, типа скал, голой земли и прочего, смотрятся плохо в масштабе 1 к 1, видно, что текстура повторяется. Маппер её растягивает, поворачивает, чтобы выглядело красивее. Сейчас, понятное дело, текстуры более высокого разрешения, вот и вылезла проблема. Для ванильной халфы наверное поможет загрузчик внешних текстур высокого разрешения. А так да, переходить на ксаш.


Отправлено ZGreen 15-05-2025 в 02:31:

Действительно, скомпилировал коробочку с этим параметром и без него, разницы никакой.


Отправлено Sigurth 15-05-2025 в 06:27:

Цитата:
ZGreen писал:
скомпилировал коробочку с этим параметром и без него, разницы никакой

Да, я с ним уже пытался компилить. Видимо реально придется переходить на ксаш. Но пока на текущем этапе разработки не хочется. Плюс охота сделать именно мод, чтобы потом в теории выложить его в стим. А пока я решил эту проблему подбором подходящих текстур другого размера в самых темных местах, их все равно в темноте почти не видно)))

__________________
Никогда не поздно сделать мод под хл1


Отправлено Crystallize 15-05-2025 в 07:55:

Цитата:
Дядя Миша писал:
Разумеется можно, но только для Ксаша и компилировать надо P2ST.

Праймом тогда уж, раз в P2ST отваливается рефлективность текстур.


Отправлено ZGreen 15-05-2025 в 13:03:

Цитата:
Sigurth писал:
Да, я с ним уже пытался компилить. Видимо реально придется переходить на ксаш.

Странно, что ключ вообще никакого эффекта не оказывает. Ни на растянутых текстурах, ни при скукоженых.

Добавлено 15-05-2025 в 20:03:

Толи я неправильно понимаю инструкцию, толи не работает.


Отправлено Дядя Миша 15-05-2025 в 14:31:

Цитата:
Crystallize писал:
раз в P2ST отваливается рефлективность текстур.

она там наоборот физически корректная, а не вырвиглазная.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 16-05-2025 в 01:39:

Цитата:
Дядя Миша писал:
она там наоборот физически корректная, а не вырвиглазная.

физичность алгоритма я не оспариваю, но мы ведь находили вот это. Починить я в тот раз по-быстрому не смог.


Временная зона GMT. Текущее время 14:48. Страницы (2): « 1 [2]
Показать все 3960 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024