• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Lernprojekt: Skelettavatar

Jenna Felton

Superstar
Guten Abend :)

Ich habe schon woanders 'gewarnt', es wird hier irgendwann ein Lernprojekt geben, bei dem man einen echten Meshavatar entwickelt. Davor muss aber als Vorarbeit ein oder mehrere Lernprojekte geben und dieses hier ist eines davon. Zuerst aber paar Worte zur Projektart.

Ein Lernprojekt ist eine Mischung aus einem Tutorial und sowas wie Jugend Forscht :) (mir ist kein besserer Name eingefallen.) Ein Tutorial macht man normalerweise, wenn man ein Problem hat, welches viele brennend interessiert und man schon 1000 Mal gelöst hat, und man möchte es nun zeigen wie man es angeht. Dabei lernen die Leser wie sie dieses und vielleicht ähnliche Probleme lösen können.

Beim Lernprojekt hat man auch ein Problem, das hoffentlich viele interessiert, das man aber teilweise oder gar nicht gelöst hat. Dabei hat man in etwa eine Vorstellung, wie man es lösen könnte. Man versucht aus verschiedenen Tutorials eine Lösung zusammen zu bekommen und stellt diesen Lösungsweg vor. Dabei kann und vielleicht wird es vorkommen, dass bei der Lösung man sich Probleme woanders eingehandelt hat oder man hat einen nicht optimalen Weg genommen und es besser geht.

Nun sind Profis dran, aber auf freiwilliger Basis natürlich :) Sie können Tipps geben, wie man das oder dies besser lösen könnte. Oder sagen, wenn man irgendwo Probleme verursacht hat, die man anders vermeiden kann. Dabei lerne ich selbst, und wenn es ganz gut klappt, entstehen möglicherweise verschiedene Lösungswege für dieselben Teilprobleme, aus denen man für sich besser geeigneten Workflow aufbauen könnte.

Das Thema wird recht umfangreich sein, aus meiner Sicht zumindest, daher teile ich es in mehrere Meilensteine auf, bei denen ich glaube dass sie zum Ziel führen. Jeder Meilenstein wird in Sessions angegangen, also bei denen ich den Lösungsweg für den Abschnitt erarbeite und vorstelle, dann startet die Diskussionsrunde, bei der die Lösung und das Ergebnis besprochen wird. Oder auch der nächste Meilenstein, wenn ich bei der Lösung nicht (mehr) sicher bin.

Das Projekt wird sich vermutlich über mehrere Wochen erstrecken, also mit langen Pausen zwischen den Sessions, deshalb die Meilensteine, um den Frust etwas niedrig zu halten. Die Meilensteine können selbst auch in Teilschritte unterteilt werden, die man dann nacheinander angeht.

So, das wäre allgemein zu Lernprojekten, jetzt setze ich das Ziel des diesen, paar Meilensteine und auf zum ersten :)
 
Zuletzt bearbeitet:
Also das Projektthema ist "Skelettavatar". Dabei soll ein Avatar geriggt werden, der ein Skelett darstellt. Und zwar nicht das menschliche Skelett, sondern das des SL Avatars. Jeder Skelettknochen soll genau an einen Bone des Avatarskelett geriggt werden, den er darstellt. Auf diese Weise lernt man nicht nur das Riggen selbst, sondern hat man (wenn ich es richtig verstehe) auch einen Werkzeug zur Hand, mit dem man Deformationen des Avatarskelett erkennen kann, die durch Animationen oder getragene Mesches verursacht werden. Weil einfach die Meschknochen dieser Deformation folgen werden. Aber ich nehme an, jeder der Avatare riggt, hat mit so einem Skelett auch angefangen. Nun zu Meilensteinen. Ich setze diese (vorläufig) so:

1. Skelett für einen non-fitted SL Avatar, also reine m-Bones.

Dabei lernt man das Riggen überhaupt und kann schon das Ergebnis testen. Das sind nur 26 Bones, der Aufwand ist nicht so groß.

2. Wiederholung für den Skelett des Manuellab Characters.


Das Skelett ist etwas verformt, und hat andere Bones, dabei wird untersucht, wie man daraus einen für SL tauglichen Avatar macht, was also dafür nötig ist.

3. Der Skelett wird fitted gemacht.

Es wird das Skelett aus 1 oder vielleicht aus 2, wenn es eher Sinn macht, mit Collisionsbones versehen. Es soll aber vorher überhaupt diskutiert werden, wie man die Collisionsbones sinnvollerweise darstellen soll. Wel für diese Stelle reicht mein Vorwissen noch nicht aus.

Ich denke bzw. hoffe, nach dem letzten Meilenstein wird man genug Wissen gesammelt haben, um das Riggen eines richtigen Körpers anzugehen.

Zu Vorkenntnissen. Es geht ja nicht nur um mich sondern auch Leser sollen was lernen :) Ich hätte gerne gesagt, keine Vorkenntnisse wären nötig. Aber Blender ist ein dickes Brocken, den ich hier nicht beibringen möchte. Ich würde deshalb sagen, in etwa auf meinem Nivau: Ich habe bisher nur einige einfachen Sachen gemescht, ein Paar Bauelemente für Häuser oder Möbel. Keine aufwändigen Szenen oder Raumschiffe oder Schlösser. Und geriggt habe ich nur im Rahmen von Tutorials, nur Körperteile.

Man muss also in etwa wissen, wie man Blender startet, die Oberfläche anpasst. 'Prims" hinzufügt, Elemente selektiert, zwischen Objekt- und Editmode wechselt, einfache UV Maps erstellt. Dazu gibt es auch hier Tutorials. Sonst werde ich mich daran halten, bei den Shortcuts oder so sagen, was dabei passieren soll, so dass man es nachgoogeln kann. Oder fragen.

Den Addon für Manuellab Characters müsst Ihr jetzt nicht kennen, den stelle ich im Teil 2 ein bisschen vor.

Der erste Teil wird relativ schnell kommen, weil ich es schon gemacht habe, ich muss es nur beschreiben und hübsch bebildern :)
 
Zuletzt bearbeitet:
Guten Morgen (inzwischen) :) Nun zum Teil 1.

Mir ist beim Dokumentieren etwas am Skelett aufgefallen, was ich vorher übersehen hatte, daher musste ich zuerst überprüfen. Sonst hätte sich am Ende herausgestellt, dass die am Anfang gewählte Quelldatei die falsche ist.

Notation: Im Text markiere ich fett die Tastatureingaben, z.B. die Tastenkürzel oder Zahlen. Auf den Bildern sind die Tastenkürzel in eckige Klammer eingeschlossen. Im Text vermeide ich diese Klammer, weil die den BBCode auszeichnen, daher nur fett.

Kursiv sind im Text Namen der Buttons, Menüs, Kärtchen und dergleichen ausgezeichnet, also Oberflächenelemente, auf die man klicken kann oder muss. Auf den Bildern sind sie sinnvollerweise farblich oder durch eine rote Umrandung gekennzeichnet.

Dass ich Bilder benutze statt Videos, mag zwar wie letztes Jahrhundert wirken, aber bei Bildern und Text kann man den Post sofort überblicken und bestimmte Stellen überspringen. Videos muss man aber bis zum Schlus durchsehen, bevor man weiß, ob es einem überhaupt hilft. Daher mag ich Text eher. Ich versuche bei den Bildern dabei unter die Größe von 800x600 zu bleiben, bei Euch wird Blender bestimmt nicht so zusammengedruckt sein wie abgebildet :)

1. Skelett für einen non-fitted SL Avatar

Der Ablauf geht in folgenden Arbeitsschritten: Herunterladen eines Mesh und extrahieren des SL Skeletts, Aufbau eines Meshbone, Aufbau des Meshskelets, Riggen, Test.

1.1. Herunterladen eines Mesh und extrahieren des SL Skeletts

Gefunden habe ich insgesamt drei bzw. vier Quellen für den Avatarmesh mit dem Skelett:
Letztere bekommt man, wenn man in Wiki eingeloggt ist und enthält das m.W. noch nicht ganz offizielle Bento-Skelett, das möglicherweise noch geändert wird, obwohl Bento schon nahe Release ist. Das Skelett ist aber viel umfangreicher als das wir benötigen, hat viele Knochen, die wir vorerst nicht brauchen werden.

Avatar.blend und Avatar Workbench sind anscheinend nicht fitted, wobei Avatar.blend zusätzlich noch Empties für Attachmentpoints enthält. Das könnte interessant werden, wenn man Animationen testen möchte, die Attachments animieren. Das haben wir vorerst nicht vor. Also bleibt Fitted Mesh Kit, d.H. die Datei fitted_mesh-270.blend

