🇺🇦 Українська (Ukrainian - Ukraine)
🇺🇦 Українська (Ukrainian - Ukraine)
Зовнішній вигляд
🇺🇦 Українська (Ukrainian - Ukraine)
🇺🇦 Українська (Ukrainian - Ukraine)
Зовнішній вигляд
Ця сторінка написана для версії:
1.21.4
Ця сторінка написана для версії:
1.21.4
Ваші аудіофайли потрібно відформатувати певним чином. OGG Vorbis — це відкритий контейнерний формат для мультимедійних даних, наприклад аудіо, який використовується у випадку звукових файлів Minecraft. Щоб уникнути проблем із тим, як Minecraft обробляє дистанцію, ваше аудіо повинно мати лише один канал (моно).
Багато сучасних програм DAW (Digital Audio Workstation) можуть імпортувати та експортувати за допомогою цього формату файлів. У наступному прикладі безплатне програмне забезпечення з відкритим вихідним кодом "Audacity" буде використано для переведення аудіофайлу в правильний формат, однак будь-якої іншої DAW також має бути достатньо.
У цьому прикладі звук свистка імпортується в Audacity. Зараз він зберігається як файл .wav
і має два аудіоканали (стерео). Відредагуйте звук на свій смак і обов’язково видаліть один із каналів за допомогою елемента, що розкривається у верхній частині «голови треку».
Експортуючи або відтворюючи аудіофайл, переконайтеся, що вибрано формат файлу OGG. Деякі DAW, наприклад REAPER, можуть підтримувати декілька форматів аудіошару OGG. У цьому випадку OGG Vorbis має працювати нормально.
Також майте на увазі, що аудіофайли можуть значно збільшити розмір файлу вашого мода. Якщо потрібно, стисніть аудіо під час редагування та експорту файлу, щоб мінімізувати розмір файлу готового продукту.
Додайте новий каталог resources/assets/mod-id/sounds
для звуків у вашому моді та помістіть туди експортований аудіофайл metal_whistle.ogg
.
Додайте новий каталог resources/assets/mod-id/sounds
для звуків у вашому моді та помістіть туди експортований аудіофайл metal_whistle.ogg
.
{
"metal_whistle": {
"subtitle": "sound.fabric-docs-reference.metal_whistle",
"sounds": [
"fabric-docs-reference:metal_whistle"
]
},
"engine": {
"subtitle": "sound.fabric-docs-reference.engine",
"sounds": [
"fabric-docs-reference:engine"
]
}
}
Запис субтитрів надає гравцеві більше контексту. Ім’я субтитрів використовується в мовних файлах у каталозі resources/assets/mod-id/lang
і показуватиметься, якщо ввімкнуто налаштування субтитрів у грі та якщо відтворюється цей спеціальний звук.
Щоб додати спеціальний звук до мода, зареєструйте SoundEvent у ініціалізаторі мода.
Registry.register(Registries.SOUND_EVENT, Identifier.of(MOD_ID, "metal_whistle"),
SoundEvent.of(Identifier.of(MOD_ID, "metal_whistle")));
Залежно від кількості записів реєстру це може швидко стати безладним. Щоб уникнути цього, ми можемо використати новий допоміжний клас.
Додайте два нові методи до щойно створеного допоміжного класу. Один, який реєструє всі звуки, і інший, який використовується для ініціалізації цього класу в першу чергу. Після цього ви можете комфортно додавати нові спеціальні статичні змінні класу SoundEvent
за потреби.
public class CustomSounds {
private CustomSounds() {
// private empty constructor to avoid accidental instantiation
}
// ITEM_METAL_WHISTLE is the name of the custom sound event
// and is called in the mod to use the custom sound
public static final SoundEvent ITEM_METAL_WHISTLE = registerSound("metal_whistle");
public static final SoundEvent ENGINE_LOOP = registerSound("engine");
// actual registration of all the custom SoundEvents
private static SoundEvent registerSound(String id) {
Identifier identifier = Identifier.of(FabricDocsReferenceSounds.MOD_ID, id);
return Registry.register(Registries.SOUND_EVENT, identifier, SoundEvent.of(identifier));
}
// This static method starts class initialization, which then initializes
// the static class variables (e.g. ITEM_METAL_WHISTLE).
public static void initialize() {
FabricDocsReferenceSounds.LOGGER.info("Registering " + FabricDocsReferenceSounds.MOD_ID + " Sounds");
// Technically this method can stay empty, but some developers like to notify
// the console, that certain parts of the mod have been successfully initialized
}
}
Таким чином, ініціалізатору мода потрібно реалізувати лише один рядок, щоб зареєструвати всі спеціальні звукові події.
public class FabricDocsReferenceSounds implements ModInitializer {
public static final String MOD_ID = FabricDocsReference.MOD_ID;
public static final Logger LOGGER = FabricDocsReference.LOGGER;
@Override
public void onInitialize() {
// This is the basic registering. Use a new class for registering sounds
// instead, to keep the ModInitializer implementing class clean!
Registry.register(Registries.SOUND_EVENT, Identifier.of(MOD_ID, "metal_whistle_simple"),
SoundEvent.of(Identifier.of(MOD_ID, "metal_whistle_simple")));
// ... the cleaner approach.
CustomSounds.initialize();
}
public static Identifier identifierOf(String path) {
return Identifier.of(FabricDocsReference.MOD_ID, path);
}
}
Використовуйте допоміжний клас для доступу до спеціального SoundEvent. Перегляньте сторінку відтворення звукових подій, щоб дізнатися, як відтворювати звуки.