|
| 1 | +--- |
| 2 | +title: Створення власних звуків |
| 3 | +description: Навчіться додавати й використовувати власні звуки за допомогою реєстру. |
| 4 | +authors: |
| 5 | + - JR1811 |
| 6 | +--- |
| 7 | + |
| 8 | +# Створення власних звуків {#creating-custom-sounds} |
| 9 | + |
| 10 | +## Підготовка аудіофайлу {#preparing-the-audio-file} |
| 11 | + |
| 12 | +Ваші аудіофайли потрібно відформатувати певним чином. OGG Vorbis — це відкритий контейнерний формат для мультимедійних даних, наприклад аудіо, який використовується у випадку звукових файлів Minecraft. Щоб уникнути проблем із тим, як Minecraft обробляє дистанцію, ваше аудіо повинно мати лише один канал (моно). |
| 13 | + |
| 14 | +Багато сучасних програм DAW (Digital Audio Workstation) можуть імпортувати та експортувати за допомогою цього формату файлів. У наступному прикладі безплатне програмне забезпечення з відкритим вихідним кодом "[Audacity](https://www.audacityteam.org/)" буде використано для переведення аудіофайлу в правильний формат, однак будь-якої іншої DAW також має бути достатньо. |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +У цьому прикладі звук [свистка](https://freesound.org/people/strongbot/sounds/568995/) імпортується в Audacity. Зараз він зберігається як файл `.wav` і має два аудіоканали (стерео). Відредагуйте звук на свій смак і обов’язково видаліть один із каналів за допомогою елемента, що розкривається у верхній частині «голови треку». |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | +Експортуючи або відтворюючи аудіофайл, переконайтеся, що вибрано формат файлу OGG. Деякі DAW, наприклад REAPER, можуть підтримувати декілька форматів аудіошару OGG. У цьому випадку OGG Vorbis має працювати нормально. |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +Також майте на увазі, що аудіофайли можуть значно збільшити розмір файлу вашого мода. Якщо потрібно, стисніть аудіо під час редагування та експорту файлу, щоб мінімізувати розмір файлу готового продукту. |
| 29 | + |
| 30 | +## Завантаження аудіофайлу {#loading-the-audio-file} |
| 31 | + |
| 32 | +Додайте новий каталог `resources/assets/<0>/sounds` для звуків у вашому моді та помістіть туди експортований аудіофайл `metal_whistle.ogg`. |
| 33 | + |
| 34 | +Продовжте створення файлу `resources/assets/<mod id here>/sounds.json`, якщо він ще не існує, і додайте свій звук до звукових записів. |
| 35 | + |
| 36 | +@[code lang=json](@/reference/latest/src/main/resources/assets/fabric-docs-reference/sounds.json) |
| 37 | + |
| 38 | +Запис субтитрів надає гравцеві більше контексту. Ім’я субтитрів використовується в мовних файлах у каталозі `resources/assets/<0>/lang` і показуватиметься, якщо ввімкнуто налаштування субтитрів у грі та якщо відтворюється цей спеціальний звук. |
| 39 | + |
| 40 | +## Реєстрація спеціального звуку {#registering-the-custom-sound} |
| 41 | + |
| 42 | +Щоб додати спеціальний звук до мода, зареєструйте SoundEvent у [ініціалізаторі мода](./getting-started/project-structure#entrypoints). |
| 43 | + |
| 44 | +```java |
| 45 | +Registry.register(Registries.SOUND_EVENT, Identifier.of(MOD_ID, "metal_whistle"), |
| 46 | + SoundEvent.of(Identifier.of(MOD_ID, "metal_whistle"))); |
| 47 | +``` |
| 48 | + |
| 49 | +## Прибирання безладу {#cleaning-up-the-mess} |
| 50 | + |
| 51 | +Залежно від кількості записів реєстру це може швидко стати безладним. Щоб уникнути цього, ми можемо використати новий допоміжний клас. |
| 52 | + |
| 53 | +Додайте два нові методи до щойно створеного допоміжного класу. Один, який реєструє всі звуки, і інший, який використовується для ініціалізації цього класу в першу чергу. Після цього ви можете комфортно додавати нові спеціальні статичні змінні класу `SoundEvent` за потреби. |
| 54 | + |
| 55 | +@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java) |
| 56 | + |
| 57 | +Таким чином, ініціалізатору мода потрібно реалізувати лише один рядок, щоб зареєструвати всі спеціальні звукові події. |
| 58 | + |
| 59 | +@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java) |
| 60 | + |
| 61 | +## Використання спеціальної звукової події {#using-the-custom-soundevent} |
| 62 | + |
| 63 | +Використовуйте допоміжний клас для доступу до спеціального SoundEvent. Перегляньте сторінку [відтворення звукових подій](./using-sounds), щоб дізнатися, як відтворювати звуки. |
0 commit comments