Objekte Wie macht man durchsichtige Recolors?

Delma

Member
Registriert
August 2008
Alter
34
Ort
Bremerhaven/Gießen
Geschlecht
w

Hallo:)

ich würde gerne, wie mein thread-titel schon sagt, durchsichtige oder transparente recolors machen bzw bestimmte bereiche bei recolors durchsichtig machen...

kann jemand von euch mir helfen und eine leichte erklärung machen, wie man am besten durchsichtige recolors erstellt?

ich benutze vor allem photofiltre, aber ich habe auch gimp.

vielen vielen dank für eure erklärungen:)

Delia
 
Au ha die Königin des Meshens erklärt wieder etwas. Dann kann ich auch wieder etwas lernen. *holt sich gleich einmal ihren Schreibblock und setzt auch einmal einen lernwilligen Blick auf.
 
Okay, dann wollen wir mal.

Es gibt mehrere Wege, wie man Transparenzen macht, je nachdem, ob der transparente Teil eine eigene Meshgroup hat oder nicht, und ob die Transparenz nur eine Farbe hat (z.B. bei einer einfachen Fensterscheibe) oder auch ein Bild oder Muster (z.B. Kirchenfenster).

Variante eins: der transparente Teil hat eine eigene Meshgroup und nur eine einfache Farbe, z.B. ein Fenster mit den Meshgroups "frame" und "glass".
Da kann man alles über die Material Definiton steuern, man braucht gar keine Textur (spart Platz ;)).
Folgende Einträge in der Material Definition (von "glass") steuern die Transparenz:

stdMatAlphaBlendMode: blend (ermöglicht Transparenz)

stdMatUntexturedDiffAlpha: ein Wert zwischen 0 und eins (regelt, wie durchsichtig etwas ist, wobei 0 = unsichtbar und 1 = gar nicht durchsichtig)

stdMatDiffCoef: RGB-Wert der Farbe. Den Farbwert kann man folgendermassen umrechnen: im Bildbearbeitungsprogramm kann man sich irgendwo die Farbwerte für R/G/B (Rot, Gelb, Blau) anzeigen lassen (ich weiss das leider nur für Photoshop). Die sind z.B. für Schwarz 0/0/0, für reines Weiss 255/255/255, für ein helles Blau z.B. 138/170/217. Diese Werte teilt man nun durch 255 und trägt die so errechneten Zahlen hier ein, für Schwarz wäre das 0,0,0; für Weiss 1,1,1 und für das Blau 0.541,0.666,0.850 - bitte auf die Punkte und Kommas achten! Die Kommas trennen die einzelnen Zahlen.

Alle Einträge, die mit stdMatBaseTexture anfangen außer stdMatBaseTextureAlphaReplicate können gelöscht werden, ebenso eine eventuell im package vorhandene Textur für diese Meshgroup.

Variante zwei: eigene Meshgroup, aber nicht nur Farbe - Textur wird benötigt.
Material Definition:

stdMatAlphaBlendMode: blend (ermöglicht Transparenz)

stdMatDiffCoef: die Farbe sollte den normalen, neutralen Wert haben; der ist in der Regel 0.8,0.8,0.8

Für die Stärke der Transparenz hast Du zwei verschiedene Möglichkeiten. Du kannst Deine Textur z.B. als normales, undurchsichtiges jpeg Abspeichern und einlesen, dann steuerst Du die Transparenz über den Wert von stdMatAlphaMultiplier. Du kannst aber auch bereits im Bildbearbeitungsprogramm die Deckkraft verringern und die Textur als png abspeichern (so dass diese grauen Kästchen durchschimmern).
Dann kannst Du den Wert von stdMatAlphaMultiplier auf 1 lassen; ist er kleiner als 1, würde Deine Textur noch durchsichtiger.
Anmerkung: man kann natürlich auch Variante eins auf die gleiche Weise machen wie Varante zwei, also mit einer einfachen, blauen Textur. Braucht dann halt nur etwas mehr Speicherplatz.


Variante drei: Du hast nur eine Meshgroup und willst einen Teil des Meshes transparent machen. Das geht dann nur über die Texturvariante.
Material Definition:

stdMatAlphaBlendMode: blend (ermöglicht Transparenz)

stdMatDiffCoef: die Farbe sollte den normalen, neutralen Wert haben; der ist in der Regel 0.8,0.8,0.8

stdMatAlphaMultiplier: 1 (unbedingt! Sonst wird alles transparent)
Die Textur erstellt man dann aus zwei Ebenen, dabei hat die für den undurchsichtigen Teil eine Deckkraft von 100% und die für den durchsichtigen Teil eine reduzierte Deckkraft, je nach Geschmack. Dann als png abspeichern.


Allgemeines: noch ein paar allgemeingültige Sachen.

Vorder/Rückseite: auch bei den transparenten Teilen ist es so, dass man nur die "Vorderseite" der Faces im Spiel sehen kann. Wenn man also eine Gardine vor ein Fenster hängt, kann es sein, dass man sie von der Rückseite gar nicht sehen kann. Das kann man auf zwei Arten lösen:
- Ändern des Meshs: den Teil, den man auch von hinten sehen möchte, duplizieren und einfach die Faces umdrehen. Den neuen Teil dann der Meshgroup zufügen. Diese Variante sollte man möglichst IMMER wählen, wenn man nur eine Meshgroup hat.
- Material Definition: dort gibt es einen Eintrag namens stdMatCullMode. Der steht i.d.R. auf dem Wert cullClockwise, was bedeutet, dass die Vorderseite der Faces dargestellt wird. Setzt man ihn auf cullCounterClockwise, wird die Rückseite dargestellt. Und setzt man ihn auf none, werden beide Seiten dargestellt. Hat man also einen eigene Meshgroup für den Teil, der von beiden Seiten angezeigt werden soll (wie z.B. im Beispiel oben "glass" oder bei Gardinen die Textilie und die Stange), kann man hier einfach "none" eintragen. Das bedeutet aber, dass das Spiel die Polygone dieser Meshgroup verdoppelt, um sie auch von hinten anzuzeigen. Deshalb möglichst nur dann verwenden, wenn man damit nicht auch noch nutzloserweise den gesamten Mesh, z.B. inklusive des Rahmens, verdoppeln würde - sonst lieber die Meshvariante wählen.
Bei Fenstern braucht man das in der Regel übrigens nicht, weil es da ja eh meist einen eigenen Mesh für die Vorder- und die Rückseite der Wand gibt.

Darstellungsreihenfolge: bei allen transparenten Meshteilen ist es so, dass die korrekte Reihenfolge der Darstellung vom Spiel nicht mehr ermittelt werden kann. Wenn man also zwei transparente Meshes voreinander platziert hat, kann es sein, dass sie sich gegenseitig "durchschneiden" oder der hintere vor dem vorderen erscheint. Das kann man leider nicht abstellen.
Es gibt nur einen Trick, mit dem man arbeiten kann, wenn man keine Transparenz braucht, sondern einen Teil des Meshes komplett unsichtbar machen möchte - z.B. wenn man ein Blatt am Baum hat, oder ein Gitter oder so; also in den Fällen, wo man den Mesh gar nicht genau ausarbeitet, um Polygone zu sparen, sondern einfach über die Textur den Teil des Meshes, den man nicht braucht, unsichtbar macht. Man erstellt dann die Textur entsprechend und speichert sie als png.
In diesem Fall lässt man einfach stdMatAlphaBlendMode auf none (NICHT blend!) und stdMatUntexturedDiffAlpha auf 1. Dafür setzt man den Wert stdMatAlphaTestEnabled auf 1. Dieser Wert macht den Mesh nicht transparent, so dass die richtige Darstellungsreihenfolge erhalten bleibt, er lässt aber sichtbar/unsichtbar zu. Alle Teile der Textur, die "leer" sind, werden dann unsichtbar, alle Teile, die einen Farbwert haben, werden dargestellt. Man kann halt nur keine transparenten Verläufe z.B. am Rand machen, weil es nur komplett sichtbar oder komplett unsichtbar gibt und Transparenz selbst nicht.

So, ich hoffe jetzt, das war verständlich; wenn nicht, einfach schreien und nochmal nachfragen. ;)
 
Zuletzt bearbeitet:
das hört sich jetzt noch ein bisschen verwirrend an, aber wenn ich mich damit beschäftige, bekomme ich es schon hin!:)

vielen vielen dank für deine mühen und für die beantwortung eventueller fragen, die sicher kommen werden;)

jetzt muss ich nur noch ein passendes übungsobjekt finden:D
 
Huhu... :hallo:!

DAS interessiert mich nun auch sehr ;) - aber ich glaub ich bin zu blond :confused: ...
Liebe Julsfels ...du hast das sooo toll erklärt, das ich nun zwar langsam kapiere, welche dieser Dateien für was zuständig ist und was für Transparenz...aber bitte, WO bzw. in welchem Programm ändere ich denn diesen Wert...?
Variante 1 liest sich so, als ob ich damit endlich mal diese dämlichen Sonnenbrillen ändern könnte (die Originalen sind mir einfach oft zu dunkel, also die Gläser, und die ein oder andere fänd ich ohne farbiges Glas einfach mal nett).
Soweit ich weiß, bestehen die Brillen ja aus zwei Teilen, dem Rahmen (frame) und dem Glas - den Rahmen einzufärben, das kann ich, aber eben die Gläser...?
Ach, und außerdem üerleg ich schon lange, wie ich manchen Kleidungsstücken ein paar transparente Teile verpasse, das müsste dann doch im Prinzip ähnlich gehen..? Das mit der Gardine und dem Umdrehen kapier ich eh nicht :lol: - wobei ich mir grad die auch oft etwas "durchsichtiger" wünschen würde.

Ich weiß, wir strapazieren dich ;)....

Sonnige Grüße - vL :hallo:
 
Sorry! Mit dem gleichen Problem (wo zu Henker ändere ich das? :lol:) hatten andere auch zu kämpfen. Ich bin einfach davon ausgegangen, dass ihr schon wisst, wovon ich rede; das ist immer problematisch. ;)

Die Material Definiton, von der ich oben gesprochen habe, ist eine Resource in den packages und wird deshalb in SimPE geändert.
Also einfach das entsprechende package mit SimPE öffnen und dann links im Resourcenbaum auf "Material Definition (TXMT)" klicken, dann erscheinen rechts oben in der Resource List alle Material Definitions.
In der Regel gibt es eine pro Meshgroup, es können aber auch mehr oder weniger sein. Welche Material Definition zu welcher Meshgroup gehört, kann man in der Shape (SHP) nachlesen; meist sind die Namen aber auch sprechend.

Was die Sonnenbrillen angeht: jein. ;) In der Tat funktioniert das mit dem Glas der Sonnenbrillen so wie oben beschrieben. Ändern kannst Du das, wenn es sich z.B. um eine Download-Sonnenbrille handelt und Du das package mit SimPE öffnen kannst um die Werte in der Material Definition zu ändern. Um eine Original-Brille aus dem Spiel zu ändern, müsstest Du Dir aber ein Replacement basteln, das die Original Material Definition überlagert; Du müsstest Dir dazu die Daten mit SimPE extrahieren. Das ist etwas komplizierter. Du könntest Dir aber auf jeden Fall die Brille einfach im Bodyshop klonen und dann die neue Brille nach Deinem Geschmack ändern, dann hast Du halt die Originalbrille und Deine im Spiel, das klappt auf jeden Fall.

Mit den Kleidungsstücken geht das leider nicht so einfach. Um richtige transparente Schichten zu machen (wie bei den Hemden für Artair und Brayan), muss bereits die entsprechende Meshgroup im 3D-Programm bestimmte Werte zugewiesen bekommen, und für Körpermeshes gibt es auch andere Materialarten.
Was man gut machen kann, ist auf die Textur transparente Teile zu malen, das geht meist problemlos. Allerdings muss man bedenken, dass das Spiel diese transparenten Teile sozusagen mit der Haut des Sim "unterlegt", aber dies nichts an der Form des Meshes verändert. Wenn Du also einen Mesh hast, der sehr weite Ärmel hat, und Du machst diese Ärmel auf Deiner Textur transparent, wird nicht auf einmal der Ärmel transparent und darunter sieht man einen normalen Arm - es wird so aussehen, als hätte der Sim einen Arm in Form eines Baumstammes, über dem eine hautenge transparente Schicht gespannt ist. :lol:
Für sowas braucht man dann zwei Meshgroups im Mesh selbst, eine mit der normalen Armform und den weiteren Ärmel obendrüber, der einen anderen Materialtyp hat und für den Transparenz erlaubt ist.
Ups, das klingt kompliziert, allerdings ist es das auch. ;)

Also, wenn ihr rumprobiert und auf irgendwelche Probleme stoßt, bitte scheut Euch nicht, hier nochmal nachzufragen. Ich finde es immer schwer, etwas quasi mal so pauschal zu erklären, weil man nie genau weiss, wie weit man ausholen muss.
 
Zuletzt bearbeitet:
Nix sorry, wir haben doch dir zu danken !!!

Mit der Sonnenbrille, das hatte ich mir schon so gedacht, das ich im Bodyshop eine Neue mache und die dann weiter bearbeite :lol:.
Originale überschreiben überfordert mich dann doch wohl :schäm: - muss ja auch gar nicht sein!

Muss ich meine selbstbearbeitete dann vorher noch "packen" oder ist die ...ja, öh..."Project-Brille" dann auch in SimPE zum bearbeiten zu finden?
Hach, jetzt juckt es mir schon in den Fingern, aber ich muss erst noch 2 Stunden hier rumhocken... :Oo:

LG - vL :hallo:
 
Beim Bodyshop gibt es beim Klonen ja irgendwann diesen Button "Ins Spiel exportieren" oder so.
Den klickst Du, und danach hast Du eine package Datei im SavedSims-Ordner. Das ist Deine neue Brille, die Du so nehmen und ändern kannst. Und die kommt auch später in den DL-Ordner.

Vielleicht sollten wir das auch einfach mal an einem konkreten Beispiel durchgehen. Delma, Du bist doch grad an einem Recol dran. Sollen wir da mal einen Blick auf dieses spezielle Recolor werfen?
 
Huhu :hallo: !

Soweit, so gut: hab meine Sonnenbrille erstellt, gespeichert und im Spiel auch brav gefunden.
SimPE allerdings weigert sich das Ganze als .package anzuerkennen und somit zu öffnen :ohoh: - trotz einer Menge im SavedSims gespeicherter Sachen meint SimPE, da wären keine packages zum öffnen da - und wenn ich es mit *all.files* öffnen will, gibts ne Warnung.
317i2hy.jpg


2815zcy.jpg


Warum tut es das %) ? Mein Versuch, das Teil mit Hilfe von SimPE in eine .package zu verwandeln, scheiterte übrigens auch...da kommt dan auch ne Fehlermeldung. Ach manno !
Edit: es will eine GUID von mir...?

Nochmal EDIT: es geht anders rum...im Explorer auf das package klicken, dann öffnet sich SimPE - und die Daten des Packages!!!

LG - vL
 
Zuletzt bearbeitet:
Das... ist merkwürdig. :lol:
Selbst wenn Du in den Ordneroptionen die Dateierweiterungen ausgeblendet hättest, müsste sich das package eigentlich trotzdem mit SimPE öffnen lassen.
Eine GUID brauchst Du bei Kleidung, Accessoires, Haaren, Genetik und MakeUp nicht, nur bei Objekten.
Und selbst wenn - Du müsstest ja zuerst das package öffnen, um einen neue GUID zu vergeben. ;)

Delma hat mir ihr Beispielpackage geschickt, ich stell dann heute abend mal eine bebilderte Anleitung rein.

