Jump to content
Unity Insider Forum

Design-Frage zu Sprites und Scripts


Spilight

Recommended Posts

Hey Leute! ^^

 

Ich hab jetzt mal ausführlich die Unity Lernvideos durchgearbeitet und hätte einige Design-Fragen.

 

Ich würde gerne für ein 2D-Game einen Character gestalten, welcher später animiert werden und ausrüstbar sein soll. Mein grundlegendes Konzept wäre erstmal folgendes:

Den Character würde ich in seine Einzelteile zerlegen, also Kopf, Torso, Beine, etc. und diese einzeln animieren und in Unity zusammenfügen. Angenommen ich hätte jetzt bspw. den Torso mit einer Lederrüstung, dann würde ich einen Torso mit einer Eisenrüstung als extra Sprites machen und in Unity, je nachdem was der Spieler ausgerüstet hat, den entsprechenden Sprite samt Animation laden. Ist dies erstmal so ohne Weiteres möglich oder gibt es hierfür vllt. bessere Wege? Meine Bedenken liegen ein bisschen in der Richtung, dass sich dann ja ein Spieler quasi aus ca. 6-7 Objekten zusammensetzt, die jeweils eigene Sprites samt Animationen undso haben.

 

Dann hab ich mich ein bisschen in Scripting probiert. So wie ich das verstanden habe, soll man Scripts als Components programmieren, die sich jeweils möglichst um eine Aufgabe kümmern. Habe ich also so einen Character, würde ich ein Script programmieren, was sich um die Steuerung kümmert, also z.B. Laufen oder Springen. Dann ein weiteres, was die Gesundheit managed, inklusive dem Ableben... usw.

Häufig sehe ich in Tutorials, dass viele auch das Inventar in dem Spieler managen lassen, aber da das eigentlich hauptsächlich über das User Interface geregelt wird, könnte man dies doch auch in ein externes Game Object auslagern, oder? Also das man quasi ein Game Object hat, was sich so um die einzelnen Menüs undso kümmert, darunter dann das Inventar oder bei RPG's gibbet ja auch Quests. Das bräuchte doch der Spieler selbst jetzt nicht unbedingt, zumal man die ganzen Statusdaten sowie spätestens nach dem Laden eines Spielstandes eh immer extern Einlesen müsste.

 

Das sind erstmal so meine 2 groben Verständnisfragen, die ich erstmal habe. Werde dies ggf. noch ergänzen. Würde mich freuen, wenn ihr mir da ein bisschen Erfahrung sharen könnt. ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Beim ersten würde ich gleich komplett auf Bones gehen .Sprite animationen sind ja wie Daumenkino lauter einzelne Bilder . Bei modular würde ich aber eher die Körperteile mit einer Bonehirachy versehen und da kann man dann einfach diese Bilder(körperparts) austauschen aber die Animation bleibt ja so die selbe . Auch lässt es sich so alles viel dynamischer beinflussen als liniare Sprirteanimationen.

 

zb https://www.assetsto...!/content/14024 direkt in Unity

oder

Spline http://de.esotericso...-depth#Features

oder

Spriter https://brashmonkey.com/ (aber das Unity plugin funzt bei nicht )

 

Ich selber nutze Anime Studio , weil ich direkt als FBX importerien kann

http://my.smithmicro...studio-pro.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst deine Animation auch komplett in Photoshop machen und sie als GIF importieren. Sprites sind ja auch nicht einfach nur Bilder sondern Sprites können auch aus mehren nebeneinander liegen Bilder bestehen die dann nacheinander abgerufen werden können.

Du kannst also zb deinen Charakter in deinem Grafik Programm mehrmals nebeneinander kopieren und daraus verschiedene Posten machen. In Unity definierst du dann wann welches Sprite aus dem gesamten Bild genommen werden soll.

 

So sieht das dann aus:

http://opengameart.o...ycle_no_hat.png

 

Genau so kann das Unity auch lesen es ist nicht nötige alle Bilder einzeln zu importieren. Unity liest alle Bilder direkt aus diesem Bild aus.

 

Im Internet gibt es sehr viele Tutorials darüber aber besten du suchst mal nach " GIF, Sprite, unity, import" ... je nach was du braucht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstmal vielen Dank für die Antworten! ^^

 

@fairygirl

An so ein Bones-System hab ich auch erst gedacht. Das wurde auch so in den Unity Learn Tutorials vorgestellt, wo dann diese eine Kartoffel lediglich aus einzelnen Teilen in Unity animiert wurde. Das führt allerdings glaube ich nicht ganz zu dem Ergebnis, was ich erreichen möchte.

 

