Ergebnis 1 bis 20 von 98

Thema: [DynRPG] RPGSS

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Das erste Bild ist aus Photoshop (wobei es mehrere Layer sind; der unterste ist die Map und alle drüber liegenden sind Lightmaps mit unterschiedlichem Blending)? Und deine Frage ist, ob es möglich ist, die Blend Modes aus Photoshop hinzuzufügen? Habe ich das richtig verstanden? :o

    Neue Blend Modes hinzufügen ist kein Problem, ich müsste nur an die Blending-Formeln kommen. :<

    Was den LE-Manager angeht: In der Datei LightmapManager.lua, in Zeile 54, ist der Aufruf von game.screen.draw. Dort einfach den Aufruf um den Blend Mode-Parameter erweitern. Der Blend Mode gilt dann natürlich für alle Maps. Es ist selbstverständlich auch möglich den LE-Manager um mehrere Lightmap-Layer zu erweitern. Will den eh noch in der nächsten Zeit überarbeiten, damit Lightmaps eine Tiefe (Z-Position) bekommen.

  2. #2
    Zitat Zitat von Kyuu Beitrag anzeigen
    Das erste Bild ist aus Photoshop (wobei es mehrere Layer sind; der unterste ist die Map und alle drüber liegenden sind Lightmaps mit unterschiedlichem Blending)? Und deine Frage ist, ob es möglich ist, die Blend Modes aus Photoshop hinzuzufügen? Habe ich das richtig verstanden? .
    Das wäre optimal, ja. Im Moment ist die gängige Art für solche Lichteffekte, den Effekt direkt als Parallax mit der Map einzufügen. Dadurch werden natürlich Events und der Hero nicht vom Effekt erfasst, und diese müssen entweder manuell eingefärbt oder einfach ignoriert werden. Wenn man die direkt als Picture mit dem passenden Blend Mode einfügen könnte, sähe das echt super aus.
    Ich kann dir ja mal nen Breakdown der benutzten Blend Modes geben:

    Ganz unten ist natürlich die Map


    Dann Weiches Licht / Soft Light


    Ineinanderkopieren / Overlay


    Farbig Abwedeln / Color Dodge


    Multiplizieren / Multiply


    Und das wird einfach so drübergelegt


    Bezüglich der Formeln hab ich nicht wirklich Ahnung von der Implementierung, ich kann lediglich etwas googlen und >>sehr<< >>vielversprechend<< >>aussehende<< >>Ressourcen<< finden. °-o (Die obigen Bilder wurden übrigens in Photoshop CS5 gemacht, ich weiß nicht, ob sich da was über die Versionen geändert hat.)

    Geändert von goldenroy (31.07.2014 um 18:26 Uhr)

  3. #3
    Hm, ok. Multiply ist eh schon drin. Color Dodge und Overlay sollten kein Problem sein. Soft Light könnte für die Echtzeitanforderungen eines Spiels aber zu langsam sein, zumindest in der "exakten" Version (Wurzel muss gezogen werden). Das könnte ich aber mit einem LUT, oder mit einer angenäherten Version beschleunigen. Ich teste es mal am Wochenende aus.

  4. #4
    @goldenroy:

    Sorry, aber daraus wird nichts. Die Blend Modes sind ungeeignet für Software Blending in Echtzeit. Habe die Blend Modes bis jetzt zwar nur in C++ ausprobiert, aber selbst in Assembler wird sich vermutlich nicht viel ändern. Hätte ich bloß OpenGL + Shader zu Verfügung... :/

    Geändert von Kyuu (03.08.2014 um 16:11 Uhr)

  5. #5
    Okay, das ist schade, aber nicht allzu tragisch. ^-^
    Mir ist aber noch eine andere Sache aufgefallen: Gibt es einen simplen Weg, um festzustellen, ob sich ein Charakter bewegt? <Character>.moving gilt ja nur fürs Bewegen durch Move Event und es gibt afaik auch keinen Sprite-Offset (wie weit die Grafik vom eigentlichen Eventblock entfernt ist, wenn das != 0 ist, dann ist das Event ja in Bewegung). Es gibt natürlich den üblichen Weg über das abgleichen von Koordinaten, aber vielleicht hat Dyn ja Zugriff auf was simpleres als das. :0

  6. #6
    Zitat Zitat von goldenroy Beitrag anzeigen
    Gibt es einen simplen Weg, um festzustellen, ob sich ein Charakter bewegt? <Character>.moving gilt ja nur fürs Bewegen durch Move Event und es gibt afaik auch keinen Sprite-Offset (wie weit die Grafik vom eigentlichen Eventblock entfernt ist, wenn das != 0 ist, dann ist das Event ja in Bewegung). Es gibt natürlich den üblichen Weg über das abgleichen von Koordinaten, aber vielleicht hat Dyn ja Zugriff auf was simpleres als das. :0
    Echt? Das war mir noch gar nicht bewusst. Kann's jetzt auch nicht ausprobieren, da ich mitten in einem Systemwechsel stecke.

    Soweit ich mich erinnern kann, haben Character-Objekte aber einen Haufen Attribute, anhand derer der Maker Bewegungen interpoliert. Das heißt, es gibt höchstwahrscheinlich einen Weg herauszufinden, ob ein Character gerade in Bewegung ist, unabhängig davon, ob ein Move-Event oder was auch immer den Character bewegt. Ich schau mal was sich machen lässt, sobald ich wieder die Gelegenheit bekommen.

  7. #7
    Beim onComment des DynRPG wird ja als Argument die EventID des entsprechenden Events übergeben.
    Gibt es eine Möglichkeit diese ID auch beim RPGSS zu übergeben (z.B. mit einem zusätzlichen @callID das als erstes Argument die EventID an die LUA-Funktion übergibt.

    Edit:

    Warum wirft dieses Stück Code den Fehler "no member named 'charsetId'"? Ich möchte gerne das Charset durch das Script ändern lassen. Oder ist das nicht möglich?

    function change(eventID)
    event = game.map.findEvent(eventID)
    event.charsetId = 2
    end

    Geändert von benzor (09.08.2014 um 19:00 Uhr)

  8. #8
    Zitat Zitat von benzor Beitrag anzeigen
    Beim onComment des DynRPG wird ja als Argument die EventID des entsprechenden Events übergeben.
    Gibt es eine Möglichkeit diese ID auch beim RPGSS zu übergeben (z.B. mit einem zusätzlichen @callID das als erstes Argument die EventID an die LUA-Funktion übergibt.
    Ja, ist möglich. Ich baue es in die nächste Version ein.

    Zitat Zitat von benzor Beitrag anzeigen
    Warum wirft dieses Stück Code den Fehler "no member named 'charsetId'"? Ich möchte gerne das Charset durch das Script ändern lassen. Oder ist das nicht möglich?

    function change(eventID)
    event = game.map.findEvent(eventID)
    event.charsetId = 2
    end
    Weil ich noch keinen Setter für das charsetId-Attribut geschrieben habe.

    Bei einigen Attributen macht eine Zuweisung keinen Sinn, z.B. weil es keine Auswirkung hätte. Dort, wo ich mir nicht sicher war (und zu faul war zum Testen :>), habe ich den Setter vorerst ausgelassen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •