Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Porträts für die Chars
#1
Hoi Folks,

ist es IRGENDWIE möglich, dass man seinen Charakteren eigene Portraits-Grafiken verpassen kann?

Kommt schon, sagt, dass das geht!

Viele Grüße
Gaddezwerch
Zitieren
#2
Pauschal gesagt: Ja, das geht.

Nur das "Wie" ist die große Unbekannte dabei. Ist eben nun mal so, dass man nicht einfach hergehen kann und die Portraits mit JPG, GIF oder PNG-Grafiken ersetzen kann.
Damals hat man noch anders programmiert... :sad2:

Insofern muß man sagen: Nein, es geht nicht. Zumindest nicht ohne großen Arbeitsaufwand und ohne programmtechnisches Verständnis bzw. Kenntnis.
Zum NLT-Wiki: http://nlt-wiki.crystals-dsa-foren.de/doku.php , Zum Drakensang-Wiki: http://drakensang-wiki.crystals-dsa-foren.de/doku.php
KEIN SUPPORT per E-Mail, PN, IRC, ICQ! Lest die Regeln und benutzt das Forum für sämtliche Anfragen! KEINE persönliche Betreuung!
Zitieren
#3
Schade. Ich hätte auch gern ma andere Bilder drin. Von den eingebauten Portraits gefallen mir auch nich alle.
Wenn jemand ne Idee dazu hätte, wär ich auch froh zu wissen, wie das geht. :)

Fjolnir
Swafnir zum Gruße!
Zitieren
#4
Gut, dann zur obligatorischen Frage: Wer von euch kann programmieren? :D
Zitieren
#5
Das wäre wirklich super, wenn sich jemand von der Sorte hier anmelden würde. :yes:
Ich glaube uns bleibt nix anderes übrig, als zu warten. :rolleyes:


Fjolnir


EDIT: Oder haben wir bereits jemand hier?
Swafnir zum Gruße!
Zitieren
#6
Ich fürchte, Fjolnir hat Recht. Wir müssen uns noch in Geduld üben, bis wir jemanden finden, der in diesem Handwerk beschlagen genug ist.
Zum NLT-Wiki: http://nlt-wiki.crystals-dsa-foren.de/doku.php , Zum Drakensang-Wiki: http://drakensang-wiki.crystals-dsa-foren.de/doku.php
KEIN SUPPORT per E-Mail, PN, IRC, ICQ! Lest die Regeln und benutzt das Forum für sämtliche Anfragen! KEINE persönliche Betreuung!
Zitieren
#7
Den Zwölfen zum Gruße!

Gaddezwerch schrieb:ist es IRGENDWIE möglich, dass man seinen Charakteren eigene Portraits-Grafiken verpassen kann?

Kommt schon, sagt, dass das geht!

Zum Thema "Ändern von Portraits" gebe ich kurz meinen Wissensstand wieder. Das meiste davon habe ich in mehreren Beiträgen schon im Larian-Forum geschrieben:

Eine einmal getroffene Entscheidung für ein Portrait kann in "Schicksalsklinge" nicht mehr rückgängig machen kann. Es wird Byte für Byte in der Heldendatei (*.CHR) gespeichert. Wie ich durch Eigenexperimente herausgefunden habe, kann man die Portraits dort jedoch mit einem Hexeditor ändern. Man braucht sich nur zu merken, welche der 256 Farben welchen Hexadezimalwert bekommt und kann sich dann Stück für Stück ein eigenes Portrait generieren.

Man könnte also eine DSA1-Palette erstellen und ein Bild in richtiger Größe in diesen Farben mit einem Grafikprogramm malen. Das Ergebnis läßt man Pixel für Pixel in die entsprechenden Hexadezimalwerte umwandeln, welche man einzeln in die Heldendatei überträgt (ab der richtigen Startposition). Per Hand ist das umständlich; wer ein wenig Programmierkenntnisse und Zeit hat, kann natürlich ein Skript basteln. Ich sage es gleich: Ich habe keine Zeit!

