Blender 3D

Das Forum zum beliebten 3D-Modellierungsprogramm Blender und andere Foto-, Textur- und 3D-Software und -themen.
Nachricht
Autor
Benutzeravatar
AndreasBrandtner
Administrator
Beiträge: 2367
Registriert: 04.11.2001 14:10:41
Wohnort: Quickborn, Schleswig Holstein

Re: Blender 3D

#241 Beitrag von AndreasBrandtner »

Jaaa, der Tip der Woche, für mich... :tup . Wobei standardmäßig sehe ich auch nur eine Seite in Blender. Zumindest im Texturmode. Hatte es aber schon öfters das es plötzlich zweiseitig war. :looking: -egal jetzt weiß ich ja was zu tun ist.

Der Exporter ist richtig klasse und sollte auf jeden fall entsprechend publiziert werden. Danke an der Stelle nochmals für die schnelle Umsetzung meiner Wünsche.. :applaus

Grüße
Andreas Brandtner
****************

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#242 Beitrag von Johannes »

AndreasBrandtner hat geschrieben:Jaaa, der Tip der Woche, für mich... :tup . Wobei standardmäßig sehe ich auch nur eine Seite in Blender. Zumindest im Texturmode.
Hm, interessant, das habe ich noch nicht erlebt. Ist die Fläche von hinten betrachtet wirklich durchsichtig (so wie bei Zusi) oder ist die Rückseite nur schwarz? In letzterem Fall ist die Fläche einfach nur von einer Seite beleuchtet; im Texturmodus werden ja die in der Szene definierten Lichtquellen benutzt.

In dem Zusammenhang ist übrigens die Option „Textured Solid“ (direkt oberhalb von „Backface Culling“) interessant. Sie stellt die Texturen schon in der – eigentlich untexturierten – Solid-Ansicht dar, die nicht mit den in der Szene definierten Lichtquellen, sondern gleichmäßig von allen Seiten beleuchtet ist.

Und noch eins drüber ist die Shading-Methode – stellt man sie auf „GLSL“, werden auch transparente Materialien korrekt angezeigt (das wiederum aber nur in der Textured-Ansicht). Ähnlich wie bei Zusi muss man Blender sagen, dass das transparente Objekt als letztes gezeichnet werden soll; dazu klickt man in den Objekt(!)eigenschaften unter „Display“ die Option „Transparency“ an. Als kleine Nebenwirkung wird dann (bei mir) das Objekt beim Selektieren nicht mehr umrandet, sehr verwirrend …

Grüße
Johannes

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#243 Beitrag von Johannes »

Noch eine Sache: Im Blender-Hausbaututorial (Doku 3.0.4) ist mir der Punkt 12.5.3.3.3 (Splitten der Flächen zwecks korrekter Normalenvektoren) aufgefallen. Dieser Abschnitt ist aus meiner Sicht nicht notwendig und sogar kontraproduktiv. Der DirectX-Exporter (zumindest in der aktuellen Version) führt diesen Schritt nämlich automatisch durch, exportiert also ein und denselben Vertex an zwei Flächen als zwei Vertices mit jeweils eigenem Normalenvektor. Auch mein LS3-Exporter macht das so. Den in diesem Abschnitt beschriebenen Effekt ohne das Splitten würde man nur erhalten, wenn die entsprechenden Flächen auf „Smooth“ gesetzt wären, was standardmäßig nicht der Fall ist. Durch das Splitten wird also höchstens das 3D-Modell schwieriger zu bearbeiten.

Grüße
Johannes

Benutzeravatar
AndreasBrandtner
Administrator
Beiträge: 2367
Registriert: 04.11.2001 14:10:41
Wohnort: Quickborn, Schleswig Holstein

Re: Blender 3D

#244 Beitrag von AndreasBrandtner »

Die sind durchsichtig. Zumindest wenn ich die Ansicht auf Textured stelle.

Die Sache mit den Normals ist grade für Anfänger nicht ganz leicht. Ich habe mir es so angewöhnt die Flächen zu spilten. Ist nur die Frage ob der Exporter dann vier Punkte draus macht? Ich denke die Doku sollte man dahingehend ändern das man den "Smooth" fall beschreibt. Also was muss man machen wenn es "rund" bzw. weich sein soll.

Dabei fällt mir noch ne andere Frage ein. Kann ich eine Fläche auch entlang einer Edge Spiegeln? Das ich den Courser setzen kann und an diesem dann spiegeln ist mir schon klar. Nur die Ausrichtung des Gespiegelten ist dann ja immer bezogen auf die globale X/Y/Z Ausrichtung. Anders gesagt, wenn die Spiegelachse genau in X oder Y Richtung ist bekommt man das gewünschte Ergebnis. Ist die Spiegelachse aber Diagonal geht es nicht.
Andreas Brandtner
****************

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#245 Beitrag von Johannes »

AndreasBrandtner hat geschrieben:Kann ich eine Fläche auch entlang einer Edge Spiegeln?
Meinst du entlang einer beliebigen Edge oder entlang einer Edge, die zu dieser Fläche gehört?
AndreasBrandtner hat geschrieben:Das ich den Courser setzen kann und an diesem dann spiegeln ist mir schon klar. Nur die Ausrichtung des Gespiegelten ist dann ja immer bezogen auf die globale X/Y/Z Ausrichtung. Anders gesagt, wenn die Spiegelachse genau in X oder Y Richtung ist bekommt man das gewünschte Ergebnis. Ist die Spiegelachse aber Diagonal geht es nicht.
Man kann unter „Transform Orientation“ (das Dropdown links neben Vertex-/Edge-/Face-Auswahlmodus) diverse Koordinatensysteme einstellen, darunter „Local“ und „Normal“. Drückt man dann beim Verschieben, Spiegeln etc. die Taste für die entsprechende Achse zweimal (etwa „X X“), erfolgt die Transformation nicht global, sondern anhand des gewählten Koordinatensystems, z.B. entlang der Flächennormalen (sehr praktisch!), wenn „Normal“ ausgewählt ist. Hilft das weiter?

Grüße
Johannes
Zuletzt geändert von Johannes am 12.10.2012 10:28:17, insgesamt 1-mal geändert.

Alwin Meschede
Beiträge: 8927
Registriert: 04.11.2001 19:57:46
Aktuelle Projekte: Zusi3 Objektbau
Kontaktdaten:

Re: Blender 3D

#246 Beitrag von Alwin Meschede »

Tach auch!
Wahrscheinlich war ich ja der letzte, der das Blender-Tutorium angefasst hat, deshalb bietet es sich wahrscheinlich an, wenn ich die notwendigen Überarbeitungen vornehme.

Die Empfehlung, die Flächen per Y-Taste zu splitten, muss wohl wirklich eine Altlast aus Blender 2.4 sein. Ich mache das ja selber auch nicht. Mein persönlicher Baustil sieht übrigens so aus, dass ich auch den Button für "Smooth" in Blender nicht benutze, sondern mich für die Normalenvektoren runder Objekte ausschließlich auf die automatische Mesh-Optimierung des 3D-Editors verlasse (wo ich ggfs. am Grenzwinkel drehe, bis der gewünschte Effekt erzielt ist). Also die Aufforderung zur umfassenden Benutzung der Y-Taste kommt weg. Der Rest des betroffenen Kapitels ist dann thematisch vielleicht besser im Kapitel 5.1 der Doku aufgehoben (das ist das Kapitel zum Thema "3D-Grundlagen"). Ob man den Smooth-Button im Tutorial näher beschreiben sollte, da bin ich mir unschlüssig. Wenn man wie derzeit beschrieben erstmal nach .x exportiert und das dann in den 3D-Editor importiert, schert sich der Zusi-3D-Editor sowieso nicht mehr darum, ob man Smooth geklickt hat. Er wird einfach nochmal stumpf die momentanen Parameter seiner automatischen Mesh-Optimierung anwenden.

Wenn man direkt von Blender nach ls3 exportiert, muss man sich doch selbst um eventuelle Mesh-Optimierung und die Erstellung einer .dds-Textur kümmern, oder sehe ich das falsch? Von daher würde ich im Tutorium weiter den Weg über .x als Transferformat empfehlen, weil das einigermaßen anfängersicher ist und und eben bei Optimierung und .dds-Erstellung Automatismen greifen. Für den ls3-Exporter könnte ich mir vorstellen, dass man ihn im Kapitel 5.1 bei den "nützlichen Werkzeugen" erwähnt, und dort auf eine Webseite verlinkt, wo man ihn runterladen kann und wo man Dokumentation zu dem Tool findet.

Bei einer weiteren Altlast brauche ich noch etwas Input: Im Tutorium steht derzeit, dass nach dem Einschalten der diversen für die Texturierung notwendigen Einstellungen das ganze Haus mit "völlig wirr aufgetragenen Texturen" zu sehen wäre. Es ist sogar ein Bild dabei. Das könnte einige Anfänger evtl. aufs Glatteis führen, denn nach meiner Erfahrung ist das Häuschen danach nicht wirr texturiert, sondern erstmal schneeweiß. Ich glaube, dass Blender 2.6 nur noch dann Flächen wirr vortexturiert, wenn zufällig beim Einstellen der Texturoptionen irgendwelche Flächen markiert sind.
Mein Youtube-Kanal: youtube.com/echoray1

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#247 Beitrag von Johannes »