Diese am besten kopieren und als Avatarskelett.blend speichern. Diese geöffnet, kann man feststellen, dass auf den Layern 1 und 2 der weibliche und männliche Mesh liegen und auf dem Layer 10 das Skelett.

Hinweis: Als erstes wenn ich eine fremde Datei öffne, schalte ich immer Backface Culling ein. Das ist in der Eigenschaftsleiste unter Shading in Blender 2.7.5. Evtl. bitte suchen, und definitiv einchecken, sonst kann man Faces falsch rum meschen.

Die beiden Meshes löschen wir direkt. Die Lampe und die Camera liegen auf dem Layer 1, die verschieben wir auf den Layer 6. Dazu wählt man diese im Objectmode aus, Klickt auf die Taste M und im Floater das sich öffnet auf das Ziellayer:

full

Info: Die Objektlayer (unten rot umrandet) erlauben es, den Arbeitsbereich so zu ordnen, dass man mit vielen Objekten arbeiten kann, ohne dass sie sich stören. Die Layer, mit denen man arbeitet, wählt man per Klick mit der LMB (linke Maustaste.) Hält man die Schift Taste dabei, kann man mehrere Layer gleichzeitig aktivieren. Hier im Bild ist der Layer 1 aktiviert und man sieht, dass nur auf dem Layer 10 sich etwas befindet. Den Layer bitte aktivieren, da steht das Skelett.

Das Skelett ist jetzt von den Meshes befreit. Wird er ausgewählt, wechselt Blender in den Posemode (wenn nicht, bitte manuell wechseln.) Im Eigenschaftseditor wählen wir das Object data Kärtchen, dort scrollen wir runter zur Kategorie Display, wo man verschiedene Darstellungsarten wählen kann. Wir nehmen Octahedral. So in etwa wird der Avatar aussehen, den wir bauen werden.

full

Allerdings etwas anders. Genauer es wird eine Mischung aus den Formen Stick und Oktahedral. Bei Stick, also als Stäbchen, sind die Knochen sehr dünn, daher verdecken den möglicherweise dazu getragenen Mesh kaum. Dafür ist die Verdrehung der Knochen schlecht zu sehen. Octahedral zeigt diese Verdrehung an, aber die große Knochen sind so dick, dass sie das Mesh verdecken werden. Daher habe ich eine Mischung aus beiden gewählt, geformt als octahedral, aber fast dünn wie Stäbchen.

Aber Zurück zum Skelett. Der hat noch Knochen beider Arten, m-Bones (blau) und Collisionbones (rot). Die non-Fitted Avatarversion wird nur den m-Bones folgen, also trennen wir die beiden auf zwei Skelettlayer. Die 32 dieser Layer sind auf dem Bild auch zu sehen, in der Kategorie Skeleton.

Wir scrollen nun etwas weiter zu der Kategorie Bone Groups und klappen die auf wenn zu. Mit A wählen wir alle Knochen ab, dann wählen wir die Collision Volume Gruppe aus (den Gruppennamen anklicken und dann den Select Button.)

Jetzt klicken wir erneut auf die Taste M und wählen den Layer 2 zum Verschieben aus. Es ist dieselbe Taste M, je nach Modus benutzt sie die Objektlayer oder Skelettlayer.

full

Achso, was diese hellgraue Farbe im Outliner bedeutet (bei Scene und Lampe), habe ich bis heute nicht rausgefunden, ich klicke meist drauf, dann ist sie weg. Bis jetzt hatte das keine Auswirkungen.

Die Datei ist vorbereitet, die speichern wir ab (Avatarskelett.blend) aber ich möchte an der Stelle die beiden "Problemzonen" ansprechen, von denen ich gesprochen habe.

Erstens, schaut man (am besten im Wireframe) das Skelett an, so sind einige Bones komisch verdreht. Besonders stark sind die Bones mChest, mTorso, mKneeLeft und mKneeRight, hier habe ich die im WF markiert:

full

Ich weiß nicht was ich davon halten soll. Es ist mir aber erst aufgefallen, nachdem ich schon ein Testskelett geriggt habe, ohne dass es inworld verdrehte Knochen hat. Ich weiß auch nicht, wie man überprüfen kann, ob das Skelett in SL auch verdrehte Knochen hat.

Ich würde aber vorschlagen, man tut so, als wären die Knochen normal. Wenn das SL Skelett genauso verdrehte Knochen hat, wie der hier, dann würden die Meshknochen die man baut, auch verdreht zu das Skelettknochen stehen und die Verdrehung wird sich ausgleichen. Das erklärt zumindest warum das Skelett inworld normal aussieht. Die Verdrehung ist aber bestimmt fürs Animieren wichtig, weil man die Knochen irgendwann normal ausrichten möchte und das Mesh wäre verdreht.

Zweitens, stehen die Beine nicht symmetrisch zur Mittellinie, sondern versetzt um 2mm. Das kann man im Editmode sehen, wenn man den Fußpunkt der beiden mHip Knochen wählt. Der Linke beginnt bei Y = 0.127 und der Rechte bei Y = -0.129 und der Versatz setzt sich entlang der Beine weiter fort.

full

Die beiden Probleme haben auch die anderen Dateien, auch die von LL. Entweder haben sie denselben Ursprung und wurden von da übernommen, oder hat das Problem schon der SL Avatar. Den Versatz finde ich aber schlimmer als die Verdrehung. Wenn man sehr enge Hose mesht, und zwar symmetrisch (weil man es üblicherweise auch so tut), würde ein Hosenbein im Bein verschwinden. Den Versatz werden wir jedenfalls nicht ignorieren wie die Verdrehung.

Weiter gehts im nächsten Post :)
 
Zuletzt bearbeitet:
1.2. Aufbau des Meshbone

Die Datei Avatarskelett.blend kopieren wir unter Meshskelett.blend, und öffnen diese (oder einfach die schon geöffnete Datei unter dem neuen Namen abspeichern.) Hier wechseln wir zum Objectmode und öffnen den Layer 1.

Nun müssen wir zuerst einen einzelnen Meschknochen erstellen, aus dem wir den Avatar aufbauen wollen. Jetzt wird etwas langatmig, und für Leute die einiges gemesht haben, auch langweilig, aber das muss leider sein. Außer wenn Blender 'nen Tastenkürzel für die ganze Operation hat, den kenne ich aber nicht.

Mit Shift+C bringen wir (vorsichtshalber) den Cursor auf den Ursprung zurück.

a) Wir erstellen eine Icosphere (Subdivisions 2, Size 0.007) und mit Tab wechseln wir in Editmode. Die Sphäre liegt im Ursprung, sonst war es der Cursor nicht.

b) Jetzt wird eine Plane hinzugefügt, Radius 0.015. Sie steht ebenfalls im Ursprung.

c) Die Plane wird zwei mal genau nach oben extrudiert (Taste Z beschränkt die Verschiebung,) die mittlere Linie und die obere Fläche stehen jeweils auf Z = 0.015 und Z = 0.25.

full

d) Flächen unten und oben werden zu Punkten verschmolzen (W, Merge, Collapse.) Der untere Punkt ist die sog. "Fußspitze" des Meshknochens, der obere Punkt die "Kopfspitze".

e) Erneut eine Plane hinzugefügt und in der Rechtsansicht (NP3, Numpad 3) nach rechts geklappt. Anschließend doppelt so hoch wie breit gemacht, und die obere Kante etwas nach innen verschoben. Bei mir liegt die untere Kante bei Y = 0.02, Z = 0.015 und die obere bei Y = 0.015, Z = 0.075.

f) Die Plane wird nun kopiert, von oben (NP7) gesehen um 180° rotiert und genau Achsensymmetrisch positioniert.

g) Die neue Plane wird erneut kopiert, jetzt um 90° linksrum rotiert und zu einem Dreieck an der X+ Seite (das ist "vorne" des Skeletts) positioniert. Das Dreieck kann kleiner sein und kann, muss nicht nach innen geneigt sein.

full

Anmerkung: Sollten die Faces nicht nach außen sichtbar sein, haben wir die falschrum gemescht. Dank Backface Culling sieht man das sofort. Wenn das passiert ist, einfach den falsch ausgerichteten Face auswählen, dann unten im Menü Mesh, Normals, Flip Normals nehmen und es ist korrigiert.

Jetzt werden vier Materials erstellt. Diese werden uns später erlauben, bestimmte Elemente des Avatars auszublenden. Ich habe die Materials englisch benannt, weil sie so kürzer sind :) Die Materialien sind so benannt und verteilt:
  • "Bone" (die beiden Pyramiden sind der "Körper" des Meshknochens)
  • "Joint" (die Kugel ist das Scharnier um den der Knochen sich dreht)
  • "Label" (die beiden seitlichen Panels)
  • "Nose" (der Dreieck "vorne")
