Offizielle Tutorials

  • Hallo! Ich werde hier in nächster Zeit Informationen zusammentragen, die das grafische Ändern von Singlesdaten betrifft. Am Anfang der nächsten Woche wird der neue Patch mit den Extensions rauskommen, das vereinfacht euch dann das Einbinden von Daten und auch das Tauschen. Wenn jemand wissen will, wie irgendwas funktioniert, pm an mich (bitte hier nicht posten) und ich erklär das dann hier soweit es mir möglich ist.



    1. Allgemeines zu den Ordnerstrukturen und Datentypen


    Die wichtigsten Ordner für euch sind:


    Mesh Ordner:
    hier liegen alle Objekte, die im Spiel sind und kein Skelett haben, heißt: Stühle, Sofas, Dekoobjekte usw. Der Name Mesh bezeichnet die eigentliche Geometrie eines Objektes. (heißt: mehrere aneinanderhängende Polygone)


    Character Ordner:
    hier liegen alle Meshes, die ein Skelett haben. Das sind hauptsächlich Charactere selbst, ihre Outfits und ihre Frisuren. Das gilt für alle Ordner, die mit Character anfangen. Sie bezeichnen dann die unterschiedlichen Level of Detail Stufen. (LoD könnte man auch mit Qualitätsstufen übersetzen. Low Objekte haben weniger Polygone als High Objekte)


    GameObject Ordner:
    fast jedes Mesh besitzt ein dazugehöriges GameObject. (alle außer die Meshes, die ein Skelett haben und nicht Charactere sind) Dort wird die Objektklasse vereinbart. Die meisten sind StandardGOs, es gibt auch besondere, wie zum Beispiel WallInstallationGOs (z.Bsp. Türen) oder Fußböden (FloorGOs) Unter meshResourceNameArray wird dann das Mesh dem GameObject zugewiesen.


    Texture:
    hier liegen - ihr habt es geahnt :) - die Texturen der Objekte


    GuiTexture:
    hier liegen die kleinen Icons für die Kaufmenüs (die großen Icons für den Outfitshop liegen in Texture)


    Script Ordner:
    alles was mit menu anfängt betrifft die Kaufmenüs. Dort werden einzelne Game Objekte in ein Menü gehangen. Und der wichtigste Ordner:


    Extensions:
    wenn ihr den Patch dann nächste Woche habt, könnt ihr hier Beispielordnerstrukturen verändern und eigene Extensions einfügen, ohne in den Originalordnern Daten verändern zu müssen.

  • 2. Texturen für eigene Tapeten


    Allgemeines zu allen Singlestexturen


    Die Pixelanzahl der Texturgröße sollte eine 2er Potenz sein (128*128, 256*256, 512*512) und als .png vorliegen. Daran denken, das eine Zweierpotenz höher das Vierfache an Speicherplatz verbraucht. Das Programm generiert dann zur Laufzeit eine dazugehörige .dds Datei (die denselben Inhalt hat, aber komprimiert ist)


    Tapetentexturen (wallpaper)



    Das Grüne ist der Stuck, also das obere an der Wand. Die Fussleiste ist unten, die Tapete ist im Spiel dazwischen und wird fünfmal gekachelt.


    Die Textur wird in der Höhe wiederholt, wenn ihr Ränder an den Wiederholungskanten vermeiden wollt, sollte der obere Rand dieselbe Farbe wie der untere Rand haben. Die hier im Beispiel schwarze Tapetenregion wird im Spiel auch horizontal "nebeneinander gehängt", wenn ihr Ränder vermeiden wollt, sollte der linke Rand des schwarzen Rechtecks dieselbe Farbe haben wie der rechte.


    Das Graue in der Beispieltextur könnt ihr in der Farbe der Ränder eurer Tapete einfärben. Das sind nur "Sicherheitsränder" für das MipMapping. Wenn die nicht in der Textur wären, würde beim Wiederholen der Textur in die Farbe des Stucks bzw. der Fussleiste geblendet werden. (Weil die, da wo wiederholt wird, angrenzen)

  • Hier ist mal ein Beispielmaterial für einen Character (aus dem Female Outfit aus dem Extensionpack):


    Rotor.EngineTools.Material 4
    {
    Rotor.Meta.int cullMode = 1
    Rotor.Math.Vector4F diffuseColor = 1 1 1 1
    Rotor.Meta.String diffuseTexture = AliceDress03
    effect = characterShaderRad
    Rotor.Math.Vector4F emissiveColor = 0 0 0 1
    name = Alice70sDress02Mat
    Rotor.Meta.float power = 80
    Rotor.Math.Vector4F specularColor = 0.03306 0.03306 0.03306 0
    #additional line:
    Rotor.Meta.bool transparent = false
    }


    - cullMode bestimmt, ob das Material doppelseitig ist, oder nicht. 1 heißt ja, 0 heißt nein.
    - mit diffuseColor könnt ihr das gesamte Kleidungsstück überfärben. Die 4 Werte stehen für RGB und Alpha. Der Alphawert wird nur genommen,
    - wenn Rotor.Meta.bool transparent auf true gesetzt ist. 0 bedeutet völlig unsichtbar, 1 bedeutet völlig sichtbar.
    - diffuseTexture gibt den Texturnamen ohne Endung an. Wenn ihr eine eigene Textur verwenden wollt, schreibt hier den Namen eurer in Texture abgespeicherten Textur rein
    - effect beschreibt den Shader. Hier nichts ändern.
    - mit emissiveColor könnt ihr Materialien leuchten lassen. Auch hier wieder die ersten 3 Werte RGB, den 4. ignoriert ihr einfach...
    - name ist der Materialname in Maya. Eine Änderung hat keinen Einfluß auf das Spiel.
    - Rotor.Meta.float power gibt die Grüße des Highlights an. Je größer die Zahl, desto größer das Highlight
    - specularColor gibt die farbe des Highlights an. Wieder RGB


    so weit, so gut.