Platzhaltertexturen und Blender

  • Also bin derzeit leider mal wieder am Ende. *ka*


    Mal wieder so ein Mist mit den Erklärungen in den Manuals. Obwohl die Theorie ja vollkommen verstanden wurde, hapert es leider an der Umsetzung. Nun ich definiere nun meine Platzhaltertexturen.


    Material: primarynumber_0 steht für eine einstellige Zahl beinhaltet primarydigit_0

    Material: primarynumber_1 steht für eine zweistellige Zahl beinhaltet primarydigit_0+ beinhaltet primarydigit_1

    Material: primarynumber_2 steht für eine dreistellige Zahl beinhaltet primarydigit_0+ beinhaltet primarydigit_1 + beinhaltet primarydigit_2

    usw....


    Kommen wir also zum Thema Platzhaltertexturen.

    Da dieser Begriff in Blender nicht googelbar ist, gehe ich davon aus, dass hier gemeint ist, dass eine Platz für eine später zu ersetzende Textur gemeint ist, bzw. es sich hier um ein 3dsMax Sache handelt. Die Theorie ist gut erklärt. Die Textur wird ja naher im Spiel gegen die eigentliche ersetzt.


    Aber was ist jetzt mit den P_Num_0, P_Num_1, P_Num_2 ..... P_Num_9 wie werden die definiert und wo kommen die hin?


    Das ist dann gleich so schlecht erklärt, dass man das Ratespielchen öffnen kann. *jippy* Hab da ja jetzt 600 Variationen versucht und nicht funktioniert. Ich bekomme immer nur eine Null angezeigt. Wenn ich die P_Nums ändere dann ändert er die ACE Angabe auf allen P_Nums Danke Blender!


    Also mal ganz ehrlich. Existiert irgendwo auch nur eine brauchbare Erklärung wie man diese Platzhalter in Blender richtig definiert?


    Und Google wurde wirklich benutzt:

    https://www.google.com/search?q=blender+platzhalter+texturen&oq=blender+platzhalter+texturen&aqs=chrome..69i57j69i60.5083j0j4&sourceid=chrome&ie=UTF-8


    Liefert wirklich keine Erklärung wie man so eine Textur denn definieren soll. In den Manuals steht nur die Theorie. Wenn ich die als Material definiere funktionierts im Spiel nicht.

  • Recht einfach das ganze… ich beschreibe es mal fix vom Handy aus.


    Objekte für das Numbering erstellen. Also die Primarydigits.

    Jedes Objekt braucht beim Export in den TS eine Textur auf die referenziert wird. Das ist der ominöse Platzhalter.


    Durch das Skript wird dann später die Platzhaltertextur durch die im Textureset definierte Textur ersetzt, die für die zu wählende Variable genutzt werden soll. So funktionieren u.a. Die Bezeichnungen bei den Signalen und Loks. Bei Signalen sieht man übrigens immer zunächst die Platzhalter wenn sie neu platziert werden ;)

  • Jedes Objekt braucht beim Export in den TS eine Textur auf die referenziert wird. Das ist der ominöse Platzhalter.

    Ja das ist auch alles klar. Die Frage ist nur was ich in den Platzhalter im Blender eintrage?


    Ich habe jetzt ein Milepost.

    Ich habe jetzt ein Objekt primarydigits_0 mit dem Material primarynumber_0 und im Texturplatzhalter prymerynumber_0.ace im Material definiert die dann später auch korrekt angezeigt wird. Wenn ich jetzt exportiere und eine Einstellige Zahl eingebe wird die Textur auch wirklich ersetzt und eine 0 angezeigt. Aber ich kann auch eine 5 eingeben und dennoch wird die 0 Textur angezeigt.


    Er halt also wunderbar erkannt dass er die primarydigits_0 -> primarynumber_0 ansteuert. Nur das Problem ist, egal welche einstellige Zahl ich nehme. Es erscheint immer nur die 0.


    Davon resultiert, dass mit der Platzhalterdefinition im Blender irgendwas nicht stimmen kann!


    Letzt endlich ersetzt er ja die prymerynumber_0.ace durch die entgültige num0.ace und alles ist korrekt im Spiel. Nur jucken ihn die anderen 9 Ziffern nicht,

  • Also erstmal sind Namingconventions bei sowas strikt und diese Platzhaltertexturen müssen zwingend primarynumber_X lauten. Allerdings bist du soweit auf dem Holzweg, da das bereits die Texturnamen sind, also primarynumber_0.ace für eine einstellige Zahl. Das in den DevDocs vorkommende P_Num_0 ist der Materialname, aber der ist völlig irrelevant und könnte auch Bananenbrot heißen :D

    Das zweite, was noch wichtig ist, ist die korrekte Bezeichnung des Objekts mit den Platzhalternummern mit 1_xxxx_primarydigits_1 für das einstellige Objekt, wobei xxxx die LOD-Distanz ist. Demach also jedes weitere mit 1_xxxx_primarydigits_2, usw. Ein primarydigits_0 gibt es nicht! Vielleicht hilft das ja weiter^^

  • Ja das war tatsächlich der Holzpfad, wird jetzt aber langsam verständlich. Wenn der Materialname keine Rolle spielt, geht es hier nur um die fiktive Texturbennenung im Blender. Es geht also um den Texturnamen als Holder!


    Ich werde es ausprobieren.


    Danke



    <3:!:


    Leider kommt trotzt Allem nur Misst dabei rum. Wo er die 023 im TS her nimmt? *haumichweg*


    Und eintragen kann ich da was ich will. kommt wird immer die 023 angezeigt.


    P.s. hab den Schreibfehler noch im Objektnamen ersetzt. Tut trotz allem immer noch nicht. Das Richtig Objekt steuert er an. Nur immer die Gleichen Zahlen erscheinen.


    0 oder 02 oder 023 je nach dem ob ich eine Einstellige- Zweistellige oder Dreistellige- Zahl eingebe.

  • Deine drei Stufen der Hektometertafeln heißen alle 1_0300_primaraydigit, was nicht funktionieren kann. Auch wenn du die Schreibfehler (so hoffe ich alle 3) behoben hast müssen diese zwingend 1_0300_primarydigits_1, 1_0300_primarydigits_2 und 1_0300_primarydigits_3 heißen ^^


    Hast du denn auch ein Primary Named Textureset erstellt mit allen 10 Zahlen und das im Milepost-BP eingetragen? Davon hast du noch nix gezeigt :/

  • Hast du denn auch ein Primary Named Textureset erstellt mit allen 10 Zahlen und das im Milepost-BP eingetragen? Davon hast du noch nix gezeigt :/

    Das erstere ja, das zweitere verstehe ich nicht, da davon auch rein gar nichts in den Dokus steht. Das ist ja genau das was ich meine.


    Im Spiel werden auch die richtigen Texturen angezeigt. Nur das Problem ist, dass die Zahlen starr sind. Egal was ich als Wert in den Milepost eintrage. Es kommt immer die 023. Es sind jedoch die richtigen aufgelösten Texturen.


    Er erkennt auch ob es eine einstellige, zweistellige oder dreistellige Zahl ist. Und der zeigt dann im TS entsprechend eben nur die 0 oder 02 oder 023 an. Aber woher er diese Zahlen nimmt bleibt mir ein Rätsel.


    Um es verständlicher darzustellen. Im Spiel sehe ich ich die num0.ace die num2.ace und die num3.ace, aber halt eben nicht den Wert, den ich im Milepost eingebe.


    Am Ende werden die Platzhaltertextruen durch die NumX.aces ja ersetzt. Ich erkenne genau die num.ace Texturen im Spiel. Nur der Wert der angezeigt wird passt nicht,


    Eingabewert 500

    primarynumber_0.ace wurde also durch num0.ace im Spiel ersetzt.

    primarynumber_1.ace wurde im Spiel durch num2.ace ersetzt

    primarynumber_2.ace wurde im Spiel durch num3.ace ersetzt


    usw.... eigentilich müssten die Platzhalter so ersetzt werden:

    num5.ace num0.ace num0.ace

  • Gut das sieht ja erstmal alles so aus, wie es sein sollte und dass es zumindest schon mal die Anzahl der Zeichen erkennt ist ja ein Fortschritt. Warum es allerdings die falschen Texturen benutzt, ist mir allerdings noch ein Rätsel. Das kann eigentlich nur an den zugewiesenen Platzhalter-Texturen oder dem TextureSet liegen :/

  • Nein daran liegt es nicht. Es spielt praktisch keine Rolle ob das Hauptobjekt überhaupt da ist. Mich würde interessieren wie dein Texturhalter unter 0, 1, und 2 aussieht?


    Zitat


    Steht bei Blueprint Set ID auch darüber der richtige Pfad im BP Editor?

    Die Pfade passen. Er nimmt ja auch am Ende die richtigen Texturen. Aber dennoch stimmt was nicht. Wo nimmt er denn die 023 denn überhaupt her? Wie gesagt, im Blender sind nur die Platzhalter wörtlich eingetragen. Ein Export der numx.ace ist somit nicht möglich. Im Spiel erscheint ja die richtige Textur was den Texturstil aus dem Set angeht. Also nimmt er auch die richtige Textur aus dem richtigen Ordner. Warum er aber nicht die richtige Textur für eine Richtige zahl nimmt??? Das ist ja das Problem.


    Höchtens wäre halt eben das, dass da nicht wirklich primarynumber_x.ace usw... eingetragen wird. Aber das glaube ich weniger. Er ersetzt ja genau diesen Halter durch die num0.ace aber warum nicht durch die num5.ace wenn ich 500 eingebe?

  • Was mir gerade bei den Bildern von dir aufgefallen ist, dass du offenbar die einzelnen Zahlen Quads den Platzhaltertexturen falsch zugewiesen hast. Im Falle der dreistelligen Tafel müsste das so aussehen:


    Denn p0 ist die erste Zahl, die man eingibt und damit folglich die letzte, wenn man 3 eingegeben hat. p2 ist die zuletzt eingegebene Zahl, also die linke im entsprechenden Feld. Das wäre im Beispiel von 500 -> 5=p2, 0=p1, 0=p0. Vielleicht hilft das ja bei deinem Problem ;)

  • Also bin jetzt mal wieder bei diesem Problem gelandet weil ich es jetzt zeitnah umsetzen muss. Und weiterhin will es nicht. Hab das jetzt auch gedreht. Es erscheinen nach wie vor immer die selben Zahlen, jetzt halt in umgekehrter Reihenfolge.


    Ich weis nicht die Materialbezeichnung sollte ja Banane sein.

    Dann im Material ist eingetragen P_Num_0 = primarynumber_0.ace, P_Num_1 = primarynumber_1.ace, P_Num_2 = primarynumber_2.ace


    Im Texturset seht oben jeweils nur die Zahl 0, 1, 2, 3,4 usw....


    Und lädt trotzdem nicht. Also kann der Fehler nicht daran liegen. Was meint der in der Doku mit Quads = Faces richtig?


    Bei mir verhält sich das eben genau anders rum. Ich kann auch in die Texturauswahl Banane schreiben (kein Witz habs probiert siehe Screen). Es kommt zum selben Ergebnis.


    Es ist zwingend egal was ich da Reinschreib, selbst wenn ich den Kanzler dort erwähne. Es juckt ihn gar nicht, Auch denn da drin steht:

    primarynumber_0

    oder

    primarynumber_0.ace


    Juckt ihn genau so viel. Ich denke der Fehler kann nicht im Objekt liegen.


    Wenn ich jetzt im TS 1 oder 2 oder 3 Stellige Zahl eingebe, kommt die richtige Primirydigit Objekt, und es erscheinen die richtigen Texturen. Nur die falschen Zahlen. Die ändern sich überhaupt nicht.


    Also kann mit dem Platzhalter was nicht stimmen, siehe Screen.


    Mich interessiert was kommt da rein, was in Screen SC4 mit dem Pfeil markiert ist? Ihn scheint es eben überhaupt Null zu jucken was auch immer ich da eintrage! Er kommt zum selben Ergebnis. Und auch wenn ich dort genau das eintrage was in der DOKU hier steht:

    https://1a62f37f-a-5d594bf3-s-sites.googlegroups.com/a/railsimdev.com/dtgts1sdk/reference-manual/art-guidelines/asset-authoring-guidelines/fig13.PNG

    Also pei P_Num_0 = primarynumber_0.ace auch dann juckt es ihn nicht.


    Folglich kann ich mich nur Fragen ob die Platzhaltertextur dort auch wirklich eingetragen wird, und nicht wo anders hin muss?


    So Leute habe es endgültig geschafft und möchte mal zeigen wie, damit sich nicht der Nächste ärgern muss.



    Und zwar bezüglich des Addons in Blender wird PNG in ACE gewandelt.


    Daher habe ich 3 PNG erstellt

    primaraynumber_0.PNG

    primaraynumber_1.PNG

    primaraynumber_2.PNG

    und die in die Textures vom Milepost geworfen und in ACE Dateien mittels Converter convertiert. Jetzt diese Dateien einfach wählen und drauf legen auf die gewünschten Flächen (werden später ehe dann replacet).


    Also nicht primarynumber_0.ace sondern textures/primarynumer_1.png


    Exportieren und fertig.


    Alles paletti.


    Die Doku auf DTG ist einfach falsch da diese auf 3dMax resultiert.


    Nach dem Export wurde alle korrekt dargestellt.

  • Und lädt trotzdem nicht. Also kann der Fehler nicht daran liegen. Was meint der in der Doku mit Quads = Faces richtig?

    Damit ist gemeint, dass das Objekt, dass die TextureSet Textur erhalten soll (die Zahlen in dem Fall) lediglich aus einem Quad bestehen dürfen. Also eine Plane aus 2 Trishapes/dreieckigen Faces. Bei dir seh ich da Würfel als Objekttyp stehen. Das kann nicht funktionieren.