[Tuto] Comment assigner un fichier audio à une interface

View previous topic View next topic Go down

[Tuto] Comment assigner un fichier audio à une interface

Post by keltwookie on Wed 20 Apr - 18:11

Ce didacticiel s'adresse aux débutants et n'est qu'une traduction (et parfois adaptation) en Français de tutoriels déjà existants.
Sources:  ici et ici
Les académiciens de la langue de Molère m'excuseront ici si j'use et abuse d'anglicismes, mais je pense que cela permettra aux lecteurs de mieux apréhender l'architecture générale et les commandes de Torque 3D, qui aux dernières nouvelles, n'est pas prévu pour être traduit.

Outils utilisés:
Audacity, Notepad ++

Je considère que vous savez déjà créer un projet Torque 3D et que la manipulation d'une interface basique (GUI pour Graphic User Inerface) vous est déjà familière. Sinon, je ne saurais trop vous suggérer de commencer par là,  Pour les autres, c'est parti:

L'audio dans Torque 3D:


2D – Utilise les deux (ou plus) haut parleurs et se joue toujours à volume normal, sans effet de distance (Effet Doppler)
Exemples; Musiques, sons d'ambiances et environementaux, etc...

3D – Possède un effet de distance dans les phases de jeu. Doit absolument être un fichier mono ou il ne s'éxecutera pas.
Exemple: Un tir d'arme dont le son décline à mesure que le projectile s'éloigne de son point d'origine.

Cela pourra fonctionner avec une piste mono juouée en stéréo (2D) mais pas avec une piste stéréo jouée en 3D.

Comme vous le savez déjà, T3D utilise le format Ogg Vorbis (*.ogg) pour l'audio, d'un qualité supérieure au *.mp3, et bien moins lourd qu'un *.wav. Audacity va nous permettre d'encoder le fichier audio désiré au format idoine. Une fois fait (pas besoin de tutos pour ça je pense), placer votre fichier obtenu dans un réperoire  'music' que vous aurez créé dans:
MyProjects\ <nom de votre projet>\game\art\sound\

Edition des fichiers:


*NB: On ne le dira jamais assez, pensez à faire des copies des fichiers originaux et/ou stables, multipliez les sauvegardes.*

1) Nous voici sur notre interface de travail, c'est pauvre, me direz vous, à part les couleurs et designs divers et variès que vous auriez configuré, cela manque d'ambiance, nest ce pas?
Fermez T3D pour l'instant et, avec Notepad++, ouvrez:

<nom de votre projet>\core\scripts\client\audiodescription.cs autour de la ligne 117  :

Code:
//-----------------------------------------------------------------------------
// Music
//-----------------------------------------------------------------------------

singleton SFXDescription( AudioMusicLoop2D : AudioMusic )
{
  isLooping         = true;
  isStreaming       = true;
};

*NB: Notez les commentaires commencant par //,  si vous en prenez l'habitude, vous pourrez reprendre un travail des mois plus tard, vous serez toujours de quoi il s'agit. Bien sûr, il faut effacer ces commmentaires dans la version définitive du fichier pour plus de rapidité (l'interpréteur n'"interprète" pas tout, mais lit tout!), quand on en est au début d'un projet, pas de différence notable, mais sur plusieurs gigas on le sent.*

Nous allons maintenant éditer notre propre description audio, appelez la comme vous voulez, mais allons y pour "MainMenuThemeLoop2D" pour notre exemple.  C'est un son stéréo 2D qui s'éxecutera toujours au même niveau sonore:

Code:

singleton SFXDescription( MainMenuThemeLoop2D : AudioMusic )
{
  is3D                  = false;
  isLooping         = true;
};

is3D =  : nous ne voulons pas d'un son 3D, ceux si étant mono et réservés aux tirs d'armes, par exemple (voir plus haut), donc  "false" bien sûr
isLooping=  : Nous voulons que la séquence tourne en boucle donc: "true"


