Tutoriel Utilisation du logiciel Matmos Designer - Ajout de son/musique perso

Colonel Oneill

Aventurier
11 Juin 2012
21
1
3
37
Châtellerault
Bonjour ami moddeur,

Voici un tutoriel pour se débrouiller avec le logiciel "Matmos Designer" crée par Hurricane et disponible ici :
http://www.minecraftforum.net/topic/379925-125-matmos-r12-environmental-sound-atmosphere-simulator/

La page officiel (en anglais) sur l'utilisation de Matmos Designer se trouve à : http://www.minecraftwiki.net/wiki/User:Ha3

Pré-requis :

-Minecraft 1.2.5
-Le mod ModLoader
-Une version de Matmos (avec ou sans le module weapons interactions)
-Une version du Matmos Designer
-Un niveau correct en anglais


Recommandé :

-Le logiciel Audacity pour retoucher, convertir en .ogg les sons.
-L'utilisation du mod Single Player Command, pour pouvoir tester facilement vos conceptions, dispo ici : http://minecraft-univers.net/2012/04/mod-single-player-commands-1-2-5/

-Utilisation du minimun de mod, et de texture pack pour vos essais
-Travail avec 3 copies au moins du dossier racine .minecraft situé dans %appdata% :

une pour sauvegarder votre copie du jeu en version 1.2.5, vierge de tous mod (utile si vous voulez faire une vidéo tutoriel d'installation)

une pour travailler/bidouiller dessus.

une pour sauvegarder une version que vous jugez stable de votre travail.


==============
INSTALLATION :

Vous devez avoir téléchargé et installé une version de Matmos et Modloader :
Pour les installer voir la vidéo ici :

(s'arretez avant la suppression des fichier earthlies_database, etc...)

Pour installer Matmos Designer, extraire le contenu du dossier correspondant à votre système d'exploitation dans le dossier racine de minecraft : %appdata%/.minecraft

=============
LANCEMENT :

Lancer Matmos Designer qui DOIT se trouver dans le dossier .minecraft en l'ouvrant avec Java.
Le logiciel met parfois 2 minutes à s'ouvrir, dès fois c'est instantané.
Lorsqu'il est ouvert, vérifiez qu'il reconnait bien le répertoire de .minecraft en allant dans l'onglet "File" puis "Load reference".

S'il affiche directement le dossier de minecraft c'est bon.
Toujours faire cette vérification avant de commencer à travailler.

S'il affiche system32, c'est mauvais. Fermez alors matmos Designer, puis ré-ouvrez le. Si le problème persiste contactez votre revendeur. Réinstaller Matmos Designer et/ou déplacer tous le contenu du dossier .minecraft vers un dossier temporaire puis le re-déplacer le tous vers .minecraft.


=============
UTILISATION :

--------
Description des fichiers importants :

Dans le dossier .minecraft :

default_reference.xml : La table des variables que vous allez manipuler. A charger en premier après chaque lancement de Matmos Designer.

data_dump.xml : un fichier créé lors de l'appuit sur la touche F7 en jeu (lors de l'extinction et non de lors de l'activation de Matmos) lorsque vous jouez à minecraft. Ce fichier est très important, puisque c'est gràce à lui que vous ferez le relevé d'état des variables à l'instant ou vous avez appuyé sur F7 dans le jeu. Si vous appuyez sur F7 pour faire un data_dump et que le fichier existe déjà, il sera écrasé par le nouveau, sans pré-avis.


Dans le dossier .minecraft\matmos_internal\storage :

Les fichier .xrl.xmlo ici, sont les bases de données du mod Matmos qui contiennent tous le travail d'exploitation des variables pour faire marcher le mod de Hurricane. Les fichiers .xrl.xmlo ne sont pas exploitables sous ce format, pour pouvoir charger une base de donnée dans le Matmos designer, vous devez la renommé en .xml seulement.

Dans le dossier .minecraft\matmos_expansion_r7 :
Pour faire simple, les fichiers .xrl ici sont juste des liens vers un emplacement internet qui vérifit la non modification des fichiers .xrl.xmlo du dossier présenté précedemment. S'ils ont étaient altéré, ils sont re-téléchargé et écrasé.


--------
Organisation :

Pour éviter que votre travail ne soit écrasé à chaque lancement de minecraft, j'ai personnellement fait une sauvegarde des 4 fichiers .xrl.xmlo dans un dossier au choix dans mon espace de travail. Je les ai tous remnommé en .xml et je n'y touche plus. Puis j'ai supprimé les fichiers .xrl et .xrl.xmlo (dans les 2 dossiers présentés précedemment) correspondants aux extensions que je souhaitais modifié. Puis lorsque j'ai créé ma base de donnée perso, je l'ai enregistré en .xml dans le dossier .minecraft\matmos_expansion_r7


Exemple :
Je souhaite ajouter des sons ambiant ou des musique :

Je choisi de modifier le fichier earthlies_database.

Je fais une copie de la base de donnée originale ".minecraft\matmos_internal\storage\earthlies_database.xrl.xmlo" dans mon répertoire de travail sous "Bureau\Mon_mod\earthlies_database.xrl.xmlo"

Je renomme le fichier en : "Bureau\Mon_mod\earthlies_database.xml"

Je supprime le fichier associé earthlies_database.xrl dans ".minecraft\matmos_expansion_r7"

Je copie le fichier "Bureau\Mon_mod\earthlies_database.xml" dans ".minecraft\matmos_expansion_r7"

Je charge ce dernier fichier dans le Matmos Designer et je le modifie.
Une fois terminé, j'enregistre mon travail dans le dossier ".minecraft\matmos_expansion_r7" avec le nom "earthlies_database.xml"

Je vérifie que le fichier correspondant : earthlies_database.xrl n'est pas présent dans ce dossier.

Ainsi ma base de donnée ne sera pas écrasée.

--------
Modifier une base de donnée :

C'est parti, après avoir compris l'environnement du programme, on peut commencer à développer son mod. Nous allons suivre l'exemple de l'ajout d'un bruit de test lorsque le joueur se trouve dans une foret.

Nous allons d'abord faire un relevé d'état des variables, donc demander au jeu de créer un fichier data_dump.xml qu'il placera dans le répertoire principal de minecraft.

Lancer minecraft, placer le personnage ou vous souhaitez avoir un relevé (pour l'exemple trouver une foret, et placer vous en son centre a peu près) et appuyer sur F7, sur l'écran il s'affiche en jaune "Matmos: stopped. Press F7 to re-enable". Le jeu ne crée pas de fichier data_dump lorsque Matmos s'active, c'est a dire lorsque vous réappuyerez sur F7 pour réactiver Matmos (notification en vert).

Maintenant que nous avons un relevé, nous allons l'importer dans le Matmos Designer. Fermez minecraft. Lancer Matmos Designer.

La première chose a faire est de charger le fichier "default_reference.xml" en allant dans l'onglet "File" puis "Load reference". Rien ne change dans la fenêtre pour le moment.

Puis cliquer sur "Load default file" dans l'onglet "Simulator" pour charger le relevé précédement créé. Vous remarquez que la fenêtre change : 2 noms sont apparu, ainsi qu'un onglet "SpecialLarge"

(Si vous aviez deja chargé un fichier data_dump et que vous souhaitiez en charger un nouveau, il faudra cliquer 2 fois sur "Load Default File")

-------
Description des fiches de relevé.

Cliquez sur le menu déroulant "SpecialLarge".
Il y a 9 fiches de relevé :

-La fiche SmallScan est un relevé des blocs détecté dans un volume de 16*8*16 blocs centré autour du joueur.

-La fiche LargeScan est un relevé des blocs détecté dans un volume de 64*32*64 blocs centré autour du joueur.

-Les 2 fiches de type ****PerMil sont les mêmes mais leur résultat est divisé par 1000.
exemple :
LargeScan = 20000 bloc de sable alors LargeScanPerMil = (environ) 20 bloc de sable (cela donne un pourcentage mais sur un rapport de 1000 et non de 100)

-La fiche Instants est très utilisée, et regroupe de nombreuses variables dont vous devrez découvrir la signification et les valeurs possibles.

-La fiche ContactScan détecte les 12 blocs touchant immédiatement le joueur : 1 bloc en haut et en bas, 2 blocs empilés a gauche, a droite, devant, derrière et 2 blocs a l'intérieur du joueur.

Nous devons maintenant charger une base de données existante : cliquez sur "File" puis "Open database", a l'intérieur du dossier matmos_exepansion_r7 choississez le fichier .xml que vous allez modifier.


------
Description de l'onglet Dynamics

Une fiche Dynamics fait la somme de l'état de plusieurs variables pour retourner un seul résultat. Dans notre cas, nous allons utiliser une fiche dynamics pour définir au jeu la détection d'un foret selon nos critères :

Cliquez sur "Add" (tous en bas), donner un nom a la fiche "count_forest_bloc" par exemple.

Cliquez sur "Add" (apparu a droite), une ligne apparait, cliquez sur le long menu déroulant blanc juste en dessous.

La liste des fiches de relevés apparait. Nous définissons une foret avec un LargeScanPerMil. Cliquez sur "Air" pour choisir le bloc a compter. Choississez "leaves" (feuilles) qui a pour code de variable "18"

Cliquez a nouveau sur "Add" (le même au dessus), une ligne ré-apparait, nous allons refaire la même chose, mais pour compter les tronc d'arbre cette fois : LargeScanPerMil, Wood (log) code variable "17".

Vous venez de créer une fiche dynamics qui s'appelle "count_forest_bloc" qui comporte 2 élément a compter : feuille + tronc d'arbre. La fiche retournera donc par exemple, la valeur 100 lorsque le joueur se trouvera dans un environnement LargeScan comprenant 85 blocs de feuilles et 15 blocs de tronc d'arbre (converti en pourcentage 1000.)


------
Description de l'onglet Condition

C'est la ou nous définissons l'activation d'un détecteur(capteur) par une condition donnée :

il y a deux états possible : TRUE activé, détecté
FALSE désactivé, non détecté.

L'onglet Conditions travaille uniquement avec les TRUE.

Nous allons définir une condition pour détecter la foret, cliquez sur "Add" (en bas), la nommer : "detect_forest".

Dans la partie droite, sélectionner la fiche (The sheet). Vous retrouvez la liste des fiches des variables + la fiche dynamic value.

(il aurait été possible de ne pas créer de fiches dynamics, et de compter directement MAIS séparément les blocs de feuilles puis les blocs tronc d'arbre)

Sélectionnons Dynamic Values, puis "with the data":"count_forest_bloc".

Maintenant votre travail consiste à donner une équation qui défini au mieux la foret :
Aidez vous du relevé que nous avons effectuer en jeu, dont l'état des variables sont affiché sous le premier onglet "Simulator". Sélectionnez la fiche "LargeScanPerMil" est regardez l'état des "leaves", il doit etre environ egale a 20.

Retournons maintenant sous l'onglet "Condition" pour finaliser la définition d'une foret avec l'équation supérieure a (is...than) 15 (this value).

Vous avez défini une condition d'activation qui passe a TRUE lorsque, dans la fiche LargeScanPerMil, le comptage des bloc "leaves" et "Wood (log)" atteint 16.


------
Description de l'onglet Sets.

Un Set est un regroupement de Conditions. Une condition n'est pas utilisable seule, elle doit etre englobée dans un Set. Un Set est l'équation logique de plusieurs conditions.

Cliquez sur "Add" (en bas), nommé le Set" "define_forest"
Sur la partie droite, tous en bas, vous retrouvez la liste des conditions.

Cherchez "detect_forest" puis cliquez a droite sur "To True".

Vous avez crée un Set nommé "define_forest" qui passera a TRUE lorsque la condition "detect_forest" passera a TRUE.

L'avantage des Set est de regrouper des conditions :

par exemple : définir la foret et non la jungle.

La jungle se détecte par la présence de nombreuses feuilles également... mais je veux détecter la foret et non la jungle ! Qu'est ce qui différencie la jungle de la foret ? la présence de lianes (bloc "Vines" d'ID 106) ! Je crée donc une condition (sans passer par dynamics, directement dans condition puisque je ne compte qu'un seul type de bloc) que j’appelle 'detect_vines" qui passe a TRUE lorsque dans le LargeScan il y a présence d'au moins 20 blocs de "Vines"

Je retourne dans mon Set "define_forest" et cette fois je place en "to FALSE" la condition "detect_vines".

J'ai crée un Set qui passe a TRUE lorsque la condition "detect_forest" passera a TRUE et qu'il n'y a pas plus de 20 lianes dans la fiche LargeScan.


REMARQUE TRES IMPORTANTE :
Un Set passe a TRUE si TOUTES les conditions données dans la partie TRUE sont activées et si TOUTES les conditions de la partie FALSE est désactivées.


------
Description de l'onglet Event.

Event définit les sons ambiants joués, pas les musiques.
Vous devez OBLIGATOIREMENT placer vos fichiers sons au format .ogg dans le répertire .minecraft\ressources\newsound
Vous pouvez y créer un dossier qui porte le nom de votre choix.

Cliquez sur "Add" en bas, nommez la fiche de son "Bruit_de_test". Puis a nouveau cliquez sur "Add" mais dans la partie droite. Selectionner vos fichiers sons (pour le test sélectionnez tous les fichiers présents dans le dossier "note")

Vous pouvez programmer avec les réglettes, une amplitude mini et maxi et une tonalité mini et maxi. Cela rajoute une touche d'aléatoire pour les bruits ambiants.

Vous pouvez tester vos réglages avec le bouton "Try" en bas.

Les sons seront tous joués mais choisi de manière aléatoire parmi la liste que vous donnez.


------
Description de l'onglet Machines.

Il permet d'associer des Sons (Fiches Events ou musiques perso) aux conditions (Fiches Set).

Cliquez sur "Add" (en bas), nommé la machine "Run_forest".

Dans la partie droite, en partant du haut, dans le 3ème grands cadres, vous retrouvez l'ensemble des Sets créés.

En mode Machine, on ne parle plus de TRUE ou FALSE, on parle de POWER SOURCE ou de JAMMER (brouilleur).

Au contraire des Set, une Machine passe a TRUE si N'IMPORTE LAQUELLE des conditions données dans la partie POWER SOURCE est activée et si AUCUNE des conditions de la partie JAMMER est activées.

Dans le 3ème champ cherchez donc le set "define_forest", passez le en POWER SOURCE (Cliquez sur As Power).

(il n'y aura pas de jammer pour cette exemple, on aurait pu mettre un JAMMER "jungle" par exemple mais on l'a ici déjà définit dans la condition "define_forest")

----
Exemple de jammer:

Pour jouer des sons différents le jour et la nuit dans la foret :
Cela necessite 2 machines :
Pour jouer les sons de jour, je place un jammer "Nuit" dans la machine jour.
Pour jouer les sons de nuit, je place un jammer "Jour" dans la machine nuit.

Il faut définir les Set Jour et Nuit avec des conditions qui analyse l'état de la variable "Time" dans la fiche "Instants".
----

Pour associer un sons a l'activation de la machine, sélectionner dans la partie droite vers le bas, l'onglet "Events", Puis cliquez sur "New".

Dans le menu déroulant en dessous, sélectionnez votre events créé précédemment "bruit_de_test".

Les réglages sont :
Start Delay : nombre de secondes avant l'activation du son après l'activation et le maintient durant ce delai de la machine. (0 ou -1 joue le son dès l'activation de la machine, sans délai)

Minimun : après avoir été joué une première fois par le start delay, minimun est le temps en secondes avant la prochaine répétition du son. (0.25 pour l'exemple)

Maximun : delai maxi entre 2 sons joué. (0.25 pour l'exemple)

Pour associer une musique, sélectionnez "Streams" au lieu de "Events". Je n'ai pas vraiment encore utiliser cette fonctionnalité, je ne peux pas vous aider plus. Cela sera a vous de chercher par vous même ! C'est en forgeant que l'on devient forgeron !


Pour tester le fonctionnement de la machine, cliquez sur "Turn on" tous en bas.

------
Description de l'onglet XML

Voila ici on finalise votre travail : Cliquez sur "Generate XML".
Sélectionnez tous le texte (CTRL+A) et copier le (CTRL+C)
Rendez vous dans le dossier .minecraft\matmos_expansions_r7
Ouvrez le fichier .minecraft\matmos_expansion_r7\earthlies_database.XML (ou celui que vous modifiez) avec un éditeur de texte, sélectionnez tous a nouveau et coller votre travail !

Enregistrer et lancer Minecraft pour tester !


==============
Remarques générales :

Concernant le nommage de vos fichiers son :
Il ne doit pas y avoir de "lien parent" avant un chiffre entre les noms des fichiers.

exemple :
oiseau1.ogg
oiseau2.ogg
On un lien parent "oiseau".

Si vous souhaitez faire jouer dans un "Events" le son oiseau1.ogg et pas oiseau2.ogg vos devez utilisez le nommage suivans :
oiseauA.ogg
oiseauB.ogg
sinon les 2 sons seront joué même si vous délarez un seul son dans l'onglet "Events"

criquet1nuit.ogg
criquet1jour.ogg
Sont également des nommages a éviter.

Ne pas mettre d'espace, ni de caractère autre que a-z et 0-9 et les underscore _ ou les tirets -

Pareil pour le nommage de vos condition, events,machines,etc... dans le Matmos Designer.