Hallo Alwin,
Alwin Meschede hat geschrieben:Wenn man wie derzeit beschrieben erstmal nach .x exportiert und das dann in den 3D-Editor importiert, schert sich der Zusi-3D-Editor sowieso nicht mehr darum, ob man Smooth geklickt hat. Er wird einfach nochmal stumpf die momentanen Parameter seiner automatischen Mesh-Optimierung anwenden.
Nein, „Smooth“ macht beim Export aus Blender schon einen Unterschied: Wenn „Smooth“ für eine Fläche aktiviert ist, werden als Normalenvektoren der zugehörigen Vertices die Vertexnormalen verwendet, ohne Smooth die Flächennormalen. Das machen sowohl der DirectX-Exporter als auch der LS3-Exporter so (letzter kennt Smooth übrigens seit heute morgen …).

Wenn ich die Beschreibung im 3D-Editor richtig interpretiere, hat die Mesh-Optimierung mit den Normalen erst mal nichts zu tun, sondern führt nur Vertices innerhalb der angegebenen Toleranzen zusammen (daher die Meldung „x Vertices gelöscht“). Etwas anderes ist natürlich die Option „Normalenvektoren neu berechnen“, die wohl die Vertexnormalen anhand der Flächennormalen setzt (?).

Zum Vergleich: Export aus Blender, Smooth gesetzt:
Bild

„Normalenvektoren neu berechnen“ macht daraus (und hier weiß ich nicht, ob das tatsächlich erwünscht ist):
Bild

Dagegen ist ohne „Smooth“ das Ergebnis vor und nach der Normalenberechnung gleich. Man sieht auch, dass hier jede Ecke in Wirklichkeit durch drei einzelne Vertices repräsentiert wird:
Bild

Das Ganze ist mit dem LS3-Exporter getestet (.x-Import funktioniert unter Linux nicht), dürfte sich aber mit dem .x-Exporter genauso nachvollziehen lassen.
Alwin Meschede hat geschrieben:Ob man den Smooth-Button im Tutorial näher beschreiben sollte, da bin ich mir unschlüssig.
Würde ich nicht machen, zumal das Tutorial eben kein rundes Objekt behandelt. In der Doku sollte er aber schon erwähnt sein.
Alwin Meschede hat geschrieben:Wenn man direkt von Blender nach ls3 exportiert, muss man sich doch selbst um eventuelle Mesh-Optimierung und die Erstellung einer .dds-Textur kümmern, oder sehe ich das falsch? Von daher würde ich im Tutorium weiter den Weg über .x als Transferformat empfehlen, weil das einigermaßen anfängersicher ist und und eben bei Optimierung und .dds-Erstellung Automatismen greifen. Für den ls3-Exporter könnte ich mir vorstellen, dass man ihn im Kapitel 5.1 bei den "nützlichen Werkzeugen" erwähnt, und dort auf eine Webseite verlinkt, wo man ihn runterladen kann und wo man Dokumentation zu dem Tool findet.
Ja, auch ich fände es sinnvoll, im Tutorial erst mal den .x-Export zu erklären und die „Profis“ (oder die, denen das eher zusagt) auf den LS3-Export zu verweisen. Die Webseite für den LS3-Exporter ist dann https://github.com/zusitools/blender_ls3" target="_blank. Beim .x-Export sollte man vielleicht noch dazuschreiben, dass die Texturdatei im gleichen Verzeichnis wie die exportierte Datei liegen muss.

Die Texturkonvertierung nach .dds erledigt mein Tool tatsächlich nicht, die Meshoptimierung dagegen schon.
Alwin Meschede hat geschrieben:Bei einer weiteren Altlast brauche ich noch etwas Input: Im Tutorium steht derzeit, dass nach dem Einschalten der diversen für die Texturierung notwendigen Einstellungen das ganze Haus mit "völlig wirr aufgetragenen Texturen" zu sehen wäre. Es ist sogar ein Bild dabei. Das könnte einige Anfänger evtl. aufs Glatteis führen, denn nach meiner Erfahrung ist das Häuschen danach nicht wirr texturiert, sondern erstmal schneeweiß. Ich glaube, dass Blender 2.6 nur noch dann Flächen wirr vortexturiert, wenn zufällig beim Einstellen der Texturoptionen irgendwelche Flächen markiert sind.
Das kann ich so bestätigen; das Objekt bleibt selbst dann untexturiert, wenn beim Einstellen der Textur Flächen markiert sind (Blender 2.64).

