[REQUEST] Soundfiles Mini Mod

Hier ist der ideale Ort um über Scripts und Mods für X4: Foundations zu diskutieren.

Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators

Post Reply
Cpt.Hotze
Posts: 49
Joined: Sat, 30. Jan 16, 21:22
x4

[REQUEST] Soundfiles Mini Mod

Post by Cpt.Hotze » Sun, 22. Nov 20, 14:57

Hallo.
Ich spiele X4 mit externer Musik mittels Chillout Stream oder div. anderen Weltraum Atmosphärentracks.
Das wechseln auf Kampfmusik mag ich persönlich nicht.

Deshalb habe ich natürlich den Musik Lautstärke Regler auf 0 stehen.
Leider läuft im Spiel dennoch Musik.
Diese Endlos Loops beim Händler, Schiffshändler, Bar usw..

Gefunden habe ich diese Soundfiles in der 06.cat
Da ich die Kern Dateien aber nicht verändern möchte habe sie mittels Fake Patch (aktuell 10.cat) gegen leere Soundfiles mit gleicher Länge und selben Format ersetzt.
Gleichzeitig auch noch die 5 Alarm Sounds gegen echte Alarme getauscht.
Das funktioniert einwandfrei.

Zusammen mit einem weiteren Mod, der die meisten Consolen auf Schiffen und in Stationsräumen von ihrem blib pling zirp befreit, ist das jetzt eine super Atmosphäre im Spiel mit der richtigen Musik.
https://www.nexusmods.com/x4foundations ... escription


Nun wollte ich probieren, meine Änderungen ebenfalls als Mini Mod zu basteln und hab den Inhalt
des Fakepatch Catalogs als ext_01.cat ins extension Verzeichnis gelegt, und eine Content.xml dazu. Leider funktioniert das so wohl nicht.
Mein Mod wird zwar im Menü richtig angezeigt, ist an- und abschaltbar, aber die Sounds werden nicht beeinflusst.

In diesem Consolengeräusch Mod von Nexus sehe ich eine sound_library.xml die dem Spiel sagt, wo überall der geänderte Sound zum Einsatz kommen soll.

Benötige ich so eine sound_library.xml auch? Und wie müsste die dann aussehen? XML ist was ich nicht wirklich kapier.

Die Struktur meiner Änderungen sieht wie folgt aus: 10.cat

sfx\ambient\platform\
bar_chillout_01.ogg
interior_bar_music_01.wav
interior_bar_music_02.wav
interior_bar_music_03.wav
interior_bar_music_04.wav
market_block_music_01.ogg
market_block_music_01.wav
market_block_music_02.ogg
market_block_music_02.wav
market_block_music_03.ogg
market_block_music_04.ogg
station_announcement_jingle.wav

sfx\ui\
ui_notification_player_alert_01.wav
ui_notification_player_alert_02.wav
ui_notification_player_alert_03.wav
ui_notification_player_alert_04.wav
ui_notification_player_alert_05.wav

Wie gesagt, als Fakepatch funktioniert das wunderbar.

Trajan von Olb
Posts: 544
Joined: Wed, 4. Feb 04, 21:39
x3tc

Re: [REQUEST] Soundfiles Mini Mod

Post by Trajan von Olb » Tue, 16. Feb 21, 11:22

Hi,

das geht um einiges eleganter :-)

Dazu musst Du eine MOD machen wie von Dir ja auch geschrieben. Die braucht einen Unterordner (z.B. "music"), in dem eine Stille-Datei mit der Endung "ogg" liegt. Alternativ suchst Du so eine Datei in den Steam-Dateien, dort sollte es irgendwo auch Stille geben... Achte aber darauf, dass es für die Bar und den Kram MONO-Dateien sein müssen, weil die dann im 3D-Raum verortet werden, anders als die Sektormusik. Kostenfrei erstellen kann man die Audios z.B. mit "audacity" (vorsicht, da geistern auch Versionen mit Adware herum, mit etwas Glück findest Du aber eine saubere Version, ggf. mit "virustotal" testen)...
Außerdem muss ein Ordner "libraries" hinein, dort drin wiederum liegt dann eine "sound_library.xml" (die lässt sich gut mit dem Notepad++ bearbeiten, einfach mal googlen)

In dieser kannst Du dann Zeiger auf Dateien quasi umdrehen, und zwar mit DIFF, das sollte so aussehen (Beispiel ist aus meiner unveröffentlichten MOD "One_system_one_music_plus", wo ich u.a. auch die Barmusiken ausgetauscht habe, Du musst natürlich den Kram anpassen)
Spoiler
Show

Code: Select all


<diff>
	<replace sel="/soundlibrary/sound[@id='bar_chillout_01']">
		<sound id="bar_chillout_01" description="Bar chill-out music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\00015m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\06000m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\06032m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\08303m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\08403m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\09013m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\09018m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\bar\99099m"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	<replace sel="/soundlibrary/sound[@id='corner_arg_standard_shipequipment_music']">
		<sound id="corner_arg_standard_shipequipment_music" description="Market block music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipequipment\08304m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipequipment\08306m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipequipment\08502m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipequipment\08503m"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	<replace sel="/soundlibrary/sound[@id='corner_arg_standard_shipdealer_music']">
		<sound id="corner_arg_standard_shipdealer_music" description="Market block music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipdealer\00012m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipdealer\09015m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\shipdealer\09019m"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	<replace sel="/soundlibrary/sound[@id='corner_arg_standard_inventorytrader_music']">
		<sound id="corner_arg_standard_inventorytrader_music" description="Market block music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\One_system_one_music_plus\music\Musicbox\invdealer\06006m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\invdealer\08212m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\invdealer\08512m"/>
				<select start="extensions\One_system_one_music_plus\music\Musicbox\invdealer\09000m"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
