Benutzer-Werkzeuge

Webseiten-Werkzeuge


NSIS Installer mit Bild/Sound

In diesem Tutorial will ich euch mal zeigen wie ihr euren NSIS Installer mit einem Bild, Sound und ein paar weiteren Kleinigkeiten verschönern könnt.

Das Tutorial basiert auf dem Gothic I Installationsskript der G1MDK Demo Mod von NicoDE, ich vermute aber, dass es bei dem Gothic II Installationsskript kaum Unterschiede gibt.

Mit diesen Tricks könnt ihr euer Installationsprogramm (fast) ganz individuell an eure Mod anpassen und schon die Installation der Mod macht Spaß!

Installationsprogramm mit Bild verschönern


So kann das aussehen

Schon bei der Installation könnt ihr den Spieler mit einem passenden Bild auf eure Mod einstimmen.

Öffnet euer Installationsskript mit HM NIS Edit und schreibt eine Zeile unterhalb von „ !define MUI_FINISHPAGE_RUN_NOTCHECKED“ folgendes:

  !define MUI_WELCOMEFINISHPAGE_BITMAP "PFAD\ZUM\Bild.bmp"

Als Bildformat geht nur das BMP-Format (egal ob 24 bit, 256 Farben, 16 Farben oder 2 Farben).

Beachtet bitte, dass das Bild eine Auflösung von 164*314 Pixeln haben muss, ansonsten wird es gestreckt, was nicht so toll aussieht.
Bringt das Bild also erst mit einem Programm wie Irfanview auf die richtige Größe.
Sollte das nicht gehen, könnt ihr das Strecken verhindern indem ihr zusätzlich den folgenden Befehl verwendet:

 !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH

Geschafft! Kompiliert den Installer mit Shift+F9 und seht euch das Ergebnis an.

Tipp: Um Speicherplatz zu sparen, speichert es am besten mit der richtigen Farbtiefe ab. Ein Bild, das nur 170 Farben hat, braucht man nicht als Highcolour Bitmap speichern, denn hier reicht eine 256 Farben Bitmap.

Installationsprogramm mit Sound versehen

Ein Bild allein sieht ja schon recht schön aus, doch so richtig atmosphärisch wird das ganze erst, wenn wir das Installationsprogramm mit Sound hinterlegen.

Das Vorgehen hierbei ist etwas komplizierter. Geht eine Zeile unter „ !define MOD_VERS_TEXT“ und fügt dort folgendes ein:

  ;Sound
   !define APP_NAME "mci.sound"
  !define SND_NAME "PFAD\\ZUM\\Sound.mp3"
  Name "${APP_NAME}"
  OutFile "${APP_NAME}.exe"

Dann fügt ihr unter „Function .onInit“ folgendes ein:

;Sound
  SetOutPath "$%TEMP%"
  File "${SND_NAME}"
  System::Call 'msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$%TEMP%\\Sound.mp3") i .r0'
  StrCpy $hmci $0
  SendMessage $hmci 0x0490 0 0 $0
  IntCmp $0 0 nosup
  ShowWindow $hmci SW_HIDE
  SendMessage $hmci 0x0465 0 "STR:play"
nosup:

Anmerkungen:

  • In diesem Fall muss die Audiodatei eine mp3 Datei mit dem Namen „Sound.mp3“ sein. Passt es einfach an, wenn eure Datei anders heißt.
  • Anstelle von „STR:play“ könnt ihr auch „STR:play repeat“ verwenden, dann wird der Sound geloopt.
  • Natürlich könnt ihr auch mehrere Sounds gleichzeitig abspielen lassen, indem ihr einen 2. Sound definiert und das untere Skript 2x einfügt und anpasst.

Dieser Teil des Tutorials basiert auf dem Artikel „Play Sound“ aus dem NSIS Wiki.


ANMERKUNG:
Da es vor allem unter dem G2-Installations-Script oftmals zu Problemen kam habe ich hier eine Alternative, um Sounds während der Instalation abzuspielen:

Schreibt unter die Zeile „!define MOD_HELP […]“ folgendes:

;Sound
!define MUSICFILE  "Sounddatei.WAV"	; Pfad zur Sounddatei - Datei muss im selben Ordner wie das Installationsskript liegen

Dann sucht ihr die Zeile „Function .onInit“ und fügt darunter folgendes ein:

  ;Sound
  InitPluginsDir
  SetOutPath "$TEMP"
  File "${MUSICFILE}"
  StrCpy $0 "$TEMP\\${MUSICFILE}"  ; location of the wav file
  IntOp $1 "SND_ASYNC" || 1
  System::Call 'winmm::PlaySound(t r0, i 0, i r1) b'

Quelle: http://nsis.sourceforge.net/WinAPI:winmm:PlaySound

Hierbei wird die Sounddatei allerdings nur einmal abgespielt und nicht geloopd!
Jacal


2.1 Wie kann man Sounds nun sinnvoll nutzen?

Hier kommt es natürlich immer auf die jeweilige Mod an, aber man kann z.B. schon während des Installers einen Dialog laufen lassen, der dann zeitlich kurz vor dem Ingamegeschehen stattfindet. Wenn eure Mod also damit anfängt, dass der Held zusammen mit einem Freund mit einem Schiff auf einer Insel ankommt, könnte man im Installationsprogramm einen kurzen, vielleicht witzigen Dialog zeigen, der während der Schiffsfahrt stattfindet.

In diesem Fall bräuchte man mindestens 2 Sounds:

  • 1 Sound sorgt dafür, dass man das Meer hört und wird immer wieder geloopt.
  • Der andere Sound spielt das Gespräch ab, das nicht wiederholt wird.

Noch ein paar Tipps:

  • Obwohl einige Audioformate akzeptiert werden, solltet ihr am besten das Mp3-Format verwenden, da es den besten Kompromiss aus Dateigröße und Qualität bietet. Verwendet am besten den hochqualitativen lame encoder mit einer variablen Bit rate von ~115 - ~130 (V6, bzw. V5).
  • Da es beim Loopen von Mp3-Dateien eine kurze Pause gibt, sorgt dafür dass loopende Sounds min. 1 Minute gehen.
  • Verwendet bei Dialogen Stereoeffekte (geht ganz einfach mit Audacity). Es hört sich erstens gut an, wenn man die eine Person von links hört und die andere von rechts und es sorgt zudem dafür, dass man gleich weiß, das jetzt jemand anderes redet.
  • Macht so Sachen wie Dialoge nicht zu lang, es sei denn die Installation eurer Mod benötigt auch lange.

Gut, ihr seid fertig! Hört euch das Ergebnis am besten gleich an.

3. Weitere Verschönerungen


Ihr könnt jetzt auch noch einige kleinere Details des Installationsprogramms verschönern. Schreibt sie am besten unter !define MUI_WELCOMEPAGE_LINK_DIRECTION

  !define MUI_BGCOLOR "FARBE" ; Hintergrundfarbe des Installers
  !define MUI_INSTFILESPAGE_PROGRESSBAR "colored ODER smooth" ; Soll der Fortschrittsbalken farbig sein oder normal?
  !define MUI_INSTFILESPAGE_COLORS "FARBE" ; Die Farbe des Fortschrittsbalkens

Anstelle von FARBE schreibt ihr einfach die Farbe und zwar hexadezimal.

Ganz einfach geht das indem ihr Paint öffnet, einen Doppelklick auf eine der Farben links unten macht und auf „Farben definieren“ klickt. Es öffnet sich ein Fenster, in welchem ihr einfach die gewünschte Farbe auswählt. Achtet dann darauf was bei „Rot“ „Grün“ „Blau“ steht. Und gebt diese Werte in einen RGB zu hexadezimal Rechner ein (mit Google werdet ihr viele finden).

Z.B. Gelb → RGB: 128 128 0 → HEX: #808000

Eigenes Icon

Unter die Zeile !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS schreibt ihr folgendes:

;Icon
Icon "IconName.ico"

Euch auch viel Spaß beim Ausprobieren

nsis/installer_mit_bild_und_sound.txt · Zuletzt geändert: 2016/02/09 13:27 von milgo