Da in Blender theoretisch jede Fläche ihre eigene Textur haben kann, muss man die Textur allen Flächen manuell zuweisen. Dazu wählt man nach dem Unwrappen im UV-Editor die Texturdatei aus der Bilderliste aus; die markierten Flächen bekommen dann die Textur zugewiesen.

Grüße
Johannes
Zuletzt geändert von Johannes am 07.03.2013 02:08:59, insgesamt 1-mal geändert.

Benutzeravatar
AndreasBrandtner
Administrator
Beiträge: 2367
Registriert: 04.11.2001 14:10:41
Wohnort: Quickborn, Schleswig Holstein

Re: Blender 3D

#248 Beitrag von AndreasBrandtner »

Johannes hat geschrieben: Man kann unter „Transform Orientation“ (das Dropdown links neben Vertex-/Edge-/Face-Auswahlmodus) diverse Koordinatensysteme einstellen, darunter „Local“ und „Normal“. Drückt man dann beim Verschieben, Spiegeln etc. die Taste für die entsprechende Achse zweimal (etwa „X X“), erfolgt die Transformation nicht global, sondern anhand des gewählten Koordinatensystems, z.B. entlang der Flächennormalen (sehr praktisch!), wenn „Normal“ ausgewählt ist. Hilft das weiter?

Grüße
Johannes
Ahh... aber wenn die Ausrichtung Global so wie Local gleich ist bringt das auch nichts. Auf Normal kam dann aber der gewünschte effekt. Zusätzlich braucht man diese Einstellung: Bild Das Koordinatenkreuz richtet sich dann nach der markierten Fläche oder Line und ich kann dann nach dieser Achse spiegeln. Auch verschieben in einer dieser Richtungen ist wunderbar.

Danke und Grüße
Andreas Brandtner
****************

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#249 Beitrag von Johannes »

Im Blender-Tutorial in der Dokumentation steht unter Punkt 12.5.3.3.5, letzter Absatz:
Der Würfel sollte in einer der rechtwinkligen Ansichten importiert werden, da er in der perspektivischen Ansicht mit Bezug zur Blickrichtung importiert würde und damit verdreht wäre.
Das stimmt bei mir in Blender 2.64 nicht mehr. Es wird der Würfel unabhängig von Ansicht und Object/Edit Mode immer in derselben Ausrichtung parallel zu den Koordinatenachsen erstellt.

Grüße
Johannes

Alwin Meschede
Beiträge: 8927
Registriert: 04.11.2001 19:57:46
Aktuelle Projekte: Zusi3 Objektbau
Kontaktdaten:

Re: Blender 3D

#250 Beitrag von Alwin Meschede »

Johannes hat geschrieben:Das stimmt bei mir in Blender 2.64 nicht mehr. Es wird der Würfel unabhängig von Ansicht und Object/Edit Mode immer in derselben Ausrichtung parallel zu den Koordinatenachsen erstellt.
Auch für Blender 2.61 bestätigt, danke. Ich muss mich jetzt sowieso bald aufraffen und die Nutzer-Rückmeldungen endlich in dieses Doku-Kapitel einarbeiten.
Mein Youtube-Kanal: youtube.com/echoray1

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#251 Beitrag von Johannes »

Blender 2.67 wurde vor wenigen Tagen veröffentlicht. Der DirectX-Exporter ist neu geschrieben worden; es werden anscheinend die Subsets, wie hier schon einmal diskutiert, beim Export nach Namen sortiert. Umlaute in Objektnamen, an denen sich der DirectX-eigene .x-Import von Zusi verschluckt, werden allerdings weiterhin nicht ausgefiltert.

Grüße
Johannes

P.S. Der neue Freestyle-Renderer ist auch ganz nett:
Bild

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#252 Beitrag von Johannes »

Ein kleiner Tip für Blenderbastler: Manchmal möchte man Flächen nur in einer Richtung als „Smooth“ markieren. In diesem Fall soll die Dachrundung einen weichen Verlauf haben, der Knick dagegen soll scharfkantig bleiben. So ist es falsch, beim Export werden komische Farbverläufe erzeugt:

Bild

Man könnte jetzt versucht sein, die Flächen links einfach abzutrennen (Taste Y), dann werden die Normalenvektoren wieder korrekt berechnet. Das ist aber ein destruktiver Bearbeitungsschritt. Zum Glück bietet Blender einen passenden Modifier „Edge Split“, der genau das nichtdestruktiv und automatisch macht. Es lassen sich sowohl Kanten nach Flächenwinkel splitten als auch manuell mit „Mark Sharp“ als scharf markierte Kanten.

