wolkenstuermer
26.11.2017, 22:57
Hola.
Diesmal keine Frage, sondern nur ein "ich habs nun hingekriegt" und vielleicht brauchts irgendwann ja irgendjemand.
Ich habe in Arma nie verstanden, wie man richtig Musik ein- und ausblendet. Das hat irgendwie immer gesponnen. Lag daran, dass die Programmierer von BI schon lustige Leuts sind, die mit dem Wort "intuitiv" nicht wirklich was anfangen können, bzw. ich einfach zu inkompatibel im Denken bin.
Daher nun eine Schritt-für-Schritt-Anleitung für Gleichverdummte :ugly:
Man blendet z.B. nur dann richtig ein, wenn man vorher komplett ausblendet.
0 fadeMusic 0;
Dann spielt man die Musik ab (die Zahl gibt an, ab welcher Sekunde):
playMusic ["track", 0];
DANN blendet man (z.B. 10 Sekunden) ein:
10 fadeMusic 1;
Aber das alleine bringt nix, weil hier kein "sleep" eingebaut ist, es funktioniert nur mit einem zusätzlichen sleep in Höhe des Fades:
sleep 10;
Jetzt spielt man die Länge des Stücks (und zieht davon das FadeIn, FadeOut und die anfangs ausgewählte Startzeit ab):
sleep 120-10-10-10;
Jetzt blendet man aus:
10 fadeMusic 0;
Pennt wieder exakt die Zeit vom Fade:
sleep 10;
Und kickt die Musik dann vollständig (sicherheitshalber)
playMusic "";
Für ACE3-Liebhaber (steht schon in einem anderen Thread) sei erwähnt, dass man mit
ace_hearing_disableVolumeUpdate = true;
ganz am Anfang und mit
ace_hearing_disableVolumeUpdate = false;
ganz am Ende, Ace dazu überreden kann, kurz mal innezuhalten, mit seiner Sound-Updaterei und dadurch erst das Ein- und Ausblenden in ArmA mit Ace ermöglicht.
Im Ganzen als Skript (mit Ace-Schnauze-Hinweis):
_jukeFun = ["track", 240, 10, 230, 10, 10] execVM "scripts\playMusicWithFades.sqf";
_track = _this select 0; // trackname as defined in description.ext
_trLength = _this select 1; // length of track, in sec.
_start = _this select 2; // when the track should begin, in sec.
_end = _this select 3; // when the track should end, in sec.
_fadeIn = _this select 4; // time of fadeIn in sec.
_fadeOut = _this select 5; // time of fadeOut in sec.
_trEnd = _trLength - _end; // time diff. between start and ending track
ace_hearing_disableVolumeUpdate = true;
0 fadeMusic 0;
playMusic [_track, _start];
_fadeIn fadeMusic 1;
sleep _fadeIn;
sleep (_trLength - _start - _fadeIn - _fadeOut - _trEnd);
_fadeOut fadeMusic 0;
sleep _fadeOut;
playMusic "";
ace_hearing_disableVolumeUpdate = false;
Falls ich hier Trivia verewige: Sorry. Ich hab' das woanders nur in Stücken und auch nicht wirklich funktionierend gefunden.
Cheers!
Diesmal keine Frage, sondern nur ein "ich habs nun hingekriegt" und vielleicht brauchts irgendwann ja irgendjemand.
Ich habe in Arma nie verstanden, wie man richtig Musik ein- und ausblendet. Das hat irgendwie immer gesponnen. Lag daran, dass die Programmierer von BI schon lustige Leuts sind, die mit dem Wort "intuitiv" nicht wirklich was anfangen können, bzw. ich einfach zu inkompatibel im Denken bin.
Daher nun eine Schritt-für-Schritt-Anleitung für Gleichverdummte :ugly:
Man blendet z.B. nur dann richtig ein, wenn man vorher komplett ausblendet.
0 fadeMusic 0;
Dann spielt man die Musik ab (die Zahl gibt an, ab welcher Sekunde):
playMusic ["track", 0];
DANN blendet man (z.B. 10 Sekunden) ein:
10 fadeMusic 1;
Aber das alleine bringt nix, weil hier kein "sleep" eingebaut ist, es funktioniert nur mit einem zusätzlichen sleep in Höhe des Fades:
sleep 10;
Jetzt spielt man die Länge des Stücks (und zieht davon das FadeIn, FadeOut und die anfangs ausgewählte Startzeit ab):
sleep 120-10-10-10;
Jetzt blendet man aus:
10 fadeMusic 0;
Pennt wieder exakt die Zeit vom Fade:
sleep 10;
Und kickt die Musik dann vollständig (sicherheitshalber)
playMusic "";
Für ACE3-Liebhaber (steht schon in einem anderen Thread) sei erwähnt, dass man mit
ace_hearing_disableVolumeUpdate = true;
ganz am Anfang und mit
ace_hearing_disableVolumeUpdate = false;
ganz am Ende, Ace dazu überreden kann, kurz mal innezuhalten, mit seiner Sound-Updaterei und dadurch erst das Ein- und Ausblenden in ArmA mit Ace ermöglicht.
Im Ganzen als Skript (mit Ace-Schnauze-Hinweis):
_jukeFun = ["track", 240, 10, 230, 10, 10] execVM "scripts\playMusicWithFades.sqf";
_track = _this select 0; // trackname as defined in description.ext
_trLength = _this select 1; // length of track, in sec.
_start = _this select 2; // when the track should begin, in sec.
_end = _this select 3; // when the track should end, in sec.
_fadeIn = _this select 4; // time of fadeIn in sec.
_fadeOut = _this select 5; // time of fadeOut in sec.
_trEnd = _trLength - _end; // time diff. between start and ending track
ace_hearing_disableVolumeUpdate = true;
0 fadeMusic 0;
playMusic [_track, _start];
_fadeIn fadeMusic 1;
sleep _fadeIn;
sleep (_trLength - _start - _fadeIn - _fadeOut - _trEnd);
_fadeOut fadeMusic 0;
sleep _fadeOut;
playMusic "";
ace_hearing_disableVolumeUpdate = false;
Falls ich hier Trivia verewige: Sorry. Ich hab' das woanders nur in Stücken und auch nicht wirklich funktionierend gefunden.
Cheers!