Verschiedene Rüstungen, verschiedene Outfits, ein Spieler-Objekt. Welche Möglichkeiten gibt es?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Verschiedene Rüstungen, verschiedene Outfits, ein Spieler-Objekt. Welche Möglichkeiten gibt es?

    Was will ich erreichen?

    Mein Ziel ist es, verschiedene Rüstungsarten ins Spiel zu bringen, die man in einem Ausrüstungsfenster an-und ab-legen kann.
    Die Grafik im eigentlichen Spiel würde sich somit auch verändern.

    Bsp.: Man ist helmlos und zieht sich im Ausrüstungsfenster einen Helm mit Hörner an. Im Spiel sollte man nun auch einen Helm mit Hörner sehen.


    Problemstellung

    Da man ja so gut wie jede Animation einzeln zeichnen muss, würde die Arbeit für jede mögliche Rüstungskombination enorm werden.


    Frage

    Gibt es einen andere, bessere und einfachere Möglichkeit?
    Kann ein Objekt aus einem "Verbund" von Objekten bestehen, ohne, dass diese verziehen?


    Ich bedanke mich schon einmal für Eure Mühen.
  • Natürlich ist das Machbar so wie Lars ja bereits gesagt hat, auch wenn er ruhig erklären könnte wie er das genauer Meint :(

    Also ich persöhnlich würde dir folgendes Empfehlen, schau darauf das alle deine Animationen so möglich sind das sich der Körper hierbei nicht extrem verzerrt, (z.B. zu nehr Kugel zusammenrollen,...) die Körperteile sollten immer die gleiche Größe und Form haben. Nur so kannst du gewährleisten das egal was für Sachen der Spieler anhat, es keine Probleme in der Darstellung gibt!


    Nun würde ich dir folgendes Vorschlagen wie du deinen Charakter in mehrere Objekte aufteilst

    Hut Objekt
    Dessen Sprites sollten entweder im Vordergrund gezeichnet werden, oder an die Kopfform angepasst sein


    Kopf Objekt
    Die enthält das Aussehen des Kopfes sowie alle Gesichtsanimationen, hierbei nochmal in Augen/Mund,... aufzuspalten ist zwar möglich aber ne menge arbeit,...


    Oberkörper Objekt
    Der Oberkörper halt (verschiedene Rüstungen,...) ich persöhnlich würde die Arme auch wenn sie Animationen haben mit dazunehmen, und zwar deshalb weil die Arme einzeln als Objekte zu machen genauso aufwendig ist,....


    Waffe Objekt
    Verschiedene Waffen die der Spieler in der Hand halten kann


    Beine Objekt
    Auch hier würde ich die ganzen Sets die der Spieler anziehen kann mit allen Laufanimationen machen,...



    Also man kann das ganze sicherlich übertreiben,... aber ich würde sagen es ist einfacher ein Sprite abspielen zu lassen, als die Objekte so zu drehen/Verschieben da sie die Animation ergeben,.... :P

    Du kannst ja sagen das z.b alle Objekte sich an der Position des Oberköpers befinden, mit einer verschiebung natürlich,...

    GML-Quellcode

    1. STEP EVENT:
    2. Kopf.x = Oberkörper.x
    3. Kopf.y = Oberkörper.y-20


    Wenn du dann den Oberkörper mittels Pfeiltasten bewegst, folgen alle Objekte automatisch

    Ich hoffe ich konnte dir helfen bzw einen ansatz geben, wie das ganze Funktionieren könnte,....

    Falls jemand noch ne bessere Lösung hat, darf er sie gerne Preisgeben ^^

    Grüßle Blayde
  • Du kannst auch die Figur aus mehreren Layern bauen. Ganz unten (als Depth) kommt die Figur selbst (nackt, vielleicht mit Unterhose oder so), darüber kommen nun die ganzen Kleidungsarten (Rüstung, Schuhe, Helm, Frisur, etc). Für die Animationen z.B. hat der Spieler ein Grundsheet (Links, Rechts... Stehend, Laufend etc) und dazu noch die Kleidungsstücke die einfach nur drüber gemalt werden. Dadurch brauchst du kein überkomplexes Drawsystem oder viele Objekte, sondern eben nur ein paar Sprites.

    Die Teile dann in einem Grafikprogramm zu malen/pixeln ist dann auch relativ einfach, man kann einfach den Spieler als Grundlayer nutzen und dann in einem anderen Layer die Kleidung dazu. Der Vorteil ist auch das man die Sheets für alle NPCs und so wieder verwenden kann und man nicht für jede x-Kombination ein neues Sprite zeichnen muss.

    So sieht das ganze in Action aus:
    youtu.be/yw-uiK_Eszc
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von henrik1235 ()

  • Vielen Dank auch an Blayde und Henrik1235. :)

    Ich denke, dass Henriks Vorschlag einfacher umzusetzen ist, da man alles über ein Objekt ( dem nackten Körper ) ablaufen lassen kann.

    Ich versuche nun die Namen der ausgerüsteten Gegenstände in einem Array ( da Lite-Version :( ) zu speichern und jeweils mit einem "with"-Befehl die entsprechende Bewegung zu übermitteln,
    da es Probleme gibt, wenn mehrere Objekte mit der gleichen Taste gesteuert wird. So war es zumindest bei mir.

    Hänge aktuell noch an einem Skript, aber ich lade den Code hoch, sobald es funktioniert :P

    Achso, das Video trifft meine Vorstellung ziemlich gut, sieht auch sehr gut aus. Das ist nicht zufällig aus deinem Kopf entsprungen oder?
  • Bilder sind von wupto. (Vor Verwendung fragen!)

    Beispiel:


    Grundsheet für den Spieler.


    Helm für den Spieler (oder einen NPC).

    Und der dazu gehöhrige Draw-Code:

    GML-Quellcode

    1. draw_background_part_ext(bg_Player, floor(ImageX)*64, ImageY*64, 64, 64, x, y-floor(Z), 1, 1, blend, 1);
    2. if (global.InventarCharHelmet!=0) {
    3. if (ImageY==3) {
    4. draw_background_part_ext(ItemGet(global.InventarCharHelmet, "Strip"), floor(ImageX)*64, 2*64, 64, 64, x+64, y-floor(Z), -1, 1, c_white, 1);
    5. }
    6. else {
    7. draw_background_part(ItemGet(global.InventarCharHelmet, "Strip"), floor(ImageX)*64, ImageY*64, 64, 64, x, y-floor(Z));
    8. }
    9. }


    draw_background_part zeichnet einen Teil von einem Hintergrund (also nicht den ganzen Hintergrund) weil das Bild ja ein Sheet ist. ImageX/ImageY wird für die Animationen benutzt (welches Bild gezeigt werden soll). global.InventarCharHelmet ist die globale Variable die angibt was für ein Helm derzeit getragen wird.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%