Kategorie: Kunst-Charaktere

Charaktere, Monster und Kreaturen

  • Kleine Drachen für mehr Bewegung

    2025-03-26 -Übertrag

    Um etwas mehr Bewegung ins Bild zu bekommen, habe ich kleine Drachen animiert. Sie haben nur den Zweck das Bild des Spiels etwas aufzulockern.

    Feen Drachen

    Anfangs hatte ich erst eine Spezies Drachen geplant, daraus entwickelten sich dann -im momentanen Stand- drei weitere. Ich plane später noch viele mehr zu erstellen, da es spaß macht neue Feen-Drachen zu interpretieren.

    Für den Anfang habe ich drei Feen-Drachen erstellt mit stark unterschiedlichen Farben. Das hat dabei geholfen, die Funktion für die Automatische Aufteilung zu schreiben. Die kleinen Drachen werden ins Bild gerufen anhand einer Einzelnen Variable. Das Heist, ich setze State.Schmetterlinge = 149 und jeder der Drachen bekommt 49 Partner seine Spezies. Die restlichen Zwei Drachen die übrig bleiben werden auf die Erste Spezies gerechnet. Am ende sind 49 Monarchfalter-Drachen, 49 Hummel-Drachen und 52 Schwalbenschwanz-Drachen im Bereich der Kamera des Spielers.

    Die Große Nummer ist hier nur zur Veranschaulichung, ich nutze im Spiel 3 bis 15 Schmetterlinge je nach Fortschritt im Spiel. Die Anzahl der Drachen wird auch ein Karma-System, ich plane die Drachen zu erhöhen wenn der Spieler sich positiv gegenüber der Spielwelt verhält. Wenn der Spieler sich negativ verhält ist auch ein Event mit dem System geplant, aber das muss noch durchgeplant werden.

    Die Feen-Drachen werden despawnt wenn sie ausherhalb der Kamera des Spielers sind und werde an einer zufälligen Stelle am Rand der Kamera respawnt. Damit verhindere ich, das die Drachen außerhalb der Kamera Speicherplatz verbrauchen und dass sie sich alle auf einer Seite der Karte aufhalten.

    Verhalten zum User Interface

    Im Spiel sind die kleinen Drachen über dem Spieler angeordnet, so sehen sie aus als ob sie fliegen. Allerdings ist auch wichtig, dass sie unter der Textbox oder anderer User Interface Elemente sind. Sonst würden sie die Lesbarkeit des User Interface behindern.

    Das habe ich damit gelöst, das Game und User Interface in eigenen Szenen sind, welche unterschiedlichen Z-Index haben.

    Die Textbox wurde in einem anderen Artikel behandelt:
    RPG – Textbox und wie sie eingebaut wurde

    func spawnBox():

    if State.Shared_Character_Position != null:

    if global_position.x >= State.Shared_Character_Position.x + spawnBoxVector.x or global_position.x <= State.Shared_Character_Position.x – spawnBoxVector.x or global_position.y >=  State.Shared_Character_Position.y + spawnBoxVector.y or global_position.y <= State.Shared_Character_Position.y – spawnBoxVector.y:

    if $“..“.rollPosition == 0:

    global_position = Vector2(State.Shared_Character_Position.x + spawnBoxVector.x -10, randi_range(State.Shared_Character_Position.y – spawnBoxVector.y, State.Shared_Character_Position.y + spawnBoxVector.y)) #Rechts

    elif $“..“.rollPosition == 1:

    global_position = Vector2(State.Shared_Character_Position.x – spawnBoxVector.x +10,randi_range(State.Shared_Character_Position.y – spawnBoxVector.y, State.Shared_Character_Position.y + spawnBoxVector.y)) #Links

    elif  $“..“.rollPosition == 2:

    global_position = Vector2(randi_range(State.Shared_Character_Position.x – spawnBoxVector.x, State.Shared_Character_Position.x + spawnBoxVector.x),State.Shared_Character_Position.y + spawnBoxVector.y -10) #Unten

    elif $“..“.rollPosition == 3:

    global_position = Vector2(randi_range(State.Shared_Character_Position.x – spawnBoxVector.x, State.Shared_Character_Position.x + spawnBoxVector.x),State.Shared_Character_Position.y – spawnBoxVector.y +10) #Oben

    Spawn Zone

    Um die Drachen geringer zu Halten und diese nicht auf der gesamten Karte zu bewegen, habe ich eine Spawn und Despawn Zone erstellt. Diese Zone ist einfach gesagt ein Kasten aus Koordinaten hinter welchem keine Drachen sind, dieser Kasten bewegt sich mit dem Spieler.

    Als erstes wird geschaut ob der Drache auserhalb der Box ist, wenn ja wird dieser an eine andere Position gesetzt.

    Die Position wir alle 0.2 Sekunden mit einem Timer neu gewürfelt um etwas Rechenleistung zu sparen. Aus dem Würfeln kann eine Zahl von 0 bis 3 entstehen welche die Himmelsrichtung der neuen Position bestimmt.

    Mit der neuen Position werden sie einige Pixel weiter zur Mitte gesetzt, um zu schnelles Despawnen und Respawnen zu verhindern.

    Fazit

    Die kleinen Drachen geben durch ihre einfache kleine Animation etwas Bewegung ins Spiel, welche vorher gefehlt hat. Das System im Hintergrund bietet Möglichkeiten zur Weiterentwicklung, wie das oben angesprochene Karma System welches bisher nur in meinem Kopf existiert. Feen-Drachen sind auch mal eine nette Abwechslung und kommen hin und wieder mal in meinen Art und Development Streams vor, da es nicht zu viel Arbeit ist diese ins Spiel mit zu integrieren. Mit den erstellten Feen-Drachen Assets plane ich noch weitere Projekte, allerdings ist das in fernerer Zukunft.

  • über Mimik in einem Comic

    2025-03-08 – Übertrag

    über Mimik in Comics

    Die Basisemotionen sind ein kulturübergreifendes, universelles Ausdrucksmedium. Man kann dieses Medium nutzen um eine Geschichte zu erzählen.
    Deshalb erstelle ich hier mit Wasserfarben einige Expression Boards und Leitfäden für die Zeichnung meiner Charaktere – hier Taja -. um sie später einfacher replizieren zu können und im Vorfeld zu sehen wie die Einzelnen Gesichtsausdrücke wirken, oder diese noch etwas Arbeit benötigen.

    hier probiere ich eine Herangehensweise welche sich möglichst einfach replizieren lässt, um den Charakter immer und immer wieder zu zeichnen. Teile des Gesichts werden in einfache Geometrische Formen heruntergebrochen und Guidelines gezogen.

    Von den Basisemotionen kann man später noch sekundäre Emotionen ableiten wie Stolz, Dankbarkeit, Eifersucht. Die grobe Zeichnung wird, wie hier, noch mit Tinten Line-Art übermalt uns später mit Wasserfarben ausgemalt. Am ende habe ich ein Referenz-Bild mit den Sechs Basisemotionen, welches später hilft, dass sich der Charakter nicht zu sehr verändert über Zeit.

    In diese Phase teste ich auch andere Perspektiven und wie ich diese erstelle, hier kann man sehn das ich die Schnauze etwas kürze im zweiten Versuch.

    Ich coloriere die Bilder meist noch, um ein richtiges „Feeling“ zu bekommen wie die Bilder später wirken.
    Dies sind einige der Ursprünglichen Rohentwürfe von Taja. Einige der Bilder haben auch Notizen wie sie entworfen wurden. Mit jedem neuen Entwurf entwickelt sich der Charakter hier weiter, von der Ersten Idee bis zur letzten Verbesserung. Die oberen Drei Bilder sind Jeweils verschiedene Versuche, die unteren drei sind Iterationen des Bildes oben rechts.

    Wichtig ist auch gute Referenz im Vorfeld zu suchen, oder wenn man etwas braucht wie einen Bestimmten Gesichtsausdruck, wenn man herausfinden möchte wo sich welche Falte im Gesicht verzieht. Wenn ich Charakter-Kreation streame, nehmen ich mit etwas Zeit im Vorfeld des Streams um geeignete Referenz zu suchen und eine Idee zu festigen. So ist der Ablauf im Stream viel „Smoother“.