Mein Character, den ich erstellen möchte, soll sich funktionstechnisch ungefähr verhalten wie in Starbound, was man in dieser Szene ganz gut sehen kann:

 

Zunächst fällt auf, dass die Charaktere offensichtlich aus Einzelteilen bestehen (Auch die Arme sind beide separat). Halten die ein Werkzeug, wie bspw. ein Schwert oder Bogen, wird keine Animation ausgeführt im eigentlichen Sinne, sondern es wird lediglich das Bild zum Mauszeiger gedreht. Sowas könnte man in Unity nach den Learn Tutorials einfach umsetzen.

 

Was ich aber meine sind richtig die Animationen, also wenn der Character läuft und nichts in der Hand hat, schwingt er ja mit den Armen, oder in einer Szene davor harkt/pflügt ein Character und klappt seine Finger entsprechend auf und zu, oder, angenommen man hat eine Zweihandwaffe, wie einen Hammer, der würde aus dieser Perspektive in der Z-Achse beim Laufen hin und her schwingen, und spätestens das kann man soweit ich weiß nicht mehr durch verändern der Tranform-Werte darstellen.

 

Was ich so im Sinne hatte ging dann mehr in die Richtung von @Sleepy's Post. Aber anstelle von einem Animations-Spritesheet für den gesamten Character, würde ich einen für bspw. den rechten Arm machen. Wie dieser sich quasi bei Idle-, Sprung-, etc. Animationen verhält. Und diese ganzen Sheets, wären dann eben wie gesagt so 6 bis 7 Stück (je nachdem wie genau man den Körper einteilt, beim Körper braucht man ja vllt nichts animieren, müsste man testen) in Unity laden und diese dann kombinieren. Würde das dann funktionieren, dass ich einfach entsprechend die einzelnen Animationen von den Sprites aufrufe? Das wären dann im Prinzip auch so 6 - 7 Game Objects in einem Player-Container.

 

Also so in die Richtung hatte ich das gedacht. ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du musst dir das einfach so vorstellen an jeder Bone hängt eine Plane mit Textur Jede Plane reperäntiert ein Bodypart Image

Die einzelne Bone fungiert auch gleichzeitig als Pivot

Man kann dann einfach Runtime diese Texturen wechseln.

Sprite Animationen wären daher nur ein Haufen Arbeit und für alles extra die Animationen erstellen. So brauchst du nur die Bone Animation erstellen und swap einfach die Images(Texturen)

Link zu diesem Kommentar
Auf anderen Seiten teilen

@fairygirl

Aber müsste ich dann nicht sowieso die Animationen einzeln machen, wenn ich die Bilder bei den Bones swape? :wacko:

 

Ich mein für einfache Animationen, wie z.B. simples Laufen würde es sich ja anbieten wie bei Starbound einfach die Transform-Daten zu verändern, also einfach quasi den ArmBone bspw. zu rotieren, ohne, dass sich am Bild selbst verändert.

 

Aber was mach ich denn, wenn ich z.B. eine Animation habe, wo der Character einen Gegenstand vom Boden aufnimmt, wie z.B. bei Adventures das gerne der Fall ist? Oder wie hier in diesem Bild:

http://marionettestudio.com/wp-content/uploads/2016/05/sprite-sheet-600x490.png

5te Reihe von oben, wo man eine Hit-Animation mit Drehung hat. Da funktioniert das mit den Bones doch nicht mehr oder? In deinem ersten Link von Puppet2D wird ja auch nur der Bone gedreht oder gestreckt, aber das Bild selber wird in den Beispielanimationen dort so wie ich das sehe nicht verändert.

 

Steh da irgendwie son bissel noch aufm Schlauch. ^^ Ich mein das mit den Bildern austauschen bei den Bones versteh ich schon, nur müsste ich dann nicht trotzdem für die einzelnen Parts entsprechend Animationen machen, wenn ich spezielle haben will, wo man die Bones eben nicht einfach nur drehen/strecken kann?

 

Und dann hab ich nochmal kurz ne Frage zur Auflösung. Ich hab gelesen, dass man vorher für die einzelnen Pixel Arts Maße festlegen muss für Unity. Wenn man in Unity das Spiel testet, kann man ja in der Preview sehen, was die Kameras entsprechend aufzeichet. Angenommen man hat unterschiedliche Bildschirmauflösungen am Ende, sehen die Kameras immer das gleiche, also werden die entsprechend skaliert, oder muss man da selbst noch Anpassungen vornehmen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...