Page 1 of 1

Музыка остается на заднем фоне

Posted: 25 Aug 2016, 18:24
by Coil
Перво-наперво, хочу поздравить команду Umineko Project с долгожданным выпуском всех четырех эпизодов Арки Вопросов. Смотрю и не нарадуюсь, порт ну очень качественный, словно Алхимики сами сподобились выпустить официальный порт на ПК. Спасибо за ваш труд, ребята! :) :D

Теперь к делу. Я пока продвинулся недалеко, едва закончил читать 12-ю главу первого эпизода, и заметил что вот на этом месте https://httpsimage.com/img/UmiEP01-008.jpg
музыка не отключается как должна, а как бы остается играть на заднем фоне до самого конца главы. То же самое происходит в 11-ой, когда Мария рисует на бумаге оккультный круг, но там это не так диссонирует с происходящим.

Re: Музыка остается на заднем фоне

Posted: 25 Aug 2016, 20:19
by vit9696
Спасибо за поздравления, поздравляем и тебя с пойманной ачивкой!
Громкость поправили, косяк встречается в 17 местах во всей игре. Если коротко, то Алхимики криво сконвертировали кривой скрипт Рюю, и этот косяк из PS3 версии перекочевал в нашу :D.

Если длинно… то проблема в японских "погромистах" в целам.
Перво-наперво Рюю пытался выучить школьную математику. Когда он писал функцию cross1, которая по задумке плавно повышает или понижает громкость эффектов до указанной и вдобавок выключает фоновую музыку, он сделал так:

Code: Select all

повторить 10 раз {
   текущая_громкость = текущая_громкость - (текущая_громкость/10)
   …
   установить_громкость в текущая_громкость
}
установить_громкость в 0
Если учесть, что диапазон громкости в игре от 0 до 100, то после 10 повторений в случае изначальной громкости было бы... 90, 81, 73, 66, 60, 54, 49, 45, 41, 37 :D (Так как в ПК движке целочисленное деление, то округление всегда в меньшую сторону). Очевидно, что Рюю хотел использовать при делении громкость до начала эффекта, но хотел — не значит сделал :lol:

Затем пришли Алхимики. Они заметили косяк, поржали и исправили. Только в окончательном скрипте появилась строчка:

Code: Select all

BGM_VOLUME: to 17 over 180 frames (3.000000 secs)
В итоге что в PS3, что у нас громкость уменьшается до 17 из 255 вместо 0. WTF?! Как?!! Продолжаем квест.
Алхимики во многом серьёзно исправили баланс громкости в игре, особенно с учётом добавленной озвучки. Большинство треков, играющих с максимальной громкостью в ПК версии, получили громкость 180 из 255. Более того, процент от этой изначальной громкости может выставить пользователь в настройках (как у нас). Это действительно прекрасно, но из-за такого преобразования… они местами были вынуждены производить магические округления в ту или иную сторону.

В чём прикол? Ну… по всей видимости они немного накосячили с циклами. В коде Рюю было написано "повторить 10 раз", что в коде:

Code: Select all

for %Free8 = 1 to 10
…
next
По всей видимости, японец, который писал конвертер, неправильно понял 1 to 10 и вместо [1, 10] написал [1, 10), исключая 9-е повторение :lol:
180/10 = 18
180 - (9*18) = 18
Но это не 17!!! Вспоминаем про округления, которые они добавляли для преобразования шкал. Так как PS3 движок работает с дробями, а оригинал на ПК работает с целыми числами, почти наверняка они в конце дописали дополнительный -1, чтобы убедиться, что при получении числа 0 < x < 1 оно бы никак не стало 1.

Ну вот что с такими делать :roll:

Re: Музыка остается на заднем фоне

Posted: 25 Aug 2016, 21:22
by Coil
Ничего себе развернутый ответ, не ожидал xD Рад что помог выловить такое :)