Außerdem benutze ich immer ein Farbsystem für die Materialien, ich färbe die in Regenbogenfarben (Rot, Orange, Gelb, Grün usw.) dadurch kann ich die im Blender auseinander halten und sehe die Facenummer in SL sofort.

full

Die Kugel wird außerdem weich gestellt. Ich benutze immer den Smooth Button in der Instrumentenleiste (bzw. Smooth Faces, es gibt jetzt drei).

Die beiden Planen (Labels) werden später die Beschriftung des Knochen tragen (habt ihr bestimmt erraten), die Nase ist dazu da, dass wenn der Bone um 180° gedreht wird durch eine Animation etwa, man es immer noch erkennt.

Tip: Die Kugel kann man am einfachsten auswählen, indem man im Face Selectionmode eine Fläche auswählt und die Taste L druckt.

Nun müssen UVMaps erstellt werden. Eigentlich ist das nur für die Labels erforderlich, aber für den Fall, dass wir den Rest texturieren wollen, lieber alles.

Ich benutze den unteren Editor für die UVMap, dazu habe ich den unter gelegenen Timeline Editor durch UVMap Editor ersetzt, da ich Timeline nicht brauche.
  • Für die Kugel habe ich "Smart UV Project" genommen, direkt mit Voreinstellungen.
  • Für den Körper habe ich die vier Kanten zur Fußspitze hin und eine Kante zur Kopfspitze hin selektiert, als Seams gesetzt und den einfachen Unwrap benutzt. Anschließend die UVMap auf die ganze Fläche skaliert.
  • Für die beiden Labels und die Nase habe ich "Project vom view (Bounds)" genommen, in der Draufsicht auf die jeweilige Fläche (NP1, NP3, Strg+NP1.)

full

Jetzt texturieren. Beim Körper, der Kugel und der Nase habe ich der UVMap dieses Bild zugewiesen:

full

Das ist mein Testbild für UVMaps. Die Zuweisung ist einfach dazu da, damit ich das Mesh im Texturmode betrachten kann. Der UVMap der beiden Labels habe ich dieses Bild zugewiesen:

full

Ganz genau, das Bild zeigt Namen aller Avatarbones. Nur bei langen Namen habe ich diese abgekürzt (sonst müsste ich die Schrift verkleinern,) ich denke man kann trotzdem erlesen was welchen Bone meint. Auf diese Weise kann ich alle 26 Bones mit nur einer Textur beschriften und alle auf einmal ein- und ausblenden.

Fehlt die Kleinigkeit. Die Labelflächen zeigen noch das Ganze Bild an. Das ist ja nicht richtig. Wir wählen beide Flächen aus, rotieren die UVMap linksrum und verkleinern auf einen beschrifteten Ausschnitt. Jetzt schaut das Mesh in Texturmode richtig aus:
full

Bevor wir den Editmode verlassen, wählen wir noch die Kopfspitze im Vertex Selectionmode aus. Das wird nachfolgende Schritte ein wenig vereinfachen.

Ich denke das Mesh ist hiermit fertig. Dieses benennen wir in "Meshbone" um, es heißt ja noch "Icosphere" und speichern die Datei ab (Meshskelett.blend.)

Puhh, das war ganzer Stück Arbeit und es steht noch eins gleicher Art bevor, bis der eigentliche Spaß beginnt. Zeit für eine kleine Pause. Und das meine ich ernst. Kaffee aufsetzen, ein Stück von Quieens auflegen und für ein paar Minuten Augen schließen.

Und für mich Zeit an der Fortsetzung zu arbeiten :)

LG
Jenna
 
Zuletzt bearbeitet:
... Zweitens, stehen die Beine nicht symmetrisch zur Mittellinie, sondern versetzt um 2mm. Das kann man im Editmode sehen, wenn man den Fußpunkt der beiden mHip Knochen wählt. Der Linke beginnt bei Y = 0.127 und der Rechte bei Y = -0.129 und der Versatz setzt sich entlang der Beine weiter fort.

Das Problem ist ein Fehler im SL Avatar. LL wurde mehrfach darauf hingewiesen. Die letzte mir bekannte Aussage von Nyx Linden war, dass man diesen Bug nicht ändern werde, weil es sonst zu "broken content" kommt. Das bedeutet im Klartext, wie Du oben schon geschrieben hast, man muss damit leben.

Und jetzt das dicke Lob von mir für Dein Tutorial.
ATT12085214.gif

Da steckt ein Haufen Arbeit drin.
 
Guten morgen :)

Danke Timmi für das Lob und Klarstellüng über den LL Fehler :) Dann wird die Datei so "in Ordnung" sein.

Nun kommt der nächste Teil, der ist etwas länger geworden als ich dachte, also muss ich es doch in zwei trennen.

Außerdem habe ich einen freundlichen Hinweis bekommen, dass Skelett eigentlich "das" ist und nicht "der", das wusste ich nicht. Rechtschreibprüfung aber auch nicht. Diese Kritik ist deshalb auch gerne willkommen.

1.3. Aufbau des Meshskeletts

Vorüberlegungen

Aus dem Meshknochen, den wir gemacht haben, müssen wir nun den ganzen Meshskelett bauen. Dazu werden wir die Meshes als Objekte kopieren und ausrichten (nicht das Mesh in einem Objekt.) Dadurch behalten die Kopien ihren lokalen Ursprung, das macht die Ausrichtung der Meshes einfacher.

Außerdem/Deshalb werden wir den 3D Cursor bei der Operation intensiv nutzen, das hilft bei unterschiedlichen lokalen Ursprüngen.

Um Fehler durch aufeinanderfolgende Anpassungen zu vermeiden, bleibt der Originalknochen frei, das Meshgerüst wird aus seinen Kopien aufgebaut, außer wenn wir die Symmetrie ausnutzen können.

Bei der Anpassung an die Bonegröße wird der Meshknochen nicht skaliert, sondern nur seine Kopfspitze verschoben. Und zwar möglichst nur entlang der lokalen Z Achse des Meshobjekts, damit die Form des Meshknochens nicht verzerrt ist.

Damit das wiederum möglich ist, wird der Mesh als Objekt um seinen lokalen Ursprung rotiert und nicht der Mesh innerhalb des Objekts. Das Objekt wird außerdem nur um X und Y Achsen gedreht, also in Seiten- oder Frontansicht (NP1, NP3) aber nicht in der freien Ansicht. Sonst verdrehen wir den Knochen.

Umsetzung

Das Skelett wird strangweise aufgebaut. Wir fangen mit dem Rumpfstrang an (der beginnt mit mPelvis.) Dazu wechseln wir in den Objektmode und schalten den Layer 10 dazu, um das Skelett auch zu sehen. Den Meshknochen verschieben wir irgendwo in Rumpfnähe:

full

Erst wird das Skelett ausgewählt und im Editmode der Fuß von mPelvis. Jetzt bringen wir den 3D Cursor an diese Stelle: Mit Shift+S das Snapmenü aufrufen und dort Cursor to Selected wählen:

full

Der 3D Cursor steht genau an der Fußposition von mPelvis. Jetzt kopieren wir den Meshknochen im Objektmode, die Kopie beliebig abstellen, erneut Shift+S und hier diesmal Selection to Cursor wählen:

full

Schon springt die Kopie auf die Cursorposition und somit auf die Fußposition von mPelvis. Und somit haben wir die Fußspitze des Meshknochens in Position gebracht.

Der Meshknochen ist bereits wie mPelvis ausgerichtet. Wir brauchen ihn also nur an seinen Bone anpassen, d.h. die Kopfspitze des Meshknochens an die Kopfposition von mPelvis bringen (das wäre auch die Fußposition des mTorso.)

Dazu kenne ich zwei Verfahren

Wir können ins Editmode wechseln und die Kopfspitze (die ja bereits ausgewählt ist) manuell in Position schieben. Für genaue Positionierung maximal ran zoomen.

Oder wir nutzen erneut den 3D Cursor, indem wir diesen an die Kopfposition von mPelvis bringen und an diese Position dann die Kopfspitze des Meschknochens im Editmode.

Im ersten Fall müssen wir noch den 3D Cursor auf die Position der Kopfspitze bringen, damit wir den nächsten Meshknochen aufstellen können. Im zweiten Fall steht der Cursor schon da.

full

Jetzt ist mTorso an der Reihe.

Wir kopieren den Originalknochen und bringen die Kopie an die Cursorposition. Der Meshknochen steht jetzt richtig, muss aber ausgerichtet werden, mTorso ist ja nicht mehr senkrecht:

full

Wir müssen den Meshknochen möglichst genau wie der mTorso ausrichten. Dummerweise ist der Meshknochen etwas länger als mTorso, so dass wenn man stark ran zoomt, man nicht beide Spitzen sehen kann. Wir müssen den Meshknochen also erst etwas verkürzen.

Dazu gibt es wieder zwei Möglichkeiten.

Erste: Abwechselnd im Objektmode drehen und im Editmode die Kopfspitze entlang der lokalen Z Achse verschieben. Zunehmend ran zoomen, um die Ausrichtung genauer zu machen.

Info: Um ein Punkt entlang der Lokalen Z Achse des Objekts zu verschieben, gibt es einen Trick: Beim Verschieben zweimal die Z drucken. Das funktioniert auch mit Rotation, auch im Objectmode und auch mit anderen Achsen.

Mir gefällt aber eher die zweite Möglichkeit: Wir bleiben im Objektmode, skalieren den Meshbone aber zwischenzeitlich, also...

a) Zuerst den Meshknochen abwechselnd skalieren und rotieren, bis die Kopfspitze mit dem Kopf von mTorso zusammenfällt. Auch beim starken Ranzoomen und von beider Seiten betrachtet. Das geht relativ fix.

full

b) Danach wird die Skalierung des Meshknochen wieder hergestellt. Dazu setzen wir in der Eigenschaftsleiste bei Scale alle Werte auf 1. Der Mesh bekommt seine Größe wieder, bleibt aber ausgerichtet.

full

Egal welche Methode. Ist der Meshknochen ausgerichtet, müssen noch mit einer der beiden obigen Methoden die Kopfspitze und den 3D Cursor zum Kopf des mTorso Bone verschoben werden.

full

Der Vorgang setzt sich auf diese Weise fort bis zum Scheitel, dem mSkull Bone. Jeder Strang wird auf dieselbe Weise aufgebaut, daher brauche ich es weiter nicht so genau beschreiben, ich gehe gleich auf Knochenstränge ein.
 
Zuletzt bearbeitet:
Augen machen

Also, den Rumpfstrang haben wir fertig, es ist der linke Auge dran, mEyeLeft. Dazu wird der Originalknochen zum Auge verschoben und auf die Seite gelegt, mit der Nase nach oben.

Nun wird er einmal kopiert und die Kopie auf das linke Auge angepasst. Da die Augen perfekt symmetrisch sind, wird dieser Mesh kopiert und bei der Kopie die Y Position negiert -- das rechte Auge ist auch fertig.

full

Für dieses und weitere Bilder habe ich das Skelett auf Stabdarstellung eingestellt.

Skelett kriegt Arme

Jetzt der linke Armstrang an der Reihe. Der Originalknochen wird von oben nach links gedreht, mit Labels nach vorne und hinten und Nase nach oben. Nun wird aus seinen Kopien der Strang von mCollarLeft bis nach mWristLeft aufgebaut.

Arme sind symmetrisch, also können wir den Strang einfach kopieren, bei den Kopien die Y Koordinate und die Rotation um die X Achse negieren, schon stehen sie richtig. Warum spiegelt sich die Rotation um die X Achse, habe ich nicht verstanden, aber wenn ich den Mesh von oben rotiere, ändert sich dieser Wert.

Also aus z.B. 270° wird -270°, was gleich 90° ist. Nur der Meshknochen um mWrist hat eine krumme Rotation, aus 258.696 wurde -258.696.

full

Und Beine

Für den linken Beinstrang habe ich den Originalknochen mit der Nase nach vorn gedreht, Labels seitlich. Der Strang wird wie gehabt abgearbeitet. Nur muss man hier erstmals die Meshknochen für mHipLeft und mKneeLeft von beiden Seiten rotieren, von Vorn und von der Seite.

Beine sind so ziemlich unsymmetrisch, so dass man lieber den rechten Beinstrang ebenfalls knochenweise aufbauen muss, zumindest bei den mHipRight und mKneeRight, drei nachfolgende Mesches können kopiert und via 3D Cursor aufgestellt werden.

Gerüst ist fertig.

Den Originalknochen stellen wir zurück auf den Ursprung mit Nullrotation und schicken auf den Layer 7, vielleicht brauchen wir den noch. Und so schaut das Knochengerüst aus:

full

Nachdem überprüft wurde, dass alles sitzt, fügen wir die einzelnen Meshknochen zu einem Objekt zusammen. Dazu schalten wir den Layer 10 ab (nur Meshknochen bleiben zu sehen), selektieren wir einen Knochen, z.B. den um mPelvis, selektieren den Rest (Taste B und Rahmen drüber ziehen) und drücken wir Strg+J. Meshknochen vereinen sich zu einem Skelett.

Hinweis: Was ich vergessen habe zu erwähnen, man darf jetzt eine Operation wie Remove Doubles nicht auswühren. Das würde die zusammenfallende Kopf und Fußspitzen der Nachbarknochen vereinen und wir hätten ein Problem da diese Punkte an verschiedene Bones geriggt werden müssen.

Tip: Ich habe im Nachhinein auch bemerkt, dass wenn man die Version sichert, wo die einzelnge Meshknochen noch nicht zu einem Mesh vereint wurden, diese später nützlich werden kann, wenn man die Meshknochen modifizieren möchte.

Verschmelzungsfehler korrigieren

Es kann dabei passieren, dass der erste selektierte Knochen nicht auf Nullrotation stand. Dann behält das Meshskelett diese Rotation bei. Hier wurde das Meshgerüst in den zweiten Rumpfknochen vereint, der geneigt war:

full

Unser Freund ist hier das Object - Apply Menu. Der Menüpunkt Apply Rotation setzt die Objektrotation auf 0 und rotiert den Mesh im Objekt entsprechend.

Unabhängig davon soll auch der Menüpunkt Apply Location betätigt werden. Dieser korrigiert den Umstand, dass das Skelett nicht auf dem Ursprung steht sondern die Position vom erst markierten Meshknochen erbt.

full

Knochen richtig beschriften

Am besten jetzt noch den Skelet in "Meshskelett" umbenennen (statt "Meshbone.002") und wir können uns um die Labels kümmern. Wir sehen das Problem im Texturmode: Zum einen ist überall "mPelvis", zum Anderen stehen manche Labels kopfüber oder falschrum.

full

Die Schriftrichtung ist einfach korrigiert: Wir wählen alle Faces, die wir umkehren wollen und drehen deren UVMap um 180°, das war's. Um die angezeigte Namen zu korrigieren, müssen wir erst wissen, was welches Label anzeigen sollte.

Dazu schalten wir den Layer 10 dazu, wählen wir das Skelett aus (immer noch stäbchen) und aktivieren die Anzeige von Namen. Das macht die Checkbox Names in der Display Kategorie für das Skelett.

Jetzt werden Namen der Bones unter den Meshknochen angezeigt, wenn auch sehr dunkel. Wir wählen das Meshskelett aus, Wechsel ins Editmode, nun selektieren wir die entsprechenden Labels paarweise und verschieben deren UVMap-Ausschnitt an die richtige Stelle:

full

Das Ergebnis speichern wir ab (Meshskelett.blend)und wir sind mit der zweiten Etappe ebenfalls fertig.

Zeit für die zweite Pause :)

Im nächsten Teil wird es endlich soweit sein, wir riggen das Meshskelett. Haltet Eure Tanzanimationen bereit :)
 
Zuletzt bearbeitet:
Guten Morgen :)

Leider hat es etwas gedauert, aber heute kommen wir doch etwas weiter. Es kommt endlich der Schritt, in dem wir das vorhin aufgebaute Mesh an den SL Skelett riggen und somit als Avatar tragbar machen. Ich bin gerade in der darauf folgenden Testphase und es klappt soweit, so dass ich denke ich kann den Abschnitt "Riggen" veröffentlichen. Wenn Ihr damit fertig seid, müsste ich mit dem Testen fertig sein.

1.4. Riggen

Fitted Skelett sichern

Die Datei (Meshskelett.blend) speichern wir nun unter "Skelettavatar.blend" ab und arbeiten an der weiter. Als erstes wird der Skelett (armature) im Objektmode kopiert und die Kopie auf den Objektlayer 16 verschoben.

Der Grund dafür: Die Meshknochen des Avatars sollen nicht den Collisionsbones des Avatarskelett folgen. Auch das Skelett von Manuellab hat keine Collisionsbones. Ich denke deshalb, man muss sie löschen, das ergibt eine nähere Ausgangslage zum Skelett von Manuellab. Später müssen die Bones aber hinzugefügt werden. Ich weiß zwar noch nicht wie, aber ich erwarte, dass es möglich ist.

Deshalb bewahren wir eine Sicherung des Avatarskeletts auf einem anderen Layer.

Löschen von Collsionsbonen

Nun wechseln wir zum Layer 10, wählen wir das Originalskelett aus, Wechsel ins Editmode und zum Skelettlayer 2 auf dem Data Kärtchen. Wir sehen (nur) die Collisionsbones, die wir auswählen und löschen. Anschließend auch die Gruppe "Collision Volumes" im Posemode (Gruppe auswählen und mit dem Minusbutton entfernen.)

Skelettlayer 1 aktivieren -- mBones sind noch da. Namensanzeige habe ich wieder ausgeschaltet.

full

Der Posemode

An der Stelle möchte ich kurz den Posemode erklären, dadurch müsste ich mehr Erklärungen an anderen Stellen sparen.

Im Posemode versetzt man das Skelett in verschiedene Posen. Dazu werden die Skelettknochen ausgewählt und wie andere Elemente auch rotiert, skaliert und verschoben. Andere Skelttknochen, die an diese Knochen "geparented" sind, also als Kinder angeschlossen, werden ebenfalls bewegt. Hier z.B. beim Winken:

full

Ihr könnt ruhig daran spielen (für alle Fälle vorher speichern.) Die Knochen werden wie üblich ausgewählt. Zum Rotieren, Verschieben und Skalieren der Knochen stehen auch die üblichen Tasten R, G und S. Neu ist: Hat man einen Knochen verstellt, setzen die Tastenkürzel Alt+R, Alt+G und Alt+S die Transformationen zurück.

Z.B. nach diesem Bild habe ich alle Knochen mit A ausgewählt und mit Alt+R die Rotationen zurück gesetzt.

Jedem (deformierenden) Knochen ist eine Vertexgruppe zugeordnet. Hier werden Vertices eingetragen, die sich mit dem Knochen mit bewegen sollen. Die Vertices erhalten außerdem eine Gewichtung, je höher die Gewichtung, umso stärker beeinflusst der Knochen den Vertex. Die Vertexgruppen sind Teil des Objekts, nicht des Skeletts. Deshalb werden sie neu angelegt, wenn wir das Mesh ans Skelett gleich riggen.

Mesh und Skelett vereinen

Eigentlich müssen sie das sein, aber wir prüfen trotzdem, dass die Bones deformierend sind, das Mesh also verformen können. Dazu wechseln wir zum Bone Kärtchen und wählen nacheinander jeden Knochen einzeln aus, vor Deform muss ein Häkchen gesetzt sein. Sonst bitte setzen.

full

Jetzt kommt der spannende Moment: Mesh und Skelett werden vereint, wobei das Skelett zum Parent des Mesh wird. Dazu wechseln wir ins Objectmode und schalten den Layer 1 dazu. Jetzt wählen wir zuerst das Mesh aus, dann das Skelett und dann drücken auf Strg+P. Es erscheint das Menü in dem wir With Empty Groups wählen:

full

Das Menü fügt dem Mesh den Armature Modifier hinzu (das ist vielleicht noch unwichtig) und legt für alle deformierenden Knochen die zugehörigen Vertexgruppen an.

Info: Normalerweise wird in Tutorials an dieser Stelle empfohlen, den Menüpunkt With Automatic Weights zu nehmen, denn dann würde Blender die Vertices auch noch gewichten, so dass der Mesh dem Skelett folgen kann. Das nimmt einem einiges ab, normalerweise.

In unserem Fall bin ich mir nicht sicher, ob Blender die Vertices richtig gewichten kann (bei meinem Versuch hat er das nicht geschafft), so dass ich hier gleich empfohlen hätte, die automatische Gewichtung wieder zu entfernen. Wir sparen das lieber und starten mit leeren Gruppen.

Weight Paint: Gewichtmalerei

Das zuvor war so zu sagen Vorbereitung, nun kommt der längste und letzte Abschnitt dieser Etappe -- wir werden die Vertices gewichten. Es kann zuerst etwas komisch aussehen, aber passiert das, indem die Vertices mit der Gewichtung angemalt werden.

Dazu wechseln wir in den Posemode, solange der Skelett (armature) ausgewählt ist. Dann klappen wir seinen Baum im Outliner, selektieren dort das Skelett und wechseln in den Weight Paint Mode. Es ist wichtig, dass das Skelett im Posemode war, so können wir jetzt jeden Knochen direkt hier auswählen. Außerdem stellen wir die Ansicht auf Solid oder Wireframe, sonst scheint die UV Textur durch:

full

Der Kursor hat sich zum Kreis verwandelt, das ist die Pinsel. Die Pinselparameter kann man links in der Werkzeugleiste, Kategorie Brusch steuern. Der große Button bestimmt die Pinselart. Weight ist die Gewichtung die aufgemalt wird, Radius und Strength sind die Größe und Stärke der Pinsel. Den Rest der Kategorie hatte ich noch nicht gebraucht.

Angemalt wird ein Vertex bezüglich den gerade ausgewählten Knochens. Ist die Gewichtung größer 0, landet der Vertex in der Vertexgruppe für diesen Knochen. Die Gewichtung bestimmt wie stark die Bewegung des Knochens den Vertex bewegt. Die Gewichtung wird dabei farblich angezeigt. Dunkelblau ist 0 (min.), rot ist 1 (100%) und die Zwischenwerte gehen über hellblau, grün, gelb, orange.

Da wir das Mesh und Skelett mit leeren Gruppen vereint haben, ist das Mesh für jeden Knochen dunkelblau. Das Ziel ist es nun, für jeden (einzeln ausgewählten) Knochen, den zugehörigen Meshknochen rot anzumalen, während alle anderen Meshteile blau bleiben sollen.

Obwohl alle Meschknochen zu einem Mesh vereint wurden, schreibe ich immer noch "Meshknochen", weil die Meshteile die früher separate Objekte waren, semantisch immer noch separate Elemente sind und als separate Elemente bewegt werden müssen.

So, und nun haben wir ein Problem. Und zwar liegt die Kopfspitze eines Meshknochens innerhalb der Gelenkkugel eines anderen und fällt auch räumlich mit der Fußspitze dieses anderen Meshknochens zusammen. Wollen wir die Kopfspitze anmalen, treffen wir die Kugel und umgekehrt.

Die Lösung: Wir müssen kurzfristig die Meshknochen räumlich trennen.
 
Zuletzt bearbeitet:
Divide et impera

Hierzu wechseln wir in den Editmode (Mesh ist ausgewählt) und arbeiten das Mesh wieder strangweise ab. Jeder zweite Meshknochen wird etwa um 30 cm zur Seite verschoben (einfach jeden zweiten Meshknochen selektieren und alle gemeinsam verschieben.)

Die Distanz ist unwichtig, es muss weit genug sein und es muss eine bestimmte Distanz sein, damit wir die Teile zurück verschieben können. Der Rumpfstrang lieber nach hinten, Armstränge auch, Beinstränge und Augen jeweils zur Seite:

full

Jetzt wechseln wir in den Weightpaint Mode, der mPelvis Knochen wird ausgewählt und etwa 15 cm nach vorne verschoben. Es muss eine andere Distanz sein, als die im vorigen Schritt. Genau 15 cm kriegt man nicht hin, man kann die Verschiebung aber immer zurücksetzen, daher muss es nicht genau sein:

full

Alle Knochen ziehen mit, der Mesh bewegt sich aber nicht, weil das Skelett das Mesh noch nicht beeinflussen kann. Jetzt zoomen wir zum Meshknochen um mPelvis. Da der Meshknochen frei ist, kann man nun mit der Pinsel über den Meshteil ziehen (mit gedruckten LMB.) Den Grund für die Verschiebung sieht man sofort: Sobald die Vertices etwas Gewichtung bekommen, springen sie sofort zur richtigen Position. Auf diese Weise kann man erkennen, welche Vertices noch nicht angemalt wurden:

full

Backface Culling können wir für die Operation wieder ausschalten (hab ich gemacht,) um Labelflächen auch von innen sehen zu können.

Den Meshknochen malt man von allen Seiten, weil man nicht überall trifft, auch wenn die Vertices auf ihre neue Position springen. Man muss dabei aufpassen, nur den Meshknochen um mPelvis zu treffen. Sollte man zufällig falsche Vertices treffen, stellt man die Gewichtung in der Werkzeugleiste auf 0 und malt damit die falsh getroffene Vertices, dadurch wird deren Gewichtung gelöscht.

Nachdem der Meshknochen um mPelvis komplett rot angemalt wurde, wählen wir den nächsten Knochen aus - mTorso. Der Meshknochen um mPelvis wird wieder blau, weil er nicht an mTorso geriggt ist und auch nicht soll. Wir malen auf diese Weise den Meshknochen um mTorso an. Seine Sprungposition ist aber nicht am mTorso, sondern abseits, wie er im Editmode platziert wurde.

full


Welcher Meshknochen zu welchem Bone gehört kann man in Seitenansicht erkennen, sollte man durcheinander kommen (NP3, Frontansicht des Avatars.) Strangweises Vorgehen ist nicht erforderlich, aber es hilft, keinen der Knochen zu vergessen.

Tip: Ich hatte in meinem Fall Probleme bei den Füßen, als ich die Beine von oben nach unten abgearbeitet habe, weil sich die Meshknochen unter die weitere noch nicht bearbeitete Meshknochen verschoben haben. Die Beinstränge würde ich daher von unten nach oben entwickeln.

Eine animierte Übersicht über die Skelett- und zugehörigen Meshknochen in der vorgeschlagenen Entwicklungsreihenfolge:

full

Mesh wieder zusammenfügen

Nachdem alle Meshknochen abgearbeitet wurden und überprüft wurde, dass an jeden Skelettknochen genau ein Meshknochen geriggt ist, setzen wir das Skelett wieder zurück (noch in Weightpaint Mode alle Knochen mit A auswählen, und mit Alt+G und evtl. Alt+R und Alt+S zurücksetzen.)

Danach wechseln wir ins Editmode und bringen die verschobenen Meshknochen wieder an ihre Stelle. Zurück zu Weightpaint - das Mesh ist auch hier in Ordnung:

full

Wir können aber auch das Skelett im Outliner auswählen, zum Posemode wechseln, wo wir wie vorhin mit dem Skelett spielen. Winken lassen etwa, oder lieber extreme Dehnübungen (ok, für mich wär' das in RL extrem) machen lassen:

full

Das Mesh zieht jetzt brav mit. Wenn nicht, wurde beim Gewichten irgendwo was übersehen. Extreme Posen sind daher ein gutes Mittel, um Riggingfehler zu erkennen.

Nachdem auch hier alles in Ordnung ist, Pose wieder zurücksetzen (A, Alt+R.)

Physik nicht vergessen

Avatar ist ein Attachment, und wie ich in einem anderen Thread gesagt habe, für einen Attachment ist die Physik egal, daher sollten wir dem Avatar die einfachste Physik geben, die möglich ist und das ist eine Box.

Das tun wir erst, wenn wir das Mesh hochladen, am Mesh selbst brauchen wir also nichts ändern. Wir gehen einfach in den Objektmode, aktivieren den Layer 2, erstellen eine Box (Cube) und nennen sie "Physik". Abspeichern (Skelettavatar.blend,) fertig. Das Bild brauche ich hierzu nicht zu machen :)

Jetzt können wir den Avatar exportieren, hochladen und testen. Der Post dazu soll aber nicht mehr so fern sein :)

Also, bis bald
 
Zuletzt bearbeitet:
Nun folgt der versprochene Abschluss des ersten Meilenstein

1.5. Export und Test

Export

Wir wählen im Outliner das Mesh aus, dann nehmen wir den Menüpunkt File - Export - Collada (default).dae und unter Oprionen den Preset Sl + Open Sim Rigged. Blender aktiviert eine Reihe von Checkboxen, da wähle ich normalerweise die Checkbox Include UV textures ab (Texturen haben bisher nie funktioniert.) Den Vorschlag Skelettavatar.dae akzeptieren wir.

full

Außerdem exportieren wir die Physik, diesmal mit dem Preset Sl + Open Sim Static. Als Dateiname Skelettavatar_PHYS.dae, das ist eine Konvention, der LL Viewer lädt dann die Datei automatisch als Physik dazu, wenn man die Datei für das Meshmodell auswählt.

Jetzt können wir das Mesh hochladen. Vorher möchte ich aber was zeigen. Importiert man das Skelettmesh wieder in eine neue Datei, sieht es auf einmal so aus:

full

Exportiere ich auf dieselbe Weise einen der Meshkörper aus der Fitmesh Kit-Datei (fitted_mesh-270.blend, ob männlicher oder weiblicher Body, ist gleich) und importiere die in eine neue Blenderdatei, so wird es noch schlimmer:

full

Hier mischen sich noch Collisionsbones mit, aber man sieht es trotzdem, die Knochen stehen falsch und sind nur noch durch Beziehungslinien verbunden. Ich nehme an, dass der Fehler im Importer von Blender liegt.

Jedenfalls mit der Vorlage hätten wir den Avatar nicht aufgebaut. Deshalb hatte ich ganz am Anfang vorgeschlagen, das Skelett in der Datei zu behalten und nicht hinterher neu zu importieren.

SL Alternativen

Ok, und jetzt können wir unseren Avatar in eine virtuelle Welt importieren. Ich habe es in der Form gesagt, weil es mindestens drei alternative Welten gibt, die unseren Avatar aufnehmen können. Ich spreche sie ganz kurz an, weil es ein extremes Randthema ist und deren genaue Vorstellung lange Threads füllen würde. Außerdem gibt es diese Threads schon.

Das sind verschiedene Grids. Eine Grid ist eine Ansammlung von Sims, eine Art Sim-Netzwerk. Im Falle von LL sind diese Netzwerke geschlossen. Im Fall von OS (Open Sim) können diese Netzserke zu einem "Hypergrid" zusammen geschlossen werden.

Aditi, oder SL Beta Grid

Die alternative Grid von LL ist die sog. Beta Grid. Hier testet LL die Serversoftware und empfiehlt es auch, das Mesh hier zu testen. Upload ist hier praktisch umsonst. Weil die Grid von LL ist, braucht es zum Einloggen den SL Account.

Open Sim (OS)

Open Sim oder OS ist eine Serversoftware, die eine virtuelle Welt simuliert. Diese kann mit fast jedem SL-Viewer betreten werden und fühlt sich fast wie SL an. Der größte Unterschied zu SL ist hier, m.M.n, dass die Grids zu einem Hypergrid verbunden werden können und wenn die Hypergrid offen ist, man eine eigene Grid auf dem Heimrechner oder einem gemieteten Server im Rechenzentrum installieren und an die Hypergrid anschließen kann. Teleports zwischen Sims verschiedener Grids unterscheiden sich kaum von Teleports innerhalb einer Grid.
  • Für OS ist ein Account in einer der Grid nötig, z.B. hier: www.osgrid.org (diese Hypergrid ist offen.)
  • Evtl. braucht es einen OS-tauglichen Viewer. Im Zweifel nimmt einen von hier: Downloads.

Sim On A Stick (SOAS)

Das ist die Grundvariante von Opensim. M.W. benutzen alle OS Grids eine Distribution der Software von OpenSimulator. Das Paket, das man hier herunterlädt, läuft bereits von einem USB Stick (daher der Name) oder einem Verzeichnis (vorzugsweise.) Gestartet wird dabei ein Server, der eine Grid lokal simuliert, d.h. ohne Anbindung an eine Hypergrid und ohne dass man an dieseen Server, in diese Grid also, von außen einloggen kann.

Beim ersten Start des Servers muss man den Simname, den Administratoraccount und andere Daten angeben. Dann bekommt man eine Grid mit nur einer Sim, die leer ist. Der Avatar hat auch einen praktisch leeren Inventar.

Der Server läuft in einem Consolenfenster, wo alles verwaltet wird, z.B. man kann hier weitere Regionen in die Grid anlegen, Region-Archive laden (Sicherung der Objekte einer Sim) oder Inventar-Archive (Sicherung des Inventars der Residents).

Diese Variante eignet sich gut, wenn man eigene Meshes testen möchte, ohne Uploadgebühren zu zahlen und ohne dass dabei Netzwerktraffic entsteht. Allerdings muss man sich dann selbst um die Serverpflege und -Konfiguration kümmern. Mit Befehlen dazu muss man sich auseinandersetzen.

Jetzt zurück zum praktischen Teil :)

Upload

Upload verläuft wie beim üblichen Mesh auch, die Dateien für das Modell (und evtl. die Physik) wählen wir aus, die Vorschläge für die LOD Stufen übernehmen wir. Bei der Physik ist nichts zu optimieren, daher zeige ich die beiden Seiten nicht voll:

full

Unter Optionen setzen wir noch das Kästchen unter "With Skin Weights", damit das Rigging überhaupt übertragen wird. Ob die Modellrepräsentation irgendeine Bedeutung hat, weiß ich nicht, ich wähle die trotzdem.

Beobachtung: Aus irgendeinem Grund war manchmal nicht möglich, die Option "Include Joint Positions" zu wählen (allerdings brauchen wir die nicht.) Nach Schließen des Formulars und neu wählen der Datei(en) war die Option wieder zuschaltbar. Ich weiß nicht warum.

Kosten berechnen und hochladen. Auch müssen wir noch die Textur für die Labels hochladen. Das ist die vom Post #4.

Wer nach SL hochladen will, mag mich anschreiben, ich schicke gerne das Bild zu. Oder den ganzen Avatar auf Aditi, da habe ich den hochgeladen und mache die Tests.

Rezzzen

Wir rezzen das Mesh, um es zu texturieren. Man kann es auch getragen tun, am Boden ist es aber einfacher. Den Knochenkörper und die Scharniere habe ich weiß und schwarz, beide mit maximalem Glanz. Die Nase grün, Labels weiß, beide matt. Die Labels sind leuchtend und tragen die Namenstextur:

full

Beobachtung: Aus irgendeinem Grund war das Mesh inworld komplett weiß. Normalerweise wenn ich Mesh hoch lade, kommen die Materialfarben mit der Datei mit. Also die Flächen sind inworld beim Rezzen in die Regenbogenfarben wie im Blender gefärbt (rot, orange, gelb usw.) Oben bei der Fehlerdarstellung kann man auch sehen, dass diese Farben in der Meshdatei enthalten sind. Inworld aber nicht.

Nach Texturieren das Mesh wieder aufnehmen. Nun zu Alphalayer. Der SL Avatar muss unsichtbar sein, also neues Alpha erstellen, irgendeinen Namen geben, anziehen und bearbeiten. Im Dialog dann alle Kästchen wählen, das macht alle Shapeteile unsichtbar, ohne eine Textur dafür erstellen zu müssen.

Nun alles ausziehen bzw. ablegen (vergisst bitte die Schuhe nicht, bzw. die Schuhbasis, ist mir nämlich passiert) und nur das Mesh und Alpha anziehen. Und endlich tragen wir unseren Skelettavatar:

full

Der wird sich bei Euch vielleicht vom Bild etwas unterscheiden, weil den Shape wir nicht ersetzt haben. Aber die Unterschiede werden nicht auffallend sein.
 
Zuletzt bearbeitet:
So, die Idee für diesen Avatar war ja, dass man nicht nur mit Blender spielt, sondern auch dass dabei ein Messinstrument für die Skelettdeformationen herauskommt. Also wollen wir schauen was der Avatar in der Hinsicht so kann.

Shapeslider

Das einfachste, was wir untersuchen können, wäre ob und wie der Avatar auf die Shapeslider reagiert. Dazu wird einfach das getragene Shape bearbeitet und an den Slider gezogen.

Einige Slider skalieren die Knochenlänge, z.B. "Neck Length" skaliert mNeck, und zwar nur in der Länge:

full

Einige Slider skalieren die Knochendicke, z.B. "Neck Thickness" skaliert ebenfalls mNeck, diesmal in der Breite:

full

Andere haben überhaupt keine Wirkung, z.B. "Torso Muscles" Slider:

full

Und wiederum einige Slider beeiflussen die Jointpositionen, z.B. der Slider "Shoulders" verschiebt die mCollar Bones, anstatt deren Länge zu ändern:

full

Beobachtung: Man kann erkennen, dass die Bones mNeck und mChest dabei etwas breiter werden. Erst dachte ich ich hätte einen Fehler gemacht und deren Meshbones an die Schulter geriggt, konnte dann aber keinen Fehler finden. Anscheinend werden beide Bones mit der Schulterweite mit skaliert.

Mit Haut überziehen

Jetzt kombinieren wir den Skelettavatar mit einem Meshavatar. Zu Testzwecken schlage ich die einfachste Variante vor: Wir exportieren eins der Meshbodies aus dem Fitmesh Kit (fitted_mesh-270.blend,) in meinem Fall wurde das weiblicher Mesh und laden es hoch, wie vorhin.

Inworld wird der Avatar mit 50% Transparenz zum Skelettavatar mit getragen:

full

Beobachtung: Aus irgendeinem Grund sind die Labels auf dem getragenen Mesh nicht sichtbar, wenn sie innerhalb des Meshkörpers liegen. Ok, ich habe später doch noch herausgefunden, warum, aber die Bilder möchte ich nicht nochmal machen. Die Auflösung wird gegen Ende kommen.

Fitted Slider

Wie dem auch sei, zurück zum Test. Wir haben ja gerade einen fitted Meshbody hochgeladen. Was passiert bei dem mit den Shapeslidern, die den Skelettavatar nicht beeinflussen? Skelettavatar und fitted Meshbody zusammen tragen und die Slider (hier wieder "Torso Muscles") bewegen:

full

Offensichtlich kontrolliert dieser Slider die Collisionsbones, die wir beim Riggen ausgeschlossen haben. Daher reagiert nur der Meshbody auf den Slider, aber nicht unser Skelettavatar.

Ok, das war Deformation durch Shapeslider. Ich kenne zwei weiteren Deformationsarten, die durch eine Animation und die durch getragenes Mesh.

Deformation durch Animation

Ich habe mein Inventar durchsucht, aber leider keine Animation gefunden, die das Skelett tatsächlich deformiert. Alerdings habe ich einige Tieravatare, deren AO den Avatar in eine Pose zwingt, bei der (zusammen mit getragenen Fellattachments) eine Tierdarstellung erreicht wird.

Einer dieser Avatare ist die Zooby Katze ("Zooby Black Long Haired Cat", nicht mehr in MP zu finden.) Das war meine Lieblingskatze, ist aber noch aus der Premesh-Ära und benötigt einen ganzen Haufen Fellattachments für die Darstellung. Heute würde ich einen einzigen Mesh-Katzenbody erwarten, aber das ist hier unwichtig.

Also, links ist der Avatar in der Sitzposition, rechts das Skelett in dieser Position, ohne Fellattachments:

full

Man kann vielleicht erkennen, dass hier die Knochen einfach an den Gelenken gefaltet wurden, damit die Attachments dort sind, wo die sollen. Verkürzung der Knochen (falls es jemanden aufgefallen ist) ist rein durch den Shape erreicht.

Deformation durch Mesh

Bevor wir mit echten Mesh anfangen möchte ich was zeigen. Es gibt etwas, was jeder im Inventar hat, was noch von der Premesh-Ära stammt und ebenfalls eine deformierende Wirkung aufs Skelett hat, wenn auch nur auf zwei Knochen. Das ist die Shuhbasis. Entdeckt habe ich es echt zufällig, habe beim Umziehen in den Skelettavatar vergessen, die Schuhbasis auszuziehen.

Also, ziehe ich eine Schuhbasis an, ist die Deformation deutlich zu erkennen:

full

Links ohne, rechts mit dem überzogenen Meshbody. Zum Vergleich, derselbe Bereich ohne die Schuhbasis:

full

Beobachtung: Aus irgendeinem Grund folgt die Fußspitze der Kopfpitze am Knickpunkt (im Originalmesh sind die beiden Punkte nicht verschmolzen) obwohl die Gelenkkugel, die auch um diesen Punkt gemesht ist, dem Knick nicht folgt.

Falls ich beim riggen keinen Fehler gemacht habe, vermute ich an der Stelle, dass die Gelenkkugel wie der Rest des Meshknochens seinem Bone folgt, also mFoot in dem Fall. Der Ausreißer ist nur die Fußspitze, die der Kopfspitze von mAnkle folgt.

Ich habe beide Spitzen nicht verschmolzen, auch wenn ich im Blender die .dae Datei wieder importiere, bleiben die beiden Spitzen getrennt. Falls dieser Effekt nicht absolut zu erwarten ist, erkläre ich es mir so, dass der Colladaimporter von SL die beiden Spitzen verschmolzen hat, weil sie ja zusammenfallen.

Pferdemesh

Ein Tieravatar ist ein gutes Beispiel für die Skeletdeformation, und Pferdeavatare finde ich klassisch. :) Und anders als Zoobykatze habe ich einen Pferdavatar von BC (genauer den BC Quarter Horse Avatar), der Mesh ist und den Skelett tatsächlich deformieren kann. Der Avatar ist etwas älter, das macht aber nichts aus.

Um die Deformation durch Jointsverschiebung besser zu zeigen, habe ich folgendes gemacht: Ich habe die UVMap des Knochenkörpers exportiert und zu einer blau-roten Textur umgewandelt. Diese ist die Textur, die ich dann dem Knochenkörper zugewiesen habe:

full

Die Fläche habe ich außerdem leuchtend gestellt. Blau ist dabei der Kopfbereich der Meshbones, dieser Teil des Knochens ist durch die Jointverschiebung nicht deformiert. Rot ist der Fußbereich, der ist normalerweise klein. Wird der Joint aber verschoben, dann würde dieser Teil zur Kopfspitze des anderen Knochens hin führen und wir hätten eine evtl. lange rote Spitze.

Zurück zum Pferdetest. So schaut es aus, wenn ich den Skelettavatar und Pferdavatar (50% transparent) zusammen trage. Hier ist die Pferde-AO noch aktiv (Human-AO ist natürlich aus.)

full

Und hier habe ich auch die Pferde-AO abgeschaltet und alle Animationen angehalten. Die Skelettdeformation wird daher alleine durch das Mesh verursacht.

full

Man kann deutlich sehen, dass hier die Joints von mehreren Knochen verschoben wurden, genau wie durch Shuhbasis, aber nicht nur an den Füßen diesmal. Das ist eine clevere Art, fehlende Knochen im Skelett zu simulieren, finde ich. Mehr als angucken werde ich hier aber nicht tun, sonst könnte es ziemlich weit führen, und vermutlich abseits des Thema.

Jetzt kommt die versprochene Auflösung. Mir ist irgendwo hier aufgefallen, dass ich dem Knochenkörper eine Textur zugewiesen habe, genauso wie den Labels, die Labels verschwinden im Pferdekörper, der Knochenkörper aber nicht. Also stimmt was mit der Textur nicht. Tatsächlich, ist bei der Labeltextur ein Alphachannel eingeschlichen. Nachdem ich die Textur erneut hochgeladen habe, waren die Labels auch unter der Haut sichtbar.

Die Textur am Anfang des Threads habe ich ersetzt. Und das ist der Pferdetest mit der richtigen Labeltextur und daher sichtbaren Labels:

full

Tanzanimationen

Ich wollte auch noch paar Tänze zeigen, aber da müsste ich einen Film drehen, was für mich Neuland ist. Aber falls man eine gute Animation gefunden hat, ist der tanzende Skelettavatar ist lustig anzuschauen. :)

full

Schlussbemerkung

Ok, vorläufig ist der Test, bzw. die Testbeschreibung und auch der erste Meilenstein des Projekts abgeschlossen. Jetzt kann die Diskussionsrunde beginnen, und man kann sich Gedanken um den weiteren Meilenstein machen.

Zum Lernergebnis. Ich hoffe, dass ich mein Vorgehen verständlich wiedergeben konnte, so dass Ihr den Avatar nach der Anleitung aufbauen könnt, auch ohne Erfahrung in Sachen Riggen zu haben. Ich glaube nach dieser Übung sollten schon einfache non-fitted Avatare klappen, etwa ein Strichmännchen, Roboter oder der Avatar aus Minecraft.

Als Testinstrument kann man mit dem Skelettavatar schon einiges anstellen, zumindest was ich von ihm erwartet hatte, hat er erfüllt. Sogar etwas mehr: Dass der Fußbereich so deformiert wird beim verschobenen Joints hatte ich nicht erwartet.

Ich würde den Avatar deshalb nochmal machen, und zwar den Fußbereich unterhalb der Gelenkkugel trennen, so dass der Fuß zur Kugel normal führt und danach folgt die Spitze, die verzerrt wird und rot eingefärbt werden kann. Vielleicht stelle ich die Variante des Meshknochens im Nachtrag vor. Das ist aber Finetuning und je nachdem wie die fitmesh-Realisierung aussehen wird, vielleicht nicht erforderlich.

LG und viel Spass und Erfolg beim Nachbauen und bei Euren Avataren :)
 
Zuletzt bearbeitet:
Ganz großes Kino. Danke für dieses Klasse Tutorial und vor allem die viele Arbeit dahinter. Eine kleine Bemerkung zu den Jointpositionen beim hochladen. Diesen Haken nur anklicken, wenn man ein vom Avatar abweichendes Skelett hochladen möchte (z.B. mein Dino). Dann werden auch die Positionen und Rotationen der in Blender verwendeten Knochen hochgeladen.
 
Hier ist ´ne kleine Rückmeldung von mir:
Bis jetzt konnte ich dein Tutorial ohne Probleme nacharbeiten. (und das will was heißen bei mir:^^:)
Ich bin ja die Erste, die hier schreit, wenn´s was zu erkunden und lernen gibt, aber auch die Erste, die schreit: ich kann das nicht :rofl
Super Arbeit Jenna!! :thumpup: Morgen bastel ich weiter.
 
June, das ist super :) Ich freue mich dass es soweit klappt, sieht auch richtig aus :)

Und danke für den Lob, Timmi. Das Projekt hat Spass gemacht, bzw, ist es noch nicht abgeschlossen, und man versteht die Sache auch selber besser, wenn man das Tutorial dazu schreibt :)

Ich bin aber am versprochenen Finetuning dran, also ich fummel am Meshknochen so, dass dort auch eine Zone für die Beziehung zum Elternbone entsteht, die beim verschobenen Joint sichtbar wird. Das ist aber eine Kleinigkeit, für das Verständnis unwichtig.

Achso, für alle Fälle, sichert bitte die Version mit vielen Meshknowhen als Objekte, bevor Ihr diese zu einem Mesh vereint. Das könnte nützlich werden wenn man irgendwann später diese ändern wollt.
 
Zuletzt bearbeitet:
Auch von mir eine Rückmeldung.
Zuallerersteinmal:Wow-Respekt-Super Job :thumpup:vielen Dank Jenna
Ich habe nun auch angefangen mit der Nacharbeitung und bin auf dem Stand, den June oben im Mai zeigte.
Bis hierher alles super, kein Problem.
Werde nach und nach weitermachen und bin schon mächtig gespannt.
Arbeitet eigentlich noch jemand mit oder ist evtl sogar schon fertig? Und wie weit ist June bereits?
Werde Bericht erstatten, wenn es meinerseits Fortschritte gibt.
Bis dann
 
So, ich war nicht untätig und nachdem ich beim 1. Versuch wohl etwas schlampig
gearbeitet hatte, hier nun das Skelett in Blender und in OpenSim (mein Arriba-Minigrid-Dingens)
01_LernProjekt_AVSkelett.png

Ganz brav war ich nicht, denn ich bin von Jennas ausführlicher Anleitung abgewichen ab 1.4-Riggen-Weight Paint
Grund: Es behagte mir einfach nicht das nun zum 2.Mal mühsam zusammengefriemelte Skelett wieder auseinanderzunehmen.
Okay:nur Teile verschieben sagte/schrieb Jenna. Dennoch-nönönö-das Risiko wollte ich nicht eingehen. Außerdem kann ich ein gewisses Maß an
Faulheit nicht abstreiten
Hier mein Weg, der gut funktioniert hat:
Das jeweilige Bone-Set (Bone,2xLabel,Join,Nose) "L" im Edit-Mode selektieren
Mesh-Show/Hide-Hide Unselected (Shift H)
Mit Tab in den Weight Paint Mode
hier:
bei den VertexGroups den entsprechenden Bone anwählen
in den Vertex Selection Mode gehen
und mit "Z" in den Wireframe
dann
Weights-Set Weights (Shift+K)
und Zack - alles Rot
nun nur noch in den Vertex Groups den entsprechenden Bone Locken=auf das Schloss klicken
mit Tab-zurück in den Edit Mode - Mesh-ShowHidden (ALT+H) und weiter zum nächsten Bone-Set
2_Set_LockWeight.png
ging RatzFatz und sicher
Dann habe ich das knochige Dingens auf mein Arriba-Minigrid gebracht.Sieht dann so aus
3_MH_anSLSkellettVgl.png
Als nächstes habe ich mir noch ein MakeHuman Mesh drübergestülpt , das ich im Januar mal fabriziert hatte.
(bläulich transparent gefärbt)
Passt nicht so wirklich - die Knochen sind vor allem am Knie, Rückrat und Schulter deformiert

Dann habe ich das MakeHuman Mesh an unsere SL-Amature aus der Datei geriggt, hochgeladen und drübergestülpt
(rötlich transparent gefärbt).Nicht deformiert, aber passt auch nicht.
Hier gäbe es dann wohl Optimierungsbedarf.

Tolle Sache mit dem Skelett. Das ist ein richtig tolles Hilfsmittel.
Nochmals vielen Dank und ein ganz dickes Lob und Respekt für die viele Mühe und tolle Anleitung an Jenna
Hat mir sehr viel Spass gebracht, ist sehr lehrreich und hilft definitiv zum Verständnis.
Zum Nacharbeiten hiermit von mir sehr empfohlen
Mal gucken, wie ich nun weitermache.
LG
Moe

(Hoffentlich klappt das nun mit dem Bildmaterial hier, muss mich da erstmal einfinden)
 

Users who are viewing this thread

Zurück
Oben Unten