quest'n'click 4.5.0 · r1

Construite pour quest'n'click 4.5.0, révision r1. Si elle est publiée, et laquelle est la courante, est dit par publication.json.

Bruitages

English · Type : référence · Public : auteur · Contexte : dépôt du moteur, projet créé · Statut : prête · S'applique depuis : 4.2.5

Un jeu nomme ses sons par id dans audio.sfx et les joue avec la commande sfx ({ sfx: 'door_open' }). Cette page est la référence des recettes qui les synthétisent depuis la palette Mega Drive commune (sfx.json), de la façon dont npm run assets les publie, et des sous-titres pour les joueurs qui ne les entendent pas.

Les règles

Les bruitages suivent les règles de la musique (Musique en stems), celles qui les concernent :

sfx.json : une recette par bruitage

games/<id>/audio/sfx.json contient une recette par id de audio.sfx. Dans le dépôt du moteur, à sa racine :

# dans le dépôt du moteur
npm run audio -- sfx games/<id>/audio/sfx.json

les rend en games/<id>/audio/sfx/<id>.mp3 : silence final coupé, crête normalisée, fondu de 10 ms à la fin. --only door_open latch n’en rend que certains ; --out <dossier> écrit ailleurs. Un projet créé n’a pas de commande audio : rendez les bruitages dans un clone du dépôt du moteur et copiez les .mp3 dans le game/audio/sfx/ du projet.

Une recette, ce sont quelques lignes d’un ou plusieurs canaux à 60 lignes par seconde, avec les instruments de la palette :

"door_open": { "desc": "a latch, then a wooden creak", "rows": 40, "tracks": [
  { "ch": "NOISE", "ins": "noise_hat", "events": [{ "row": 0, "note": "C6", "vol": 12 }] },
  { "ch": "FM1", "ins": "muted_pluck", "events": [{ "row": 3, "note": "D2", "vol": 118, "fx": [["01", "03"]] }, { "row": 28, "off": true }] }
] }

Les recettes sont rangées sous "sfx" dans le fichier, à côté de "rate" (lignes par seconde, 60 par défaut) et d’un "palette" optionnel (un fichier de palette relatif à sfx.json ; par défaut, la palette commune).

ChampFormePar défaut
descce qu’est le son, en motsaucun
rowsla longueur en lignes (le silence final est coupé de toute façon)32
tracks[].chun canal : FM1…FM6, PSG1…PSG3, NOISEobligatoire
tracks[].insun instrument de la palette, pour toute la pisteaucun
events[].rowla ligne où tombe l’événementobligatoire
events[].noteun nom de note (C6) ou un numéro MIDIaucun
events[].insun instrument pour cet événement seulementcelui de la piste
events[].vol (ou tracks[].vol)FM 0–127, PSG 0–15celui de l’instrument
events[].fxpaires hex : 01 / 02 glissando montant / descendant, 00xy arpège, 04xy vibrato, 0Axy glissé de volume, EDxx retardaucun
events[].offune coupure de noteaucun
gainla crête après normalisation0,9

Le rendu s’arrête sur une recette qu’il ne sait pas jouer, en la nommant : <id>: unknown channel <ch>, <id>: <ch> row <r> needs an instrument, <id>: event at row <r> beyond length <rows>, <id>: <ch> row <r>: more than 4 effects.

Le vocabulaire du jeu d’exemple

Le sfx.json du jeu d’exemple couvre le vocabulaire habituel d’un jeu d’aventure : click, select, success, error, door_open, door_close, latch, coins, cloth, paper, ring, drop, bell, glass, metal, shuffle, chips, pluck, bong. Copiez-le dans un nouveau jeu et gardez les ids : le contenu des jeux d’exemple s’en sert, donc les règles que vous y copiez gardent leur son.

Le moteur lui-même ne joue aucun son sous un id fixe. Les sons qu’il joue de lui-même sont ceux que le jeu nomme dans skin.sounds (phone, plane, confetti, jingle, end ; voir Habillage et polices), et un mini-jeu joue les ids que nomment ses paramètres.

Les sous-titres

Un son qui compte reçoit un sous-titre, montré par écrit pour qui ne l’entend pas, et traduit comme toute ligne :

{ sfx: 'door_slam', caption: '[A door slams upstairs]' }

Le réglage des sous-titres est actif par défaut, et le menu Réglages ne le propose que dans un jeu qui sous-titre au moins un son.

Comment npm run assets les publie

npm run assets (dans le dépôt du moteur, ou dans un projet créé) prépare chaque son que cite le contenu :

QuoiSource par défautSortieEncodage
musiquegames/<id>/audio/music/<fichier>public/assets/audio/music/<fichier>96 kb/s, stéréo
bruitagesgames/<id>/audio/sfx/<fichier>public/assets/audio/sfx/<fichier>128 kb/s, mono
voixgames/<id>/audio/voice/<fichier>public/assets/audio/voices/<fichier>64 kb/s, mono

Dans un projet créé, le dossier est game/ au lieu de games/<id>/. Seul ce qui a changé est réencodé.

games/<id>/sources.json remplace ces motifs ({file} est le fichier nommé dans audio) :

Le côté images de sources.json (motifs, overrides) est sur Images.


Modifier la source de cette page · Signaler une erreur