Bild

Damit sieht es in Blender schon besser aus …

Bild

und beim anschließenden Export in Zusi dann völlig korrekt.

Bild

Grüße
Johannes

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#253 Beitrag von Johannes »

Mal wieder was Neues aus der Serie „Erkenntnisse zu Blender“, das sich für Erbauer moderner Fahrzeuge als nützlich erweisen könnte.

In (seltenen) Fällen hat man die Möglichkeit, an eine technische Fahrzeugzeichnung im Vektorformat zu gelangen. Im konkreten Fall (nicht der ICE, leider) habe ich eine Fahrzeugbroschüre im PDF-Format vorliegen, in der entsprechende Vektorgrafiken eingebettet sind (anstatt als Bitmaps). Damit lässt sich in Blender sehr komfortabel arbeiten:
  • Broschüre in Inkscape öffnen (PDF-Import)
  • Die einzelnen Ansichten (vorne, Seite, oben) herauskopieren und als einzelne Inkscape-Dateien speichern (Dateityp Inkscape-SVG)
  • In Blender in die Top-Ansicht (Numpad 7) wechseln.
  • In Blender File → Import → Scalable Vector Graphics (SVG) wählen
  • Die Datei wird nun importiert, ist aber eventuell sehr, sehr klein skaliert. Mit der Tastenfolge S 10 <Enter> kann man die Datei in Zehnerpotenzen heraufskalieren. Späteres Skalieren auf Originalgröße erfolgt dann anhand der Koordinaten im Edit-Modus.
  • Eventuell wurde die Datei als mehrere Objekte importiert (wenn in der ursprünglichen SVG-Datei mehrere Objekte vorhanden waren). Diese kann man alle markieren (z.B. im Objektbaum, dort heißen die Objekte Curve, Curve.001, Curve.002 usw.) und dann per Strg+J zu einem Objekt zusammenführen.
  • Durch geschicktes Rotieren in 90°-Schritten um diverse Achsen erreicht man den Effekt, dass die Zeichnung nur in den passenden Ansichten (z.B. Front+Back) sichtbar ist, in den anderen dagegen nur als dünner Strich (ist immerhin eine 2D-Kurve).
  • Die Kurve ist frei editier- und skalierbar. Falls man im Edit-Modus ein unübersichtliches Gewusel aus schwarzen Strichen hat, sollte man im Edit-Modus im Properties-Fenster (Taste N) unter „Curve Display“ die Optionen „Handles“ und „Normals“ abwählen. Der Edit-Modus eignet sich z.B. zum Abtragen von Koordinaten per Copy&Paste.
Grüße
Johannes
Zuletzt geändert von Johannes am 26.01.2014 21:31:29, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#254 Beitrag von Johannes »

Es ist überraschend schwierig, Infos zu Multitexturing in Blender zu finden. Daher hier mal ein kleines Tutorial für Fortgeschrittene dazu.

Beim Multitexturing werden mehrere Texturen übereinander gelegt (von denen sinnvollerweise eine (halb-)transparent ist). Zusi unterstützt aktuell bis zu zwei Texturen. Man braucht es eher selten; unter anderem ist es eine der möglichen Methoden zum Nachtfensterbau.

Blender speichert die UV-Koordinaten in sogenannten „UV-Maps“. Davon brauchen wir nun zwei Stück. Wir gehen in die Mesh-Eigenschaften und drücken unter „UV Maps“ zwei Mal das Pluszeichen. Sinnvollerweise benennen wir die Maps gleich per Doppelklick um:

Bild

Nun müssen zwei Texturen erstellt und der jeweiligen UV-Map zugewiesen werden. Die erste Textur ist schon korrekt erstellt, wenn man dem Tutorial von Alwin gefolgt ist. Ansonsten stellt man noch den Typ auf „Image or Movie“.

Per „Open“ öffnet man die gewünschte Texturdatei. Unter „Mapping“ stellt man „Coordinates“ auf „UV“. Es erscheint ein Eingabefeld zur UV-Map, wo wir unsere erste UV-Map auswählen (Klick auf das Kugel-Symbol).

Bild
Bild

Jetzt wird die zweite Textur erstellt. Der zweite Textur-Slot wird ausgewählt und per „New“ die zweite Textur erstellt:

Bild

Die gleichen Schritte wie bei der ersten Textur werden ausgeführt. Diesmal wird die zweite (transparente) Texturdatei sowie die zweite UV-Map ausgewählt. Wichtig ist, dass die zweite Textur immer die transparente ist (das wird später auch in Zusi die zweite Textur).

Bild

Falls man den Blender-nach-LS3-Exporter benutzt, kann man in den Material(!)eigenschaften auch gleich das richtige Texturpreset einstellen:

Bild


Damit sind die Vorbereitungen abgeschlossen. Um das Material in Blender richtig anzeigen zu können, sind noch weitere Schritte nötig.

Zunächst stellen wir in den Materialeigenschaften das Shading auf „Shadeless“. Das bewirkt, dass wir uns trotz der Umschaltung in die texturierte Ansicht nicht um Beleuchtung kümmern müssen.

Bild

Als nächstes wird im Properties-Panel die Shading-Methode auf „GLSL“ gesetzt:

Bild

Schließlich stellt man die texturierte Ansicht ein (Kurzbefehl dafür ist Alt+Z):

Bild

So oder ähnlich sollte jetzt die Ansicht aussehen. Der pinke Kreis ist eine transparente Textur, die über die erste gelegt wurde.

Bild

Damit kann es ans UV-Unwrapping gehen. Sobald man in den Edit-Mode wechselt, kann man im UV-/Image-Editor die gewünschte UV-Map auswählen:

Bild

Danach texturiert man wie gewohnt. Man wählt also die erste UV-Map, weist allen Faces die erste Textur zu und texturiert. Dann wählt man die zweite UV-Map, weist allen Faces die zweite Textur zu und texturiert die zweite Texturebene.

Der LS3-Exporter beherrscht Multitexturing mittlerweile (hier herunterladen), der .x-Export dürfte das auch können (habe ich aber nicht getestet).

Grüße
Johannes

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Blender 3D

#255 Beitrag von Carsten Hölscher »

Ich meine, x-Files haben mit 2. u/v-Ebene so ihre Probleme. Wenn es doch geht, dann wird Zusi es beim Import aber vermutlich ignorieren.

Eine Beispieldatzei wäre dann mal hilfreich.

Carsten
Zuletzt geändert von Carsten Hölscher am 06.04.2014 17:03:58, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#256 Beitrag von Johannes »

Die Unit-Test-Eingabedateien eignen sich vermutlich gut: https://github.com/zusitools/blender_ls ... sts/blends" target="_blank

Grüße
Johannes

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Blender 3D

#257 Beitrag von Carsten Hölscher »

Das hab ich jetzt nicht ganz kapiert. Also wenn Du mal eine x-Datei mit 2 Ebenen produziert haben solltest und Zusi die nicht korrekt liest, dann bitte diese Datei mal zu mir.

Carsten

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#258 Beitrag von Johannes »

Ah, ich dachte, du wolltest Blender-Beispieldateien. Falls jemand Lust hat, mit den verlinkten Dateien unter Windows .x-Export und Zusi-Import zu testen, sehr gerne :)

Grüße
Johannes

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Blender 3D

#259 Beitrag von Johannes »

Da grundsaetzlich von allgemeinem Interesse, schreibe ich das Kurz-Tutorial zum Thema Animationen mal hier hinein.

Wir wollen uns in Blender einen kleinen Stromabnehmer bauen und animieren. Grundlegende Blender-Kenntnisse setze ich voraus; man sollte also ohne weiteres aus einem Cube (Basisplatte), zwei Cylinders (Unter- und Oberarm) und einem modifizierten Cube mit Mirror-Modifier (Schleifstueck) Folgendes bauen koennen:

Bild

Man sollte gleich darauf achten, dass der Ursprung (Origin) der Objekte im Rotationszentrum liegt. Der Ursprung wird durch einen dicken orangenen Punkt dargestellt, und man kann ihn z.B. mit dem Befehl "Set origin to cursor" im Object Mode an die Position des 3D-Cursors setzen.

Die beiden Planes liegen auf 2.5m und 1.25m Hoehe und dienen nur zum Abmessen. Laut Doku sollte das Schleifstueck in gehobener Position auf 2.5m Hoehe und in gesenkter Position auf 0m Hoehe liegen.

---

Parent-Verknuepfung setzen

Die Teile des realen Stromabnehmers sind miteinander verbunden: Bewege ich nur den Unterarm, bewegt sich der daran befestigte Oberarm und das Schleifstueck auch. Diese Verbindung kann man auch in Blender modellieren und sich die Animation dadurch kraeftig vereinfachen:

Man markiert erst das Objekt "Oberarm" und dann mit gedrueckter Shift-Taste das Objekt "Unterarm". Durch Druecken von Strg+P kommt man ins Menue "Set Parent To", in dem man den ersten Eintrag, "Object", auswaehlt. Unterarm ist nun das Elternobjekt vom Oberarm. Man kann mal probehalber den Unterarm verschieben/rotieren/skalieren: Der Oberarm bewegt sich immer mit.

