Звуки по новой (та ветка безнадёжно затеряна, честно) #428
Open
Звуки по новой (та ветка безнадёжно затеряна, честно) #428
Conversation
…t + rename; added 2d sound ; added fade to play and stop
…d zone which triggers sound TODO: Complete zone Refact log in sound component
…nger changed base sound
Collaborator
|
братан, тебя с такими коммитами никуда не пропустят |
irazaurus
requested changes
Apr 3, 2026
Collaborator
There was a problem hiding this comment.
сори, я не все прям посмотрела, тк устала, но anyways тебе тут есть, что поправить.
- мне кажется почти во всех функциях можно параметры/часть параметров const сделать, чекни этот момент
- поменяй сырые ссылки на
TObjectPtr, например. сырые ссылки вообще лучше никогда не использовать в качестве параметров класса, но можно для передачи в функцию в качестве аргумента или локальном создании тоже внутри функции (https://forums.unrealengine.com/t/when-should-tobjectptr-t-be-used-outside-of-upropertys/2583905) - почисти историю коммитов. пообъединяй их, напиши нормальные названия и описания. Алина прям подробный гайд писала на один из моих пул реквестов (см. последний зарезолвенный коммент здесь #310 (review) -- там же она написала про то, что лучше иметь меньше 10 коммитов на один пр)
- ненужные изменения gitignore
- и еще парочка вопросов у меня появилась по коду
| DerivedDataCache/* | ||
|
|
||
| enc_temp_folder/* | ||
| TODO.txt |
Collaborator
Author
There was a problem hiding this comment.
Я туда пишу обычно, что мне осталось делать и что я сделал, чтобы это в одном месте лежало.
Это же просто один txt в gitignore...
Collaborator
|
и еще -- как добавлять звуки на уровень гдшникам? это без кода можно сделать? |
PosAlina
requested changes
Apr 3, 2026
Collaborator
Author
Можно сделать без кода, но тогда он в манагер не попадёт :/ |
Collaborator
Author
|
Так к неймингу я сейчас морально не готов, потом переименую коммиты, остальное ответил / сейчас запушу |
Collaborator
Author
…ytem; moved system to new folder; constness and etc refact
Collaborator
Author
|
Коммиты буду переназывать уже после того как все правки закончатся |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Close #32
И так, как пользоваться
(не гд)1) SoundManager - ядро, чтобы оно работало нужно на каждом уровне вызывать при загрузке InitGlobalAudio
С передачей туда Mix и мапы SoundClassов (1 раз делаем для каждого уровня). Уже есть готовый mix и sound classы, не знаю, нужно ли будет создавать ещё какие-то
(не гд) 2) EG2IASoundType - просто enum для более удобной работы со звуком, можно будет потом получать значения глобал звука или ставить их с помощью него (я так и не понял останутся ли настройки)
(для гд важно)3) FSoundConfig - структура с настройками звука
Sound - сам звук, можно пихать просто wav, можно sound cue (ещё почитал про meta sounds, их по идее тоже можно)
WorldLocation - ставит координату звука, если нужно
AttachToComponent - то к чему звук будет прикреплён, выбираем нужного актора (любого), можем выбрать у него компонент, если нужно, если нет, тогда он приконектится к root component
AttachmentRules - как именно прикрепляется, если здесь snap to target (приклеится к компоненту самому звук), то world location не имеет смысла настраивать
VolumeMultiplier и PitchMultiplier - отдельные от глобальных настройки для звука (чтобы можно было какой-то звук относительно другого сделать тише и т.п., и т.д.)
bIsPlayingOneTime - звук проигрывается только один раз при первом вызове play, в остальные разы игнорируется play (вынес в манагер, чтобы каждый раз не писать в коде)
bAutoDestroy - просто звук уничтожается сразу после окончания, если вдруг не захотим проигрывать вообще по новой (не связан никак с bIsPlayingOneTime)
bIs2D - переключаем звук в 2D версию (для фоновой музыки либо чего-то, что должно проиграться вообще везде)
ResolvedComponent - сама система всё решит, куда вы там хотите прикрепить, поэтому не трогайте, оно всё равно перезапишется
(не для гд)3) SoundComponent
SetupSounds - отдельная мапа, куда можно сваливать все звуки для данного актора (в моём представлении, прогер пишет код, в коде пишет нужные названия звуков, добавляет их и гд их сможет настроить, ну либо просто сделайте свои переменные, если очень хочется)
Ссылка на звук отдаётся в виде idшки, с помощью неё можно использовать звук в других функциях
Если не получится создать звук, то отдастся -1
Также все сеттеры возвращают bool, чтобы можно было понять, сработало или нет
Паттерн действия:
AddSound(soundconfig) -> сохраняем id любым удобным способом (отдельно я ничего не делал для этого) -> вызываем остальные функции с помощью id