Btw: ich hatte mich oben bei der Anleitung bei Version zwei und drei bei einem Parameternamen vertan, das habe ich jetzt korrigiert.
 
Hey, super! *froi*

So, jetzt mal eine bebilderte Anleitung anhand des packages, das mir Delma geschickt hat.

Es geht um dieses Pferd von steffor:

01.jpg


Ich habe also ein Recolorpackage geklont und mir die Textur daraus geholt, die sieht so aus:

textur01.jpg


Delma hat mir auch eine Beispieltextur geschickt, das ist die:

textur02.jpg


Und daraus habe ich dann eine neue zusammengebraut:

textur03.jpg


Diese neue Textur in dem Recolorpackage ohne weitere Änderungen ergibt ein ganz normales Recolor, das so aussieht:

02.jpg


Jetzt kommen wir zu den Änderungen für die Transparenzen.
Als erstes habe ich die Transparenz nur über die Material Definition eingestellt und die Textur selbst als jpg belassen. Dazu nimmt man in SimPE im Recolorpackage folgende Einstellungen vor (auf das Bild klicken für eine größere Version):



Links im Resourcenbaum auf Material Definition klicken, dann auf die Resource oben rechts in der Resource List. Die Daten der Material Definition werden dann im unteren Teil angezeigt (der Reiter Plugin View in der Fusszeile muss ausgewählt sein).
Dort ändert man bei den Properties die Einträge für stdMatAlphaBlendMode und stdMatAlphaMultiplier. Wenn man auf eine der Zeilen klickt, wird sie in den rechten Teil geladen und man kann die Werte im Feld "Value" ändern. Für stdMatAlphaBlendMode trägt man blend ein, und für stdMatAlphaMultiplier den Grad der Transparenz, wobei 1 = undurchsichtig und 0 = unsichtbar. Ich habe hier mal 0.3 genommen, damit man es gut sieht; das ist allerdings schon ziemlich viel.
Danach auf "Übernehmen" klicken und das package speichern. Das war´s schon.
Im Spiel sieht das Recolor jetzt so aus:

03.jpg


(Ich sach ja. Is schon ziemlich viel. :lol:)

Noch ein Hinweis: im Original package ist in der Material Definition bei stdMatCullMode "none" eingetragen. Keine Ahnung, was das soll. Ist bei kompakten Meshes völlig überflüssig, und in diesem Fall erhöht es die eh schon nicht knappe Polyanzahl von 976 auf satte 1952, ohne dass sich am Aussehen des Meshes im Spiel was ändert. Ich habe deshalb in allen packages diesen Parameter wieder auf "cullClockwise" gesetzt (das sieht man auch auf dem Screenshot). Dazu sag ich aber später noch was.


Jetzt kommt der zweite Weg - das ist eine Alternative zu der oben beschriebenen Vorgehensweise, man muss nicht beides machen!
Wenn man die Textur gerade neu erstellt und kein Freund von großartigen Nachkommastellentests in der Material Definition ist, kann man die Transparenz der Textur auch gleich im Bildbearbeitungsprogramm einstellen.
Dazu verringert man die Deckkraft der Ebene auf die gewünschte Stärke und speichert das Ganze als PNG-24 ab.
Dann sieht die Textur im Bildbearbeitungsprogramm so aus:

textur04.jpg


Wenn man die Textur mit Build DXT in das package holt, muss man darauf achten, dass man das Format auf DXT3 umstellt, denn DXT1 kann keine Transparenz (auf das Bild klicken für eine größere Version):



Nach dem Einlesen der Textur in SimPE sieht das dann so aus (auf das Bild klicken für eine größere Version):



In der Material Definition ändert man dann nur noch den Wert von stdMatAlphaBlendMode auf blend. Nicht vergessen, auf Übernehmen zu klicken und speichern! (Auf das Bild klicken für eine größere Version):



Das Ergebnis im Spiel:

04.jpg


Andere Vorgehensweise, aber gleiches Ergebnis.