Dieses Vorgehen funktioniert nur für DSA1. Ab dem zweiten Teil werden meines Wissens die Portraits woanders gespeichert und in der Heldendatei steht nur die Nummer des Portraits. Das schließt nicht automatisch aus, auch für "Sternenschweif" und "Schatten über Riva" eigene Portraits zu basteln (die wahrscheinlich eine andere Palette benutzen): Dann muß man die entsprechenden Hexwerte für einige zusammenhängende Pixel herausfinden und die Spieldateien nach ihnen durchsuchen. Geändert würde dann also eine der größeren Dateien, was ein gewisses Risiko darstellt.

Kurz gesagt: Eigene Portraits sind möglich, aber um sie für alle drei Teile so umzusetzen, daß es auch Normalsterbliche in annehmbarer Zeit hinbekommen, braucht es schon ein vernünftiges Werkzeug.
Ärger im Svellttal? Auf der Suche nach dem Salamanderstein? Dann hilft der Sternenschweif-Reiseführer von Kunar!
Zitieren
#8
na das schafft doch neuen optimismus! :lol: :lol: :lol:
Zitieren
#9
Mich würde es dabei interessieren, wie sich das mit den Bildern verhält, wenn man den Spielstand in den nächsten Teil importiert. :think:
Zum NLT-Wiki: http://nlt-wiki.crystals-dsa-foren.de/doku.php , Zum Drakensang-Wiki: http://drakensang-wiki.crystals-dsa-foren.de/doku.php
KEIN SUPPORT per E-Mail, PN, IRC, ICQ! Lest die Regeln und benutzt das Forum für sämtliche Anfragen! KEINE persönliche Betreuung!
Zitieren
#10
Den Zwölfen zum Gruße!

Fjolnir schrieb:Schade. Ich hätte auch gern ma andere Bilder drin. Von den eingebauten Portraits gefallen mir auch nich alle.
Wenn jemand ne Idee dazu hätte, wär ich auch froh zu wissen, wie das geht. :)

Ich war traurig darüber, daß ich alle Anfragen über andere Heldenportraits enttäuschen mußte. Das nagte doch sehr an mir. Deswegen habe ich gestern ein wenig experimentiert, um zumindest zu einer Teillösung zu kommen. Das Ergebnis gibt's als Anhang.

1. Bei Curian habe ich die NPC-Datei in eine CHR-Datei umbenannt. Aus einem Spielstand in Overthorn, bei dem die Standardgruppe den Magier frisch aufgegabelt hat, habe ich das dort gespeicherte Portrait Byte für Byte in die CHR-Datei übertragen, in der der Magier ja eines der Heldenportraits hat. Das hat ca. 1 Stunde gedauert. Was ich sonst immer theoretisch beschrieben habe, klappt also tatsächlich. Es war auch nicht besonders schwer, die entsprechende Stelle zu finden. Ab jetzt kann man mit Curian als Spielercharakter ins Abenteuer ziehen und er hat das gleiche Aussehen wie als NSC.

2. Motiviert durch diesen Erfolg, doch unwillig, noch einmal soviel Zeit zu investieren, habe ich einen anderen Weg ausprobiert. Die Portraits werden als zusammenhängende Zeichenfolge gespeichert. Also habe ich einen Spielstand aus Prem mit Garsvik genommen, daraus sein Portrait kopiert und in die entsprechende CHR-Datei (Umbenennung der NPC-Datei wie oben) eingefügt, wobei natürlich das alte Portrait überschrieben wurde. Da ein normaler Texteditor (Wordpad/Editor) jedes "00" durch ein "20" ersetzt, mußte ich das nachher noch mit einem Hexeditor bereinigen (außer im Portrait selbst, wo "20" normal ist). Das dauerte netto etwa 2-5 Minuten.

