Beiträge: 3.251
Themen: 115
Registriert seit: Aug 2006
Bewertung:
23
Hehe, das sind jetzt aber nicht nur Gesichter. Interessant, was die für Szenen in so wenige Pixel gequetscht haben! (Hängebrücke... Kutsche... Floß!)
Die Augenklappe von E3 wirkt verbuggt.
Und hat Eliane Windenbek (F2) eigentlich so knallig blaue Haare oder ist das ein Kopftuch/Kapuze? Ich frage mich das, weil H8 mit "normal dunklen" Haaren dargestellt ist, sodass das ja zumindest möglich gewesen wäre.
Beiträge: 14.469
Themen: 94
Registriert seit: Sep 2006
Bewertung:
45
(10.12.2015, 20:21)Crystal schrieb: F3 ist Olvir, der Skalde - F8 dagegen ist Tiomar Swafnildsson. O.k., die stimmen, das habe ich gerade überprüft.
(10.12.2015, 20:25)Alrik Alrikson schrieb: D2 ist Ektor Gremob (oder so ähnlich), auf jeden Fall erscheint das Bild im Zusammenhang mit dem dortigen Phextempel bzw. der Villa wenn die Helden sich abfällig über das Brot etc. äußern (scheint teilweise Zufall zu sein, denn manchmal kommt im Tempel einfach auch nur D6). Ektor Gremob stimmt tatsächlich, das kann man auch an Crystals Screenshots hier sehen:
http://www.crystals-dsa-foren.de/showthr...06#pid4606
Zufall ist es aber nicht, ob Ektor Gremob oder der Tempeldiener kommt, die Mechanik dazu hatte ich hier geschildert:
http://www.crystals-dsa-foren.de/showthr...1#pid14921
Allerdings hat der Tempeldiener, der alternativ zu Ektor Gremob kommt, das Bild C13, nicht D6. Wenn ich mich recht entsinne, könnte D6 die fanatische Phex-Anhängerin im großen Phextempel in Phexcaer sein.
"Haut die Säbel auffe Schnäbel."
Beiträge: 2.178
Themen: 31
Registriert seit: Mar 2013
Bewertung:
14
Ja das stimmt, D6 ist diese Geweihte aus dem Phex-Tempel und auch Olimone aus den Sümpfen. Hatte in Erinnerung gehabt, dass der Phex-Tempel in Phexcaer zeitgleich dieser korrumpierte Gremob-Tempel sei.
Bilder, welche ich nicht kenne (oder mir gerade nicht einfallen) sind: C12, D1, G6, H2, H3, H12, H13.
"Alrik war durstig und hat getrunken."
Beiträge: 668
Themen: 71
Registriert seit: Apr 2008
Bewertung:
6
10.12.2015, 23:26
(Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2015, 23:27 von wiese.hano.)
(10.12.2015, 21:18)aeyol schrieb: Und hat Eliane Windenbek (F2) eigentlich so knallig blaue Haare oder ist das ein Kopftuch/Kapuze? Ich frage mich das, weil H8 mit "normal dunklen" Haaren dargestellt ist, sodass das ja zumindest möglich gewesen wäre. Ich habe das Blaue immer für Haare gehalten (auch wenn es etwas seltsam anmutet).
Wenn mir jemand die Farbpalette für Riva gibt, konvertiere ich das gewünschte Bild Pixel für Pixel manuell. (Denn ich glaube, einen Konverter gibt es dafür nicht.)
Warum sind denn die Charakterportraits unterschiedlich breit?
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Beiträge: 496
Themen: 1
Registriert seit: Oct 2009
Bewertung:
13
(10.12.2015, 23:26)wiese.hano schrieb: Wenn mir jemand die Farbpalette für Riva gibt, konvertiere ich das gewünschte Bild Pixel für Pixel manuell. (Denn ich glaube, einen Konverter gibt es dafür nicht.) Ich glaube, dass es sich spätestens nach dem zweiten Bild amortisieren würde, ein kleines Skript/Programm dafür zu schreiben. Solange beide Paletten (Schick und Riva, nehme ich an) bekannt sind, sollte das mit ganz wenig Code zu machen sein - inklusive Schnörkel vielleicht 50 Zeilen.
Beiträge: 12.931
Themen: 169
Registriert seit: Jul 2008
Bewertung:
37
Sowas lässt sich ganz gut mit Gimp regeln. Ihr müsst nur eine Tabelle mit den Indices und den dazu passenden Farbwerten erstellen. Sowas von Hand zu machen ist mMn Quatsch. Gimp weist den Farben dann ganz automatisch die richtigen Werte zu, sobald die einmal definiert sind.
Beiträge: 496
Themen: 1
Registriert seit: Oct 2009
Bewertung:
13
Kommt man mit Gimp dann auch einfach auf die Rohdaten zurueck, die in eine der Spieldateien geschrieben werden muessen? Wenn ja, waere das sicher die beste Loesung. Von Hand waeren das...1024 Pixel, nehme ich an? Das klingt wirklich nicht nach etwas, das man versuchen sollte.
Beiträge: 64
Themen: 3
Registriert seit: Nov 2014
Bewertung:
2
11.12.2015, 10:30
(Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2015, 10:31 von Jandor.)
(10.12.2015, 23:26)wiese.hano schrieb: Warum sind denn die Charakterportraits unterschiedlich breit?
Wenn das auf die von mir gepostete Darstellung Bezug nimmt, liegt es höchstwahrscheinlich 'nur' daran, dass ich's beim Zusammenbasteln der 130 Bildchen nicht ganz so genau genommen habe. Oder garstiger ausgedrückt: weil es nur fix zusammengeschlumpert wurde.
Gruß, Jandor.
Beiträge: 12.931
Themen: 169
Registriert seit: Jul 2008
Bewertung:
37
(11.12.2015, 08:32)thEClaw schrieb: Kommt man mit Gimp dann auch einfach auf die Rohdaten zurueck, die in eine der Spieldateien geschrieben werden muessen? Wenn ja, waere das sicher die beste Loesung. Von Hand waeren das...1024 Pixel, nehme ich an? Das klingt wirklich nicht nach etwas, das man versuchen sollte. Tja hm, Rohdaten. Ich habe die Daten wirklich roh als Bytes aus dem Speicher gelesen. Schick benutzt für seine Bilder ja ein Amiga-Format. Solange es Konverter dafür gibt, ist das dank nltpack kein Problem.
Beiträge: 496
Themen: 1
Registriert seit: Oct 2009
Bewertung:
13
11.12.2015, 13:21
(Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2015, 16:20 von thEClaw.)
Hier mal ein Stück Python-Code, das eigentlich tauglich sein sollte (mangels Daten habe ich es aber nicht getestet). Es berechnet den Abstand zweier Farben im RGB-Raum und "rundet" die alten Pixel auf die am besten passende neue Farbe.
Code: input_file = "schick.bin" # Roh-Daten eines Bildes; e.g. [0, 1, 2, 2, 1, 0, 0, 2]
output_file = "riva.bin"
palette_1 = [] # alte Palette; e.g. [[255, 0, 0], [0, 255, 0], [0, 0, 255]]
palette_2 = [] # neue Palette; e.g. [[255, 0, 0], [0, 255, 0], [0, 0, 255]]
data = open(input_file, "rb"):
raw = data.read()
# jeden Pixel mit am besten passender neuer Farbe ersetzen
for x in range(len(raw)):
rgb_1 = palette_1[raw[x]] # alte Farbe
optimum_index = None
optimum_distance = None
# beste Farbe finden, indem kleinster Farb-Abstand berechnet wird
for y in range(len(palette_2)):
rgb_2 = palette_2[y]
# quadrierten Vektor-Abstand berechnen
distance = sum([(x - y)**2 for (x, y) in zip(rgb_1, rgb_2)])
if optimum_distance is None or optimum_distance > distance:
optimum_distance = distance
optimum_index = y
elif optimum_distance == distance and palette_2[optimum_index] != rgb_2:
# Ausgabe wenn der Abstand zu zwei Farben identisch ist
print("Ambiguous colours detected for pixel %s: %s and %s" % (x, palette_2[optimum_index], rgb_2) )
raw[x] = optimum_index
# konvertiertes Bild liegt in 'raw' vor
with open (output_file, "wb") as data:
data.write(bytearray(raw))
Man müsste nur die Paletten im passenden Format einfügen und das ganze sollte laufen. Ich nehme an, dass man den Code auch leicht für andere Sprachen anpassen könnte; bis auf die sum()-Funktion steckt da eigentlich nichts besonderes drin.
PS: Der Code ist natürlich ziemlich schlicht, es wird für jeden Pixel einmal über die komplette neue Palette iteriert (bei 1024 Pixeln und 64 Paletten-Einträgen sollte das aber noch immer nicht soo lange dauern.)
Beiträge: 2.283
Themen: 17
Registriert seit: Nov 2007
Bewertung:
17
Ich fänd es ja ganz schick, wenn es für Camoto Module für die Dateiformate der NLT gäbe ...
Hallo, ich bin's - der Bart von Fidel Castro. Und mir ist total langweilich nie geschnitten wurde.
I'm a roleplayer. My dice are like my relationships: platonic and unlucky.
Beiträge: 12.931
Themen: 169
Registriert seit: Jul 2008
Bewertung:
37
@theClaw: Wenn ich mich nicht täusche, berechnet Dein Programm nicht die euklidische Distanz (und auch nicht deren Quadrat), falls das die Absicht war.
Beiträge: 496
Themen: 1
Registriert seit: Oct 2009
Bewertung:
13
Das wäre diese Zeile:
Code: sum([(rgb_1[i] - rgb_2[i])**2 for i in range(len(rgb_1))])
Und ich bin ziemlich sicher, dass sie doch den euklidischen Abstand berechnet. Habe ich an anderer Stelle einen Fehler gemacht?
Beiträge: 12.931
Themen: 169
Registriert seit: Jul 2008
Bewertung:
37
Du hast Recht. Ich habe palette_1,2 mit rgb_1,2 verwechselt. Wenn ich die Beschwerde in eine Bitte umwandeln darf: Folgendes würde mir das Lesen erleichtern.
Code: sum([(x-y)**2 for (x,y) in zip(rgb_1,rgb_2)])
Beiträge: 496
Themen: 1
Registriert seit: Oct 2009
Bewertung:
13
Mmh. Jetzt, wo du das sagst, koennte ich schwoeren, dass es nie anders gewesen ist.
Beiträge: 2.319
Themen: 52
Registriert seit: Aug 2013
Bewertung:
14
ich wollte mal wieder in dem Wiki nachsehen weil ich mal wieder was hexen will da ich nicht mehr genau weiß wo in der Monster.dat welche Werte stehen, jetzt finde ich diese informationen nicht mehr, kann mir jemand sagen wo ich sie finden kann?
Hacke Tau, Kumpels!
Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?
Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Beiträge: 668
Themen: 71
Registriert seit: Apr 2008
Bewertung:
6
Wenn du den Link zum Wiki gibst, gucke ich mal nach. *g*
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Beiträge: 2.319
Themen: 52
Registriert seit: Aug 2013
Bewertung:
14
ich habe es längst gefunden, die Seite heißt nur jetzt anders, aber die Daten sind noch alle da, hat sich also erledigt.
Hacke Tau, Kumpels!
Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?
Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Beiträge: 668
Themen: 71
Registriert seit: Apr 2008
Bewertung:
6
Es ging mir eigentlich um den Link zum Wiki (das ja offensichtlich eine Zeit lang down war). *räusper* Jetzt habe ich ihn noch immer nicht.
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Beiträge: 302
Themen: 2
Registriert seit: Oct 2012
Bewertung:
3
Hallo wiese.hano,
Obi-Wahn hat dankenswerterweise das Wiki wieder online gestellt. Der Link ist immer noch der alte: http://bright-eyes.obiwahn.de
|