Tutoriel (Modding)[1.4.7]Minecraft et les sons

MrMulti7200

Programmeur
21 Juin 2012
132
14
13
France
-- Minecraft et les sons --
[Sommaire]
1 - Les avantages d'AudioMod à vanilla
2 - Les OGG
3 - La pratique ; installer un son
[Prérequis]
- Apprendre un minimum le Java -
- MCP ModLoader, Forge, ou Vanilla -
- Eclipse ou Notepad++ -
-------------------------------------------------------------------------------------------------------------

0 ) Introduction


Ce tuto. consiste à installer un sons, une musique (En rédaction), sans AudioMod, en modding Vanilla, ModLoader, ou Forge.

Pour forge universal en serveur : Attention, pour une version serveur(minecraft_server.jar), il faut supprimer toute les functions qui sont en rapport avec Minecraft.java donc, inutile de mettre les functions présentes dans ce tuto pour votre version serveur, merci de l'utiliser pour votre version client ! :)

-------------------------------------------------------------------------------------------------------------

1 ) Les avantages de l'AudioMod à Vanilla


Pas besoin de l'AudioMod pour ce tuto, la version sans AudioMod permet d'installer des musiques, des sons, vraiment facilement.

-------------------------------------------------------------------------------------------------------------

2 ) Les OGG


Les .OGG sont une extension particulière à codecs multimédias ouvert, et en java, c'est l'extension la plus utilisé.

Nous allons utiliser, nous, les .OGG Vorbis, car le lecteur audio de minecraft a des codecs associés, c'est grâce au PaulsCode, le moteur son OGG de Minecraft.

Bon, passons à une partie bien plus intéréssante !

-------------------------------------------------------------------------------------------------------------

3 ) La pratique ; installer un son


Maintenant, installons un son ;) !

1 - Une classe et une function particulièrement... utile !
La classe s'appelle, Minecraft.java, et nous devons obligatoirement l'utiliser ! Donc dans votre classe de mod, selon ModLoader ou Forge, (sauf Vanilla (Je cherche encore), déclarer ceci :

Code:
private Minecraft mc = Minecraft.getMinecraft();

-- La minute explication --

Ce code permet de récupérer l'instance du jeu ; en gros, récupéré la thread minecraft, actuellement ouvert.

2 - Maintenant, installons le son !

Nous allons crée une function, loadSound() qui veut dire charger les sons, ce sera une classe privé pour moi, bref.

Code:
private void loadSound() {
 
}

Maintenant, importons le son, comme ceci :

Code:
private void loadSound {
    mc.installResources("sound3/tuto/son.ogg", new File(mc.getDataDir() + "tuto/son.ogg");
}

-- Le quart d'heure d'explication --

Décapitons ce bout :tnt: "sound3/tuto/son.ogg" :

Donc ici, ce n'est pas le chemin de votre son .OGG mais bien la déclaration et préciser à minecraft ce qu'est ce fichier .ogg, sa ce découpe en 3 partie :

[sound3/newsound]/[nom].[extension]


Voilà, j'utilise moi sound3, car ce choix précise les sounds, mais newsound, je ne sais pas trop.Pour l'extension j'ulise le .OGG, je fais bien.
Maintenant on va en crée un autre, qui va, normalement vous faire tout comprendre :

"sound3/tuto/son.ogg"

J'utilise le sound3 et le son a comme nom : "tuto.son", car oui, minercraft remplaçe les / par des . qui seront jouables grâce à ce nom.Ensuite, je précise que ce son est en extention .OGG, donc appel le Codec PaulsCode.

Vous pouvez aussi faire autant de slash après le nom, ex : "sound3/lk/ok/lo/ml.ogg", il sera jouable dans le jeu, avec le nom suivant : "lk.ok.lo.mk".

-- La minute explication ; le new File() --

Ce new File(...) précise le chemin de votre son. Par exemple, je veut que mon fichier .OGG (donc le son) sois dans le .minecraft, simple je vais utiliser ceci :

Code:
new File(mc.getDataDir());

Ensuite, je veut qu'il sois placé dans un dossier qui s'appelle "tuto" et que mon fichier s'appelle "son.ogg" :


Code:
new File(mc.getDataDir() + "tuto/son.ogg);

Et voilà, normalement, le son est correctement installé, et donc, maintenant, nous allons voir comment jouer le son !

3 - Jouons le son !

Maintenant que le son est OK, nous allons le jouer.

Il suffit juste d'insérer cette portions de code dans l'event choisis :

Code:
// Lorsque que une variable type World est présente :
 
world.playSoundAtEntity(Minecraft.getMinecraft().thePlayer, "tuto.son", 50F, 50F);
 
// Lorsque que une variable type World n'est pas présente :
 
Minecraft.getMinecraft().theWorld.playSoundAtEntity(Minecraft.getMinecraft()thePlayer, "tuto.son", 50F, 50F);

Voilà. Passons à la minute d'explication :

-- La minute d'explication --

Dans la function playSoundAtEntity, il y a trois parties : Ou jouer le son ?, Dans quelle monde ?, Le volume, Le pitch.

Dafuck le Pitch ?

D'après mes connaissances musicales, le Pitch augmente les aigu et le Tempo du son si on l'augmente plus de 50, baisse les aigu et augmente les graves et le tempo en le diminuant en-dessous de 50.
Le Pitch est sur une échelle de 0 à 100 ;
  • De 0 à 50 : Un pitch grave, un tempo (très) lent.
  • 50 : Le tempo et les aigu, grave, et medium normale régulé à 120 pour le tempo en Ternaire.
  • De 50 à 100 : Un pitch aigu, un tempo (très) rapide, grave basse, aigu haute.
Voilà, c'est important car si vous voulez dans l'avenir, devenir un très bon moddeur avec PaulsCode ou autre manipulation de son, c'est cool. Pour mon charabia, Google est votre ami sans faire de pub.
En conclusion, il est donc important pour votre son d'être sur un Pitch de 50, pour pas déformer votre son.

Pour la musique, Multi cherche encore, Mais en tout cas, merci d'avoir lu :)
 

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 937
159
3 004
347
27
Alsace
www.minecraftforgefrance.fr
Juste une remarque, ton tuto ne s'applique pas (ou mal) à forge, car forge possède un event sound afin que ton mods ne bug pas avec le smp. En passant, l'eventsound de forge permet de mettre les sons directement dans le .zip de ton mod
 

MrMulti7200

Programmeur
21 Juin 2012
132
14
13
France
Juste une remarque, ton tuto ne s'applique pas (ou mal) à forge, car forge possède un event sound afin que ton mods ne bug pas avec le smp. En passant, l'eventsound de forge permet de mettre les sons directement dans le .zip de ton mod
Merci de l'info je ne savais pas, c'est plutôt pour ModLoader :)