Für "Die Schicksalsklinge" gilt also: Ab jetzt kann unabhängig vom Heldentyp mindestens jedes Helden- und NSC-Portrait frei gewählt werden! Theoretisch geht das auch für die Bilder von Informanten, dem Totenschädel usw., aber dafür müßte man die entsprechende Zeichenfolge aus den Spieldateien isolieren.


Angehängte Dateien
.zip   NSC.zip (Größe: 1,74 KB / Downloads: 30)
Ärger im Svellttal? Auf der Suche nach dem Salamanderstein? Dann hilft der Sternenschweif-Reiseführer von Kunar!
Zitieren
#11
Gratulation Kunar!

Noch mal für alle zum mitschreiben:
  • die .chr dateien enstehen dadurch, dass man im Heldengenerator eine Charakter erstellt.
  • die Bilder stehen in den .chr drin.
  • die Bilder sind eine Zeichenkette, d.h. für jeden Pixel ein zeichen, das die Farbe codiert.
  • das Game hat 256 Farben.

    Jetzt kommen Fragen:

  • wieviele Pixel hat ein Heldenportrait?
  • wie hast du aus dem Spielstand die Bildinformationen geholt? Da steht ja schließlich mehr drin als "nur" 6 Helden.chr.
  • Der Heldengenerator hat doch irgendwo die Bildinformationen für alle Portraits gespeichert. Wo denn?

Wäre es jetzt nicht möglich ein Bild mit derselben Pixelzahl in einen String umzuwandeln und die Farben durch eine NLT-256er-Palette zu ersetzten? Da müsste man ein bisschen programmieren, aber schwierig wäre das doch nicht oder? Ich geh mal davon aus, dass Schick nicht alle 256-Farben verwendet ...
Ich bin eine Testsignatur
Zitieren
#12
viel wichtiger wäre mir zu wissen welche offsets das Bild in der CHR/NPC Datei belegt
Zitieren
#13
Ok ich hab mal nur so zum Spass die curian.chr im editor geöffnet.
Das Ergebnis ist im Anhang. Die Nummerierung in den Zeilen geht von 000 (also null) bis 6D0 (also 1744).
Die Spaltennummerrierung sagt mir nix und was am Schluss in dem langen Kästchen steht verstehe ich auch nicht. Kann mir das jemand von euch kurz erklären?
Zu hexadezimaler Fardefinition hab ich Folgendes gefunden.


Angehängte Dateien Thumbnail(s)
   
Ich bin eine Testsignatur
Zitieren
#14
turrican schrieb:Die Spaltennummerrierung sagt mir nix und was am Schluss in dem langen Kästchen steht verstehe ich auch nicht.

Ok, das was im "langen Kästchen" steht ist offensichtlich der vergebliche Versuch meines Editors, den hex-code zu übersetzten. Und dass so ein viere-Block 2byte also 16bit darstellt hab ich auch verstanden. Jede Zeile hat 16 byte.
Aber warum diese Unterteilung in Spalten?
Ich bin eine Testsignatur
Zitieren
#15
du hast nicht wirklich Ahnung von dem was du da machst, oder?

eine Datei ist im Grunde nichts weiter als eine Reihenfolge von Bytes, das diese in Zeilen von jeweils 16 Bytes dagestellt werden ist eine Eigenart von Hexeditoren, innerhalb der Daten existieren weder Zeilen noch Spalten. Interessant ist hierbei nur das sogenannte Offset, das ist eine Adresse wobei das erste Byte der Datei den Offset von 0 hat.

als Erklärung deines Editor-Bildes: die erste Zeile ist und die erste Spalte sind jeweils ein Index des Editors, die 2. bis 7. Spalte sind die Hex-Darstellung von jeweils 2 Bytes, der 0123456789ABCDEF-Block ist die ASCII Darstellung der einzelnen Bytes dieser "Zeile"