2) Mainenant, allez dans <nom de votre projet>\script\client\ , puis ajoutez à la fin de init.cs :

Code:

//Main menu SFX profile

new SFXProfile(MainMenuTheme)
{
  filename = "art/sound/music/mon_fichier_audio.ogg";
  description = "MainMenuThemeLoop2D";
  preload = false;
};

Puis à la fin de  <nom de votre projet>art/gui/MainMenu.gui :

Code:

//Add MainMenuTheme to Main GUI

function MainMenuGui::onWake(%this)
{
  ...

  //play sound
  $maintheme1=sfxCreateSource("MainMenuTheme");
  $maintheme1.play();
  echo("Start Main Menu Theme");
}

function MainMenuGui::onSleep(%this)
{
  //close sound
  $maintheme1.stop();
  echo("Stop Main Menu Theme");
}

Et voilà, vous avez maintenant une musique contrôlable via le menu options audio de votre projet  Yahoo

Prochain épisode: Assigner des sons aux boutons d'une interface Cool


Last edited by Myrdhin on Sun 24 Apr - 13:30; edited 2 times in total

_________________
"First we copy, then we improve, then only we create" *Confucius - 551-479 BC*
avatar
keltwookie
Admin
Admin

Date d'inscription : 2012-10-17

Back to top Go down

Re: [Tuto] Comment assigner un fichier audio à une interface

Post by keltwookie on Fri 22 Apr - 16:47

3) On va assigner 2 sons pour notre boutton. En effet: 1 quand on clique dessus, et 1 quand on passe le curseur au dessus.

Une fois les fichiers prêts; on aura besoin de créer une nouvelle description dans game\core\scripts\client\audioDescription.cs.

*Pas de sons dispos? Garage Game a pensé à vous:
http://klgs.forumactif.org/t237-fr-incroyable*

Donc, re-NP++:

Code:
//Add SFX description

singleton SFXDescription( GuiButtonDown2D : AudioGui )
{
   isLooping = false;
};

singleton SFXDescription( GuiButtonOver2D : AudioGui )
{
  isLooping = false;
};


Allons maintenant dans  game\scripts\client\init.cs, ajouter:

Code:
//Add ButtonGui SFX Profile

new SFXProfile(AudioButtonDown)
{
   filename = "art/sound/ui/my_cool_button_down.ogg";
   description = "GuiButtonDown2D";
   preload = false;
};

new SFXProfile(AudioButtonOver)
{
   filename = "art/sound/ui/my_cool_button_over.ogg";
   description = "GuiButtonOver2D";
   preload = false;
};

Ensuite, dans: game\art\gu\defaultGameProfiles.cs au début du fichier on ajoute ceci:

Code:
GuiMenuButtonProfile.soundButtonOver = "AudioButtonOver";
GuiMenuButtonProfile.soundButtonDown = "AudioButtonDown";

GuiMenuButtonProfile.soundButtonOver = "AudioButtonOver";
GuiMenuButtonProfile.soundButtonDown = "AudioButtonDown";

Et hop, voili voilou !

*NB: si d'autres veulent créer un tuto sur ce forum, qu'ils ne se gênent surtout pas Smile *


Last edited by Myrdhin on Sun 24 Apr - 13:32; edited 2 times in total

_________________
"First we copy, then we improve, then only we create" *Confucius - 551-479 BC*
avatar
keltwookie
Admin
Admin

Date d'inscription : 2012-10-17

Back to top Go down

Re: [Tuto] Comment assigner un fichier audio à une interface

Post by keltwookie on Sun 24 Apr - 12:33

Quelques petites erreurs avaient été commises dans la seconde partie du tuto, elles sont maintenant corrigées, toutes mes excuses.

_________________
"First we copy, then we improve, then only we create" *Confucius - 551-479 BC*
avatar
keltwookie
Admin
Admin

Date d'inscription : 2012-10-17

Back to top Go down

Re: [Tuto] Comment assigner un fichier audio à une interface

Post by Sponsored content


Sponsored content


Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum