Musik einbinden

  • Hallo Zusammen,


    mal wieder ich, dieses mal aber das erste Mal mit einer Frage zu einer Mission, nicht zu Configs für Einheiten oder Fahrzeuge.


    In einer Mission steht ein Radio das Musik spielen soll. Das Radio ist mit dem Namen "boombox" benannt und hat folgenden Befehl in der Init-Zeile:


    nul = [this] spawn {while {true} do {(_this select 0) say3D "track01"; sleep 9987;};}


    In der description.ext ist die Musik wie folgt definiert:


    class CfgMusic
    {
    Music[] = {};
    class track01
    {
    name = "track01";
    sound[] = {"\sounds\dateiname.ogg", +7, 1};
    titles[] = {};
    };
    };


    Wenn ich die Mission starte kommt die Fehlermeldung "Sound track01 not found".


    Die Sounddatei ist im ogg-Format, stereo und hat eine Größe von 167 MB bzw. 9987 Sekunden länge.


    Mache ich was falsch oder passt die Datei nicht (stereo / Größe)?


    Grüße


    Axel

  • Das ist der Eintrag aus meiner damaligen Mission, was funktioniert hat um Musik per Zeus zu starten


    class CfgMusic
    {
    tracks[]={};
    class Wardruna_Voeluspa
    {
    // Display Name
    name = "Wardruna Voeluspa";
    // Given in seconds; Is converted to mm:ss and shown in Zeus interface.
    duration = 303;
    // Music category (can be "Lead", "Action", "Stealth" or "Calm").
    musicClass = "Lead";
    sound[] = {"music\Wardruna_Voeluspa.ogg", db+10, 1.0};
    };
    };

  • say3D zeigt auf Klassen in CfgSounds. Du schreibst aber CfgMusic statt CfgSounds. CfgMusic ist für playMusic aber nicht für say3D.


    Kann man alles hier nachlesen:
    https://community.bistudio.com/wiki/say3D


    Ich hätte aber statt say3D createSoundSource genommen. Dann spart man sich die Schleife, weil das von Hause aus den Sound wiederholt, damit fällt dann die Zwangspause durch den Scheduler aus.


    https://community.bistudio.com/wiki/createSoundSource

  • Danke! Werde ich mal so versuchen.

    Sehe ich das richtig, dass das Soundfile in der descirption.ext definiert wird aber in in einer PBO vorliegen muss?

    Und welcher Wert gibt hier die länge des Sound an?:
    sound0[] = {"@A3\Sounds_F\environment\animals\birds\owl1", db-10, 1.0, 1000, 0.2, 0, 15, 30};


    Da blicke ich leider überhaupt nicht mehr durch. Ich hab' s jetzt mal mit playMusic versucht. In der description.ext steht es jetzt so:


    class CfgMusic
    {
    tracks[]={};

    class track01
    {
    name = "track01";
    sound[] = {"\sounds\nonstoppop.ogg", db+7, 1.0};
    };
    };


    Ausgelöst werden soll es hierdurch:


    nul = [this] spawn {while {true} do {(_this select 0) playMusic "track01"; sleep 9987;};}


    Antwort vom Spiel ist:


    '...pawn {while {true} do {(_this select 0) I#IplayMusic "track01"; sleep 9987;};}' Error Missing ;


  • Grunsätzlich funktionieren tut der Sound, über einen Trigger konnte ich Ihne auslösen (Definition wie oben unter ClassCfgMusic). Es geht nur noch um den Auslöser im Objekt Radio, dass er von dort aus gespielt wird. Wie kann ich playMusic denn in einem Objekt auslösen? Die BIS Seiten waren da leider wenig hilfreich, da dort außer playMusic "dateiname"; nichts weiter zu finden ist und das leider gar nicht hilft.


    Ich hab mal versucht den Sound durch einen Trigger auf das Objetk zu bekommen: boombox say3D ["track01", 100, 1];


    Ich weiß, da müsste playMusic stehen. Mit playMusic bekomme ich aber immer die Meldung es würde ein ; fehlen.

  • nul = [this] spawn {while {true} do {(_this select 0) playMusic "track01"; sleep 9987;};}; <- Da fehlt das Semikolon, oder nicht?

  • Endet auch mit der Fehlermeldung dass der Sound nicht gefunden werden kann.


    Ändere dein Description Eintrag bitte wie folgt:
    Denn du hast ein Array , was sich gar nicht füllen kann


    class CfgSounds
    {
    sound[]={track01};



    class track01
    {
    name = "track01";
    sound[] = {"\sounds\nonstoppop.ogg", db+7, 1.0};
    titles[]={}
    };
    };



    Dann funzt auch
    [boombox , "track01"] call CBA_fnc_globalSay3d;

  • Also gegoogelt habe ich heute danach schon wie bekloppt, leider nichts hilfreiches gefunden. Das kann aber auch daran liegen, dass ich von Missionsdesign so gar keine Ahnung habe. Ich bin schon heil froh und nach dem Frust mit dem Radio ehrlich auch ein wenig überrascht, dass ich das hinbekommen habe.


    Heißt auch, dass ich nicht wirklich verstehe, worum es unter der von Dir verlingten Seite geht. Auf die ersten paar Blicke würde ich aber meinen, dass es nicht das ist, was ich suche.

  • So, das mit addAction hat auch funktioniert:


    boombox addaction ["Radion on", {boombox say3D ["track01", 100, 1];}];


    Jetzt wollte ich auch eine Action haben, die das Radio ausschaltet und habe folgendes hinter dem obigen Befehlt eingeführt:


    boombox addaction ["Radio off", {boombox say3D ["track02", 100, 1];}];


    Track02 ist in der description so definiert:




    class track02
    {
    name = "track02";
    sound[] = {"", db+1, 1.0};
    titles[] = {};
    };


    Also quasi keine Datei angegeben sodass es eigentlich ruhig sein müsste. Ist es aber nicht. Ich vermute, dass das Radion quasi beide Tracks gleichzeitig abspielt. Kann ich das irgendwie einrichten, dass beim auslösen von "Radio off" der vorherige Befehl "Radio on" abgeschaltet wird?


    Ja, gesucht habe ich schon, finde aber nur Sachen, die den Befehlt selber wieder entfernen, nicht die Ausführung.