</diff>

Mod-Namen und Pfade ersetzt Du durch Deine eigenen, Basis ist immer das Stammverzeichnis von X4 unter Steam usw. Wenn Du X4-eigene Files verwendest, dann lass "extensions" im Pfad weg und ersetzt durch entsprechende, z.B. "music".

Und wenn Du noch mehr tauschen willst, dann schau Dir mal die originale sound_library an, dort findest Du eigentlich alles, was Du wissen musst - abstrahiere das in solche DIFF-Konstruktionen wie oben...

Viel Spaß :-)

Grüße Schmollo
Mein Traum vom Glück ist der Traum von einer anderen Menschheit. (S. Lem)

|K.O.S.H.
Posts: 3723
Joined: Fri, 19. Dec 03, 10:36
x3tc

Re: [REQUEST] Soundfiles Mini Mod

Post by |K.O.S.H. » Wed, 17. Feb 21, 09:52

Wo genau hapert es denn bei der xml?

Grundsätzlich gibt es eine xml, in der alles definiert ist.
In deinem Fall sound_library.xml.

Wenn du da etwas ändern willst musst du in deinem Mod eine datei mit selben Namen erstellen und dort das <diff>-Element verwenden.
Da gibt es dann die Elemente <replace> oder <add>, zum updaten oder hinzufügen.

Bei Replace musst du dir über einen X-path-Ausdruck das richtige Attribut raussuchen und dann das neue Element hinzufügen.

wir machen das mal umgekehrt aus dem Beispiel von schmollo:

Code: Select all

<replace sel="/soundlibrary/sound[@id='bar_chillout_01']">
ist der X-Path-Ausdruck, daraus kann man die XML-Struktur ableiten:

Code: Select all

<soundlibrary>
	<sound id="bar_chillout_01'">
		...
	</sound>
</soundlibrary>

umgekehrt
du hast diese struktur:

Code: Select all

<aaaaa>
	<bbbbb>
		<ccccc attributname="attributWert">
			<ddddd>
				...
			</ddddd>
		</ccccc>
	</bbbbb>
</aaaaa>
findest du über

Code: Select all

<diff>
	<replace sel="/aaaaa/bbbbb/ccccc[@attributname='attributWert']">
		<ddddd>
				neuer Eintrag
		</ddddd>
	</replace>
</diff>	
Wing Commander Mod - German Topic
06.07.11 - v1.1 RELEASED!

Cpt.Hotze
Posts: 49
Joined: Sat, 30. Jan 16, 21:22
x4

Re: [REQUEST] Soundfiles Mini Mod

Post by Cpt.Hotze » Mon, 5. Apr 21, 17:33

Vielen Dank für die hilfreichen Antworten.
Vor allem die Beispiel Bausteine haben mir geholfen.

Ich hatte meine Befehlszeilen zwar richtig begonnen, aber nicht richtig abgeschlossen. In Notepad+ sieht man das ja auch schön leuchten wo Anfang und Ende ist.

Auf jeden Fall funktioniert es jetzt.

Code: Select all

<diff>
	<replace sel="/soundlibrary/sound[@id='bar_chillout_01']">
		<sound id="bar_chillout_01" description="Bar chill-out music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ambient\platform\bar_chillout_01"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	<replace sel="/soundlibrary/sound[@id='corner_arg_standard_shipequipment_music']">
		<sound id="corner_arg_standard_shipequipment_music" description="Market block music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ambient\platform\market_block_music_01"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	<replace sel="/soundlibrary/sound[@id='corner_arg_standard_shipdealer_music']">
		<sound id="corner_arg_standard_shipdealer_music" description="Market block music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ambient\platform\market_block_music_01"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	<replace sel="/soundlibrary/sound[@id='corner_arg_standard_inventorytrader_music']">
		<sound id="corner_arg_standard_inventorytrader_music" description="Market block music" repeat="-1" is3d="1" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ambient\platform\market_block_music_01"/>
			</sample>
			<volume start="0.8" loop="3.0" distance="0.3"/>
		    <effects>
				<fade in="0.1" out="0.2" />
			</effects>
		</sound>
	</replace>
	
	<replace sel="/soundlibrary/sound[@id='ui_notification_player_alert_01']">
		<sound id="ui_notification_player_alert_01" description="Subtle Notification 01" repeat="1" is3d="0" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ui\ui_notification_player_alert_01"/>
			</sample>
			<volume start="1.0"/>
		</sound>
	</replace>
	
	<replace sel="/soundlibrary/sound[@id='ui_notification_player_alert_02']">
		<sound id="ui_notification_player_alert_02" description="Subtle Notification 02" repeat="1" is3d="0" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ui\ui_notification_player_alert_02"/>
			</sample>
			<volume start="1.0"/>
		</sound>
	</replace>
	
	<replace sel="/soundlibrary/sound[@id='ui_notification_player_alert_03']">
		<sound id="ui_notification_player_alert_03" description="Generic Reminder 01" repeat="1" is3d="0" preload="0">
			<sample selection="random">
				<select start="extensions\Soundmod\sfx\ui\ui_notification_player_alert_03"/>
			</sample>
			<volume start="1.0"/>
		</sound>
	</replace>
	
</diff>
Die Zeile mit <sample selection="random"> Volume und effects hätte ich mir vermutlich sparen können? Sind ja leere Soundfiles.
Wobei ich das bei den 3 Alarmen zuerst so versucht hatte. Das Spiel hat meine Alarm Sounds aber erst abgespielt als ich es so gemacht hab wie es jetzt ist. :?

Aber man muss auch nicht alles verstehen. Nochmal Danke für die Hilfe.

Post Reply

Return to “X4: Foundations - Scripts und Modding”