Hat man, wie hier, nur eine Meshgroup und will nur einen Teil des Meshes transparent machen, bleibt nur der Weg über die Transparenz der Textur (die eben erläuterte zweite Alternative).
Als Beispiel habe ich mal eine Textur erstellt, bei der nur ein Teil des Pferdebauches transparent ist. Die Textur sieht so aus:

textur05.jpg


Und wenn man sie in SimPE importiert hat, sieht das so aus (auf das Bild klicken für eine größere Version):



Die Änderung in der Material Definition beschränkt sich, wie oben auch, auf das Eintragen von "blend" bei stdMatAlphaBlendMode (auf das Bild klicken für eine größere Version):



Und im Spiel sieht das dann so aus:

05.jpg



So, und jetzt noch ein paar Worte zum stdMatCullMode, den ich hier wieder auf cullClockwise gesetzt habe.
Wie ich ganz oben ja schon mal erläutert habe, steuert man mit diesem Parameter, ob nur die Vorder- oder nur die Rückseite oder beide Seiten der Polygone auf dem Bildschirm gemalt werden. Bei diesem Pferd wäre das, weil es ja ein rundum geschlossener Mesh ist, die Aussenseite des Pferdes bei cullClockwise, die Innenseite bei cullCounterClockwise und Innen- und Aussenseite bei none.
Man sieht also, dass bei dem Originalpferd "none" völlig nutzlos ist - man sieht die Innenseite des Pferdes ja sowieso nicht, das Ding hat ja keine Öffnung wie z.B. eine Vase, bei der man in das Innere sehen könnte.
Bei den transparenten Recols könnte man dagegen schon darüber nachdenken, denn wie man auf den Bildern oben sehen kann, sieht man auch jetzt nur die Aussenseite des Pferdes. In der Realität würde man jetzt aber durch das Pferd hindurchsehen können, weil es ja transparent ist, und so auch die Innenseite der Rückseite sehen.
Auf dem nächsten Bild habe ich deshalb mal beide Varianten nebeneinander gestellt:

06.jpg


Links haben wir stdMatCullMode auf cullClockwise - man sieht nur die Aussenseite des Pferdes. Rechts sitzt stdMatCullMode auf none, deshalb kann man auch die Innenseite sehen.
Dieses Verfahren funktioniert jedoch nicht gut, wenn man die Transparenz für die Meshgroup eingestellt hat (stdMatAlphaMode = blend) und trotzdem Teile der Textur undurchsichtig sind, wie im Beispiel mit dem Loch im Bauch :lol:. Dann kriegt man leider die volle Breitseite des Darstellungsproblems ab, das ich oben schon mal beschrieben habe. Sieht so aus:

07.jpg


Links wieder cullClockwise, rechts none.
In diesem Fall könnte man das Problem nur mit zwei Meshgroups beheben - eine für den transparenten Teil, eine für den undurchsichtigen. Bei der Material Definition für die undurchsichtige Meshgroup lässt man dann stdMatAlphaBlendMode auf none und stdMatCullMode auf cullClockwise, für die transparente Meshgroup setzt man stdMatAlphaBlendMode auf blend und stdMatCullMode auf none, dann tritt das Problem nicht mehr auf, und es werden auch nur die Polys für den transparenten Teil verdoppelt. (Okay, ich hör schon auf. Das war jetzt... zuviel des Guten. =))

Man muss einfach von Fall zu Fall ausprobieren, was besser aussieht. Und immer dabei bedenken, dass stdMatCullMode = none die Anzahl der Polys verdoppelt!

Zum Abschluss noch eine rar-Datei, die alle Bilder, steffors Meshpackage und alle meine Testrecolors enthält, für diejenigen, die sich das nochmal direkt ansehen möchten. Die packages, die mit "NC" enden, sind die mit stdMatCullMode = none.
transparenz.rar

Nun hoffe ich, das war soweit verständlich und dass ihr Spass habt beim Ausprobieren.
Fragen jedweder Art einfach wieder hier stellen. :lalala:

LG!
 

Zur Zeit aktive Besucher

Zurück
Oben Unten