die Bilder sind sicher nicht HTML-Hex kodiert da dies den RGB Farbwert darstellt und für die Schicksalsklinge eine Farben-Palette gibt in der vom Programm benutzbaren Farben definiert sind, sodass in den Bilddaten für eine der Farben nur die Palette referenziert werden muss, d.h. die Bilddaten enthalten nur wo welche Farbe aus der Palette benutzt werden soll
Zitieren
#16
Borbaradwurm schrieb:du hast nicht wirklich Ahnung von dem was du da machst, oder?

Wenn ich wüsste, was der hex-code bedeutet, würde ich nicht nachfragen. :ok:

Ich bin kein Programmierer. Ich setzte mathematisch/numerischen Verfahren um und beschäftige mich nicht mit der Programmierung von Anwendungen. Mit Grafik kenne ich mich nun überhaupt nicht aus.

Borbaradwurm schrieb:eine Datei ist im Grunde nichts weiter als eine Reihenfolge von Bytes, das diese in Zeilen von jeweils 16 Bytes dagestellt werden ist eine Eigenart von Hexeditoren, innerhalb der Daten existieren weder Zeilen noch Spalten.

Schon klar ;)

Ich frage mich, an welcher Stelle das Bild gespeichert ist und wie Kunar das überschreiben konnte. Es gibt doch sicher eine bestimmte Stelle, an der das Bild steht. Die Ansicht der Datei in meinem Editor sagt mir eben gar nichts. Oder brauche ich ein anderen Editor dafür? In einem anderen Thread ist oft von einem "Bestsellergames Hex-Editor" die Rede ...
Ich bin eine Testsignatur
Zitieren
#17
Ich glaub ich les mir erst mal den Thread hier durch bevor ich anfange zu "Hexen".    :D

Danke JackyD für die Anleitung! :up:

Fragen poste ich dann dort ...    ;)
Ich bin eine Testsignatur
Zitieren
#18
turrican schrieb:Danke JackyD für die Anleitung! :up:
Immer gerne. Nur die Porträts habe ich dort auch nicht beschrieben. Ich habe auch noch nicht versucht sie zu ändern und bin auch schon auf genaue Daten von Kunar (bitte bitte) gespannt. Aber im Prinzip werden die xy Pixel (x mal y) auch irgendwo im Spielstand einfach nacheinander ab einem bestimmten Offset abgespeichert sein. Was die 256 Farben und diese ominöse Farbpalette betrifft: irgendwo im Game sind alle 256 (0xFF) Farben des Spiels (in einem Block) mit ihren RGB-Werten abgelegt (es gibt auch noch andere Farbbeschreibungen, aber zur Bildschirmdarstellung wird normalerweise RGB verwendet). Ein Pixel (Byte) eines Bildes speichert dann den Index (die Nummer) einer dieser 256 vordefinierten Farben (von 0 bis 255 bzw 0x00 bis 0xFF).
Das heißt, man muß eigentlich nur noch wissen, ob das Porträt wirklich in einem durchgehenden Block abgespeichert ist, dann braucht man noch Offset und Länge des Blocks (bzw. Höhe und Breite des Bildes in Pixeln) und wenn man dann auch noch weiß, welche Farbe welchen Index hat (ein wenig herumspielen), kann man schon seine eigenen Porträts erstellen.
"Research is like sex: sometimes something useful is produced, but that's not why we do it." -- Richard Phillips Feynman, Physiker und Nobelpreisträger, 1918-1988
Zitieren
#19
Den Zwölfen zum Gruße!

turrican schrieb:wieviele Pixel hat ein Heldenportrait?

32x32, also 1024 Byte. Dabei wird Zeile für Zeile in der Datei aufgeführt.

turrican schrieb:wie hast du aus dem Spielstand die Bildinformationen geholt? Da steht ja schließlich mehr drin als "nur" 6 Helden.chr.

Das ist nicht besonders schwer, da die CHR-Dateien der Helden und die NPC-Datei des Nichtspielercharakters 1:1 in dem Spielstand drinstehen. Man muß also nur wissen, wie die Heldendatei aufgebaut ist. Da das Portrait sehr groß und zusammenhängend ist und ich die Speicherorte und typischen Werte für andere Dinge (Eigenschaften, Talente, Zauber, Ausrüstung) bereits kannte, blieb nicht viel übrig für den Ort, an dem das Portrait abgelegt ist. Bei 1754 Byte für einen Helden und 1024 Byte für jedes Portrait war es eine schnelle Suche!

turrican schrieb:Der Heldengenerator hat doch irgendwo die Bildinformationen für alle Portraits gespeichert. Wo denn?[/list]

Es gibt da offenbar entsprechende Dateien. Du kannst die DSAGEN.DAT und die SCHICK.DAT mit den Anwendungen von Borbaradwurm entpacken. Theoretisch reicht es, die richtige Datei zu finden und nach einem Teil eines bekannten Portraits zu suchen. Wenn man sich ein wenig auskennt, wird man dann wahrscheinlich die anderen Portraits ebenfalls finden. Ich hingegen bin den leichteren Weg über die CHR-Dateien gegangen.


turrican schrieb:Wäre es jetzt nicht möglich ein Bild mit derselben Pixelzahl in einen String umzuwandeln und die Farben durch eine NLT-256er-Palette zu ersetzten? Da müsste man ein bisschen programmieren, aber schwierig wäre das doch nicht oder? Ich geh mal davon aus, dass Schick nicht alle 256-Farben verwendet ...

Klar ist das möglich. Die Reihenfolge der Schritte ist etwas anders:

1. Du erstellst eine 256-Farbpalette aus den bekannten Farben. Aber Vorsicht, die Portraits benutzen eventuell weniger Farben, weil sich die Palette für den Rest des Bildschirms eventuell ändern kann! (Das ist ein alter Trick, um unter VGA mehr als 256 verschiedene Farben bieten zu können: Man muß ja nicht immer dieselben 256 nehmen...)

2. Parallel zu der Palette hältst Du irgendwo fest, welcher Hexwert welcher Farbe zugeordnet ist.

3. Mit der Palette kannst Du in jedem x-beliebigen Malprogramm entsprechende Bilder im Format 32x32 malen.

4. Jetzt mußt Du ein Programm schreiben, welches aus Dateien in einem bestimmten Bildformat Pixel für Pixel einen String mit den entsprechenden Hexwerten erstellen kann.

5. Diesen String kopierst Du an die richtige Stelle in der CHR-Datei.

Das fehlende Programm ist der Knackpunkt. Der Rest ist reine Fleißarbeit.

Den Rest beantworte ich lieber im Hex-Faden. Das wird's dann noch etwas technischer.
Ärger im Svellttal? Auf der Suche nach dem Salamanderstein? Dann hilft der Sternenschweif-Reiseführer von Kunar!
Zitieren
#20
Den Zwölfen zum Gruße!

Um mein gesamtes Wissen bezüglich Portraits preiszugeben, habe ich noch einen neuen Beitrag im Hex-Faden geschrieben. Da liste ich die Codes auf, um in DSA2 und DSA3 jedes einem Helden jedes beliebige Heldenportrait zu geben! Ferner kann man jeweils alle 8 NSC-Portraits benutzen. Auch Totenschädel, Kindergesichter und ein Hund sind möglich, wenn auch weniger vorteilhaft, da Krankheit oder schwere Verletzung sich nicht in einem anderen Gesichtsausdruck äußern.

Ich hoffe, damit all diejenigen etwas glücklich gemacht zu haben, die wie ich schon immer der Meinung waren, es gäbe pro Heldentyp eine zu eingeschränkte Auswahl an Portraits. Damit ist - wenn auch über Umwege - einer der optischen Kritikpunkte beseitigt, die ich gegenüber der Nordlandtrilogie immer hatte!
Ärger im Svellttal? Auf der Suche nach dem Salamanderstein? Dann hilft der Sternenschweif-Reiseführer von Kunar!
Zitieren




Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste