🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Aspetto
🇮🇹 Italiano (Italian)
🇮🇹 Italiano (Italian)
Aspetto
This page is written for:
1.21
This page is written for:
1.21
I tuoi file audio devono essere formattati in un modo specifico. OGG Vorbis è un formato container aperto per dati multimediali, tra cui audio, e viene usato per i file audio di Minecraft. Per evitare problemi nel modo in cui Minecraft gestisce le distanze, il tuo audio deve essere solo su un singolo canale (Mono).
Molti software DAW (Digital Audio Workstation) odierni riescono a importare ed esportare usando questo formato. Nell'esempio seguente il software open-source gratuito "Audacity" sarà usato per portare i file audio al formato corretto, tuttavia qualunque altro DAW sarà più che sufficiente.
In questo esempio, il suono di un fischio viene importato in Audacity. Attualmente questo è salvato come file .wav
e ha due canali audio (Stereo). Modifica il suono come preferisci e assicurati di cancellare uno dei canali usando il menu a tendina in cima alla "testina".
Quando devi esportare o renderizzare un file audio, assicurati di scegliere il formato del file OGG. Alcuni DAW, come REAPER, potrebbero supportare formati audio OGG a più strati. In questo caso OGG Vorbis dovrebbe funzionare senza problemi.
Inoltre tieni a mente che un file audio può aumentare drasticamente le dimensioni del file della tua mod. Se necessario, comprimi l'audio quando stai modificando ed esportando il file, per mantenere le sue dimensioni al minimo.
Aggiungi un nuovo percorso resources/assets/<mod id here>/sounds
per i suoni della tua mod, e trasferisci qui il file audio esportato metal_whistle.ogg
.
Se non esiste ancora, crea il file resources/assets/<mod id here>/sounds.json
e aggiungici i tuoi suoni.
{
"metal_whistle": {
"subtitle": "sound.fabric-docs-reference.metal_whistle",
"sounds": [
"fabric-docs-reference:metal_whistle"
]
}
}
La voce subtitle fornisce un contesto più approfondito per il giocatore. Il nome del sottotitolo è usato nei file di lingua nel percorso resources/assets/<mod id here>/lang
e verrà visualizzato se l'impostazione dei sottotitoli nel gioco è attiva e se questo suono personalizzato viene riprodotto.
Per aggiungere il suono personalizzato alla mod, registra un SoundEvent nella classe che implementa l'entrypoint ModInitializer
.
Registry.register(Registries.SOUND_EVENT, Identifier.of(MOD_ID, "metal_whistle"),
SoundEvent.of(Identifier.of(MOD_ID, "metal_whistle")));
A seconda di quante voci ci sono nella Registry, le cose potrebbero presto sfuggire di mano. Per evitare che ciò accada, possiamo fare uso di una nuova classe di supporto.
Aggiungi due nuovi metodi alla classe di supporto appena creata. Uno che registra tutti i suoni, e uno che viene usato per inizializzare questa classe in primo luogo. Dopo di che, puoi comodamente aggiungere nuovi attributi SoundEvent
statici personalizzati a seconda delle necessità.
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");
// 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
}
}
Facendo così, la classe entrypoint che implementa ModInitializer
deve solo implementare una riga per registrare tutti i SoundEvent personalizzati.
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"),
SoundEvent.of(Identifier.of(MOD_ID, "metal_whistle")));
// ... the cleaner approach.
// CustomSounds.initialize();
}
}
Usa la classe di supporto per accedere al SoundEvent personalizzato. Consulta la pagina Riprodurre i SoundEvents per imparare come riprodurre i suoni.