Genauso setzt man den Parent des Schleifstuecks auf den Oberarm. Die Parent-Beziehung wird im 3D-Fenster durch eine gestrichelte Linie, im Outliner durch eine Baumstruktur dargestellt:

Bild

Alle Objekte, die Kinder haben, werden spaeter in eine separate Datei exportiert. Daher sollte man darauf verzichten, den Unterarm als Kind der Basisplatte zu definieren, weil letztere nicht animiert ist und damit eine unnoetige Datei erzeugt wuerde.

---

Keyframes erzeugen

Blender macht Animationen grundsaetzlich aehnlich wie Zusi: Man gibt die Objektpositionen zu bestimmten Zeitpunkten vor (sog. Keyframes); dazwischen wird interpoliert. Als Animationsmoeglichkeiten in Zusi sind vorhanden: Rotation eines Objektes um den Ursprung, Verschieben eines Objektes und eine Dimmung (letztere wird aber noch nicht exportiert).

Der Animationsbereich fuer die meisten Zusi-Animationen ist vom Zeitpunkt t=0 bis t=1, mit beliebig vielen Zwischenpunkten. Blender ist eher auf den Filmbereich ausgerichtet und zaehlt in ganzen Frames. Man sollte sich also eine geeignete Abbildung von Blender-Frames auf Zusi-Frames ueberlegen, sodass die Zwischenframes ganzzahlige Nummern bekommen koennen.

Um den Animationsbereich von 0 bis 1 einzustellen, holt man sich eine "Timeline"-Ansicht auf den Schirm. Dort kann man unter "Start" und "End" die Frames einstellen, die den Zusi-Zeitpunkten 0 und 1 entsprechen sollen. Achtung: "Start" steht standardmaessig auf 1, das sollte man unbedingt auf 0 aendern, um Verwirrungen zu vermeiden. Hier nehmen wir mal den Bereich 0 bis 100:

Bild

Mit dem Eingabefeld rechts von Start/End oder mit den Pfeiltasten links und rechts stellt man den aktuellen Frame ein. Er wird im 3D-Fenster links unten neben dem Namen des aktiven Objekts angezeigt, etwa "(5) Oberarm", wenn man bei Frame 5 ist.

Unser Modell haben wir im gehobenen Zustand gebaut. In Zusi entspraeche das der Animationszeit 1. Wir sagen Blender also, dass der aktuelle gebaute Zustand fuer Zeit 1 (oder Frame 100) gelten soll. Wir stellen Frame 100 ein, markieren im Object Mode den Unterarm und druecken die Taste "i".

Es oeffnet sich ein verwirrend langes Menue, denn Blender wuesste gerne, was wir eigentlich animieren wollen. Uns geht es hier ausschliesslich um die Rotation, deshalb waehlen wir "Rotation". Weitere sinnvolle Moeglichkeiten waeren "Location" (Verschiebung) und "LocRot" (Verschiebung und Rotation).

Im Properties-Fenster wird die Rotation nun gelb hinterlegt dargestellt. Das heisst, dass fuer diesen Frame ein Rotations-Keyframe existiert. Bei anderen Frames ist der Hintergrund gruen, das steht fuer "interpolierter Zustand".

Das Einfuegen des Rotations-Keyframes bei Frame 100 wird jetzt nochmals fuer den Oberarm wiederholt. Das Schleifstueck lassen wir momentan aussen vor.

Nun geht es daran, den Keyframe fuer die gesenkte Position des Stromabnehmers zu erstellen. Wir stellen die Frame-Nummer 0 ein, stellen sicher, dass wir im Object Mode sind, und rotieren Unter- und Oberarm so um die X-Achse, dass der Stromabnehmer gesenkt ist. So koennte das aussehen:

Bild

Wenn wir jetzt ein anderes Frame einstellen, gehen die Aenderungen sofort verloren. Wir muessen also Blender wieder sagen, dass wir diesen Zustand fuer Frame 0 beibehalten wollen. Wieder wird per Taste "i" je ein Keyframe fuer den Unterarm und den Oberarm eingefuegt.

Jetzt kann man die Frames mit den Pfeiltasten durchspulen und sieht, wie der Stromabnehmer sich sanft hebt. Blender interpoliert standardmaessig nicht wie Zusi linear, sondern mit Bezier-Kurven; in Zusi ist die Animation also nicht ganz so sanft. Die Blender-Interpolation kann man auch auf Linear aendern, das zu erklaeren ginge jetzt aber zu weit.

---

Einschraenkungen

Unser Schleifstueck haengt beim gesenkten Stromabnehmer noch ein wenig durch. Wir haetten gerne, dass es sich unabhaengig von der Stromabnehmerposition immer in der Waagerechten befindet. (Das ist vermutlich nicht ganz vorbildgerecht, eignet sich hier aber zur Demonstration.)

Das Schleifstueck bewegt sich zusammen mit dem animierten Oberarm. Wir wollen nun die Rotation um die X-Achse deaktivieren bzw. verhindern, dass diese Rotation durch die Oberarm-Animation beeinflusst wird. Das geht ueber ein sogenanntes "Constraint", also eine Einschraenkung. Hier ist "Limit Rotation" das richtige.

Constraints stellt man in dem Reiter mit den Kettengliedern zwischen Objekteigenschaften und Modifiers ein. Ueber Add Object Constraint -> Limit Rotation fuegt man ein neues Constraint hinzu und aktiviert dann "Limit X". Sofort sollte das Schleifstueck stur in horizontaler Ausrichtung verharren, egal wie sich der Oberarm dreht. (Das bezieht sich nicht nur auf Animationen; auch manuell kann man das Schleifstueck jetzt nicht mehr in X-Richtung rotieren.)

Bild

In Zusi wird das spaeter durch eine Rotationsanimation des Schleifstuecks in gegenlaeufiger Richtung zur Oberarm-Animation geloest. Hier nimmt einem der Exporter also viel Arbeit ab.

---

Zusi-spezifische Eigenschaften

Unser kleiner Stromabnehmer ist fertig animiert. Um ihn korrekt nach Zusi zu exportieren, muessen wir noch den Animationstyp auf "Stromabnehmer A" einstellen, damit der Simulator weiss, wie er die Animation ansteuern soll. Spaetestens hier muss der LS3-Exporter installiert sein, denn er stellt die notwendigen Eingabefelder in Blender bereit. In den Szeneneigenschaften (dritter Karteireiter von links) findet sich ein Abschnitt zu Animationen:

Bild

In der oberen Liste sind alle Animationen aufgelistet. Hier habe ich es irgendwie geschafft, fuer den Unterarm gleich zwei Animationen zu erzeugen. Im Outliner sieht man unter "Animation", welche die richtige ist (hier: UnterarmAction.001).

Man markiert also alle Actions nacheinander und stellt jeweils "Animation type" auf "Pantograph A" ein. Das Feld zur Animationsgeschwindigkeit ist fuer Stromabnehmer irrelevant und wird deshalb ausgegraut.

---

Export

Die Animationen nach Zusi transportieren kann aktuell nur der LS3-Exporter. Die Animationen werden nur exportiert, wenn das Haekchen bei "Export animations" gesetzt ist. Zu beachten ist, dass neben der im Exportdialog angegebenen Datei (z.B. Stromabnehmer.ls3) auch noch zwei weitere Dateien mit dem Zusatz _Unterarm bzw. _Oberarm angelegt werden (und ggf. ohne Rueckfrage ueberschrieben werden). Das ist der Dateistruktur von Zusi geschuldet.

Bild

---

Video

Ich habe die hier beschriebenen Arbeitsschritte auf Video aufgenommen (Achtung: Bitte auf "Download" klicken; die Qualitaet im Dropbox-Player ist unterirdisch). Wem es zu schnell geht, der kann in VLC die Abspielgeschwindigkeit verlangsamen :)

Man sieht auch sehr schoen, was passiert, wenn der Objektursprung nicht mit dem Rotationszentrum uebereinstimmt. Hier habe ich das Schleifstueck im Edit Mode verschoben, dadurch blieb der Objektursprung da, wo der 3D-Cursor beim Erzeugen des Objekts war, und die Rotation spaeter sah komisch aus.

Zum Setzen des Ursprungs benutze ich folgende Befehlsabfolge: Edit Mode -> Vertices selektieren, deren Schwerpunkt der gewuenschte Ursprung ist -> "Snap cursor to Selected" -> Object Mode -> Set Origin to 3D Cursor.

Gruesse
Johannes
Zuletzt geändert von Johannes am 12.05.2014 09:34:07, insgesamt 2-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Blender 3D

#260 Beitrag von Carsten Hölscher »

Das dürfte für etliche Bastler eine deutliche Arbeitserleichterung sein. Müßten wir mal schauen, wie man das in die Doku mit einbringen kann oder sonst wie die nötige Aufmerksamkeit verschafft.

Carsten

Antworten