Aller au contenu


[prob. Contourné] Détecter Quelle Musique Est Jouée...


  • Veuillez vous connecter pour répondre
15 réponses à ce sujet

#1 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 13 février 2006 - 10:46

Voilà.

Pour _FoB, j'ai employé une des musiques du pack de Mordicus (remixes de DF) dans une cell particulière.

Je n'ai pas de problème pour faire jouer la musique en boucle, grâce à un timer.

En revanche, en cas de combat dans la cell, la musique change (pour une musique de combat (normal :angel2: )) ce qui n'est pas gênant en soi.

Mais par contre, par la suite, on revient aux musiques d'exploration de Morro jusqu'à la fin du timer. Ce qui est dommage: j'aurais préféré une alternance musique de combat/musique de la cell ou que musique de la cell.

D'où ma question: est-il possible via un script de détecter quelle musique est jouée afin de réinitialiser le timer?

J'ai des doutes, mais ça ne coûte rien de demander. :(

Modifié par Not Quite Dead, 06 mars 2006 - 09:23.

« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#2 Angora

Angora

    Danse avec les bugs


Posté 13 février 2006 - 11:09

Non. Par contre on peut essayer de détecter le combat pour savoir que la musique est interrompue, puis détecter la fin du combat.

Pour ce faire, malheureusement, je ne vois qu'une solution assez lourde : un garde invisible, immortel, muet, et incompétent (0 en force), placé quelque part loin des portes pour qu'il ne quitte pas la cellule (avec 0 en force, il ne peut pas bouger), en mode "AIFollow Player". Par exemple, posé sur une plate forme noire (In_Lava_BlackSquare) dans le vide interstellaire de la cellule, et entouré pour plus de sécurité par des murs invisibles (les "Collision Wall - INVISO!!", dont le seul nom est une raison de s'en servir). En effet, quand on est "dehors" on peut voir "dedans" donc il se rendra compte des attaques dont le joueur fait la cible, mais il ne pourra pas intervenir. Il faut qu'il soit muet, c'est à dire qu'il ait son propre "Voice" d'attaque sans fichier sonore ni sous-titre, sinon le joueur l'entendra, ce qui n'est pas voulu du tout.

Son script détecte s'il passe en mode combat, ce qu'il fera chaque fois que le joueur combat ou est attaqué. Et il détecte aussi quand il cesse de se battre.
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#3 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 13 février 2006 - 11:37

Détecter le combat via un PNJ: voilà une solution de contournement à laquelle je n'avais pas pensé... :woot

Mais je crains que le garde en question ne puisse toujours voir le PJ :D : il y a énormément de rochers qui pourraient cacher le PJ à sa vue et l'empêcher de remplir son office (les couloirs sont tapissés de niches mortuaires).

Comme il n'y a que huit types d'adversaires dans la cell, et qu'ils sont des variantes des squelettes du jeu (donc équipables d'armes), il serait peut-être possible que leur script mettent une variable globale (disons _FoB_BAC_fight) à +1 quand ils ont l'arme tirée ou un sort prêt, et à -1 quand ils sont morts ou qu'ils se remettent en AIwander.

Théoriquement, lorsque tous les adversaires ont cessé le combat ou sont mort, on retomberait à 0.

Mmmh... possible ou simple élucubration? :D

Modifié par Not Quite Dead, 13 février 2006 - 11:37.

« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#4 Angora

Angora

    Danse avec les bugs


Posté 13 février 2006 - 11:55

View PostNot Quite Dead, on 13.02.2006 à 11:37, said:

Théoriquement, lorsque tous les adversaires ont cessé le combat ou sont mort, on retomberait à 0.


C'est utilisable, et sans doute plus simple que le garde invisible, muet, et inaccessible. Si aucun des ennemis n'est en mode combat, alors il n'y a pas de combat.

Seul bémol, des ennemis qui se rajouteraient sans que l'on leur demande ; par exemple les assassins de la confrérie noire ou alors un monstre invoqué par un objet maudit (j'ai déjà vu ça, c'était assez rigolo d'ailleurs : une "amulet of dubious luck" qui augmente la caractéristique Chance du personnage, mais invoque aléatoirement des daedras de temps en temps).

Ce sont cependant des circonstances plutôt rare, donc si on ne peut pas dormir dans la cellule alors le script sur les squelettes devrait suffire dans la plupart des cas.
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#5 Perturbato

Perturbato

Posté 13 février 2006 - 12:14

si j'ai bien compris ton probleme c'ets la musique, meme si je ne suis pas un dieu du script ( pour l'instant)^^ tu pourais changer la musique de combat et celle de morro soit meme en mettant les tiennes a la place, rapide et efficace...

#6 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 13 février 2006 - 12:41

[quote name='Angora' date='13.02.2006 à 11:55' post='382602']
[quote name='Not Quite Dead' post='382595' date='13.02.2006 à 11:37']Seul bémol, des ennemis qui se rajouteraient sans que l'on leur demande ; par exemple les assassins de la confrérie noire ou alors un monstre invoqué par un objet maudit (j'ai déjà vu ça, c'était assez rigolo d'ailleurs : une "amulet of dubious luck" qui augmente la caractéristique Chance du personnage, mais invoque aléatoirement des daedras de temps en temps).
Ce sont cependant des circonstances plutôt rare, donc si on ne peut pas dormir dans la cellule alors le script sur les squelettes devrait suffire dans la plupart des cas.[/quote]
Je n'avais pas du tout pensé à ce cas de figure. :woot Merci de me le faire remarquer.  :)

Je m'en vais rajouter l'interdiction de dormir dans le sanctuaire, et tenter de goupiller cette variante du script durant le weekend. Je vous tiendrai au courant. Encore merci pour tes conseils!

[quote name='Perturbato' date='13.02.2006 à 12:14' post='382609']
si j'ai bien compris ton probleme c'ets la musique, meme si je ne suis pas un dieu du script ( pour l'instant)^^ tu pourais changer la musique de combat et celle de morro soit meme en mettant les tiennes a la place, rapide et efficace...
[/quote]
Le problème est que si je mets mes musiques à la place de celles de Morro, elles seraient jouées dans toutes les cells. :D
Merci pour la suggestion, cependant. :D

Modifié par Not Quite Dead, 13 février 2006 - 12:42.

« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#7 Perturbato

Perturbato

Posté 13 février 2006 - 12:58

np ge croyais que cété possible, heuresement que je n'ai pas encore fait des mods vec des sik sinon se serait la fin ^^ mercia  toi.

#8 Angora

Angora

    Danse avec les bugs


Posté 13 février 2006 - 13:15

En plus, on ne peux pas décemment demander aux gens d'effacer les musiques du jeu quand ils installent un mod...

D'ailleurs, moi, j'ai 105 thèmes "explore" différents, ainsi que 18 thèmes "battle"... Donc même si le mod était fourni avec un installeur spécial qui effacerait sournoisement les musiques du jeu, il louperait toutes celles que j'ai rajouté. (Pour celles de combat, ce ne serait pas une grande perte, maintenant que j'y pense...)
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#9 Perturbato

Perturbato

Posté 13 février 2006 - 13:19

en effet mais je dois avouer que 'étais pas au courant....

#10 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 18 février 2006 - 21:19

Okay. J'ai testé la chose.

Ca focntionne bien évidemment mieux sur le papier qu'ingame.

En fait, les résultats sont plutôt aléatoires. Si le principe est bon, je crains que dans le cas précis, le nombre conséquents d'ennemi (plus d'une vingtaine, les huit types différents confondus) ne rendent trop aléatoire le résultat: il suffit que le joueur soit suffisamment furtif pour tuer un ennemi désarmé ou le tuer avant qu'il n'ait le temps de prendre une arme, ou pendant qu'il passe des armes aux sorts, pour que le compte de la globale soit faussée.

J'ai obtenu (sans modifier le script) des résultats divers: tantôt la musique de combat avait totalement disparu pour faire place à celle de la cell. Tantôt la musique de la cell était jouée durant les combats, puis la musique standard était reprise en fin de combat. Tantôt le script s'exécutait correctement lors du premier combat mais plus par la suite.

Trop de facteurs aléatoires en jeu selon moi...

Du coup, je pense laisser les choses en l'état. Ca marcherait peut-être mieux avec moins d'adversaires, mais pour des raisons scénaristiques c'est ici impossible.

Merci de votre aide. :D
« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#11 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 19 février 2006 - 17:39

Il y a une autre solution envisageable en bricolant... Utiliser un fichier silencieux de 1 ou 2 seconde, avec timer, qui se relance sans arrêt. Du coup, tu n'auras plus de musique du tout, ni pour les combats, ni pour l'exploration (la musique originale n'aura pas le temps de se relancer). C'est faisable.

Ensuite, tu places des activateurs sons (ou tu ajoutes des scripts: par exemple, quand tel PNJ est mort => jouer X son) et tu convertis la musique de ton choix au format wav, et tu laisses jouer en boucle... Reste à voir comment placer les activateurs et régler leur volume, pour que la musique soit à peu près aussi bien audible d'un bout à l'autre de la cell. Il est certain qu'une musique d'ambience (si possible "loopée") convient mieux pour ce genre de procédé.

Modifié par Mordicus, 19 février 2006 - 17:41.

(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#12 Orann

Orann

    Nérévarine de Pertevue


Posté 19 février 2006 - 18:37

On peut faire en sorte qu'un son ne soit pas joué en 3D et que le joueur ai l'impression que le son est directement joué dans ses oreilles.  :green:
Palme d'honneur 2010 pour le mod Archipel de Pertevue

Entamez votre voyage vers l'Archipel de Pertevue ! Test communautaire en cours.

#13 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 19 février 2006 - 18:41

Dans ce cas ça devrait être parfait (je prends note :?: )

L'autre inconvénient est que les .wav prennnent bien plus de place que le MP3, mais bon, si ce n'est qu'une musique...
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#14 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 20 février 2006 - 10:51

Je n'avais pas pensé non plus à cette solution. La musique de combat est perdue, mais ce n'est à la rigueur pas trop grave. Même chose pour la place: s'il y a une musique et non dix... Il faudrait que le streammusic répété inlassablement ne mange pas trop de ressources...

L'idée mérite en tout cas d'être testée. Je vous redis ça la semaine prochaine.

A propos: merci encore pour ton pack de musique, Mordicus. :shock:
« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV

#15 Mordicus

Mordicus

    Philippe Risoli & Muppets show


Posté 20 février 2006 - 11:42

Quote

A propos: merci encore pour ton pack de musique, Mordicus
De rien :shock:

Sinon, pour faire taire la musique:

- Crée un variable Global (short) "StopMusic" avec valeur 0

- attachez le script suivant à un activateur ou à un script d'appel (lorsque tu changeras de cell, ou si le PJ se téléporte, il relancera aléatoirement l'une des 8 musiques Explore - pour que ce ne soit pas toujours la même - ... mais si tu n'attaches ce script qu'à une cell seulement, tu peux retirer la partie "random" et ne laisser qu'une musique originale, voire une musique de ton choix).

begin MusicStopper

short frame
float timer
short musique

if ( frame > 0 )
	set frame to ( frame - 1 )
return
elseif ( StopMusic == -1 )
	set StopMusic to 0
	set timer to 0
	set musique to random 8
if ( musique == 1 )
	 streammusic "Explore/mx_explore_1.mp3"
 elseif ( musique == 2 )
	 streammusic "Explore/mx_explore_2.mp3"
 elseif ( musique == 3 )
	 streammusic "Explore/mx_explore_3.mp3"
 elseif ( musique == 4 )
	 streammusic "Explore/mx_explore_4.mp3"
 elseif ( musique == 5 )
	 streammusic "Explore/mx_explore_5.mp3"
 elseif ( musique == 6 )
	 streammusic "Explore/mx_explore_6.mp3"
 elseif ( musique == 7 )
	 streammusic "Explore/mx_explore_7.mp3"
 else
	 streammusic "Explore/MP3silencieux.mp3"
 endif
	StopScript MusicStopper
	return
endif

if ( CellChanged  )
	set frame to 5
	set StopMusic to -1
	return
elseif ( GetEffect sEffectDivineIntervention )
	set frame to 5
	set StopMusic to -1
	return
elseif ( GetEffect sEffectAlmsiviIntervention )
	set frame to 5
	set StopMusic to -1
	return
elseif ( GetEffect sEffectRecall )
	set frame to 5
	set StopMusic to -1
	return
endif

if ( timer > 0 )
	set timer to ( timer - GetSecondsPassed )
	return
endif
set frame to 5
set StopMusic to -1
set timer to 1
StreamMusic "extra\silence.mp3"; créer un répertoire Extra (data files\music\extra\...), et placer un .mp3 silencieux dedans d'au moins 5 secondes

end

:?
(Ultra)VGM récalcitrant et moddeur allergique aux jeux vidéo.

#16 Not Quite Dead

Not Quite Dead

    Rincevent


Posté 06 mars 2006 - 09:23

Quel grossier personnage je fais! :P

Voilà deux weekend que j'ai adopté la méthode de Mordicus (qui soit dit en passant fonctionne: mieux vaut la musique de la cell passée en boucle et le sacrifice de la musique de combat que le fatras aléatoire obtenu lors de mon essai précédent) et je ne l'ai pas encore remercié.

Merci, donc. :evil:
« I was a soldier! I killed people!
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)