Mehre Visible einträge oder matl_freetex? Was macht matl_freetex genau

Willkommen in der OMSI-WebDisk!
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet: = Englisch [EN], = Deutsch [DE], = Französisch [FR]. Wenn du die angegebene Sprache nicht beherrschst, schreibe auf Englisch!
  • Guten Tag an alle!


    Ich hab mir ein Blatt in Blender gebaut und es mit einem Visible Eintrag eingetragen.

    Das 1. Visible ist mit der 0 da damit das Objekt in der ausgangs lage sprich in einer Ablage liegt.

    Wenn ich den anklicke ist das Objekt wo mit dem Visible Eintrag1 da wo ich es möchte xD


    Jetzt möchte ich dem Objekt mit dem Visible 1 einen Textur wechsel machen oder das gleiche Objekt nehmen, mit [matl] eine andere Texture versehen und mit dem Visible 2,3,4 usw. versehen.


    Ich hab die 2. möglichkeit genommen. Dies funkt aber nur für den Visible 0 und 1. 2 und mehr werden nicht ausgeführt.


    Deshalb wollte ich wissen ob es mit dem matl_freetex geht und wie es geht?


    Eine Antwort würde mich freuen!


    EDIT: die Einträge:


  • [matl]

    bla.png

    0


    [matl_freetex]

    bla.png

    Dienstplan


    matl_freetex ordnet dem Dienstplan eine andere Textur zu wenn das im Script eingetragen ist, Das was unter dem bla.png steht ist die Stringvariable (S.$.Dienstpan) die dann so mit nem "Auslöser" im Script stehen muss. Wichtig ist das in der model.cfg immer die original Textur zugeordnet sein muss. Im Script wird diese dann geändert in dem man es z.B. so schreibt:


    (L.L.dienstplan_vis) 1 =

    [if}

    "gewuenschte_Textur.png" (S.$.Dienstpan)

    {endif]



    Und nun, warum das Script bei dir nicht das macht was es soll: Bei der Art von Trigger die du gewählt hast gibt es nur 1 und 0. Weg und da.

    #NICHTSELBSTVERSTÄNDLICH

  • Pencil Washington


    Ich hab jetzt so weit wie ich es verstanden hab umgesetzt. Erfolglos


    Einmal editiert, zuletzt von MBMANSU ()

  • Das war nur eine Erklärung was das freetex macht. Bei ist das Problem noch das aus


    1 (S.L.dienstplan_vis) dann ja auch noch 2 (S.L.dienstplan_vis) und so weiter werden muss damit der Dienstplan entsprechen angezeigt wird. Beschreib doch mal wann aus z.B. Dienstplan 1, Dienstplan2 werden soll. Zum Beispiel Map abhängig, Datum abhängig oder weil du es durchklicken willst, bis du den richtigen hast usw.

    #NICHTSELBSTVERSTÄNDLICH

  • Zum Beispiel Map abhängig, Datum abhängig oder weil du es durchklicken willst, bis du den richtigen hast usw.

    Sollte das Durchklicken ermöglichen.

  • Also, so wie du das im ersten Post definiert hast, kann dies nicht so funktionieren. Du hast die Dienstplan.o3d bestimmt nur mit einer Textur exportiert, richtig? Der Matl-Eintrag muss diesen Texturnamen tragen, mit welchen das Objekt exportiert wurde. Wenn die sich nicht gleichen, dürfte sogar ein Fehler erscheinen. Irgendwas mit TV0 oder so ähnlich.


    Am besten ist eben der Weg über scriptseitigen Austausch.


    Dazu folgendes zum Verständnis:


    [matl]

    beispieltextur.png <----- Hier muss die Textur angegeben werden, mit der das Objekt exportiert wurde.

    0


    [matl_freetex]

    beispieltextur.png <----- Muss den gleichen Namen haben, wie oben - sie ist ja das Ziel für den Austausch.

    Texturtauschvariable <--- Dies ist die Stringvariable, in der im Script der Name der Tauschtextur angegeben wird.


    Diese Variable muss in der Stringvarlist auftauchen.


    Als Beispiel im Script:


    (L.L.Dienstplan_Seite) 1 =

    {if}

    "dienstplan_seite_1.png" (S.$.texturtauschvariable)

    {endif}

    (L.L.Dienstplan_Seite) 2 =

    {if}

    "dienstplan_seite_2.png" (S.$.texturtauschvariable)

    {endif}


    ...usw.



    Wenn die Seite 1 des Dienstplans aktiviert wird, so wird die beispieltextur.png mit dienstplan_seite_1.png ausgetauscht. Das gleiche dann mit Seite 2 usw.

    Mit Visible steuerst du dann am besten nur die Sichtbarkeit der Dienstpläne. Visible 0 trägt der abgelegte Dienstplan und Visible 1 bekommt der geöffnete.


    Mit Visible 0 wäre der abgelegte Dienstplan sichtbar und der geöffnete unsichtbar. Mit 1 dann genau umgekehrt. Muss dann natürlich im Script noch definiert werden bezüglich der Ansteuerung.

  • Dazu folgendes zum Verständnis:

    Ich hab es jetzt soweit probiert wie ich es verstanden hab.

    Geklappt noch nicht!

    Hier die ausschnitte:




    Ich hab glaube ich nicht den Eintrag in der Modell.cfg nicht mehrmals eingefügt?


    Aber erstmal deine Antwort;)

  • Hallo @MBMANSU


    Das kann auch nicht gehen.


    Es muss im Script immer

    (S.$.dp1) heißen, da dort ja die Texture geändert.


    (L.L.Dienstplan_Seite) 1 =

    {if}

    "Fahrzeiten\Fahrzeiten_001.jpg" (S.$.dp1)

    {endif}


    (L.L.Dienstplan_Seite) 2 =

    {if}

    "Fahrzeiten\Fahrzeiten_002.jpg" (S.$.dp1)

    {endif}


    usw

    #NICHTSELBSTVERSTÄNDLICH

  • Das kann auch nicht gehen.

    Ach sooo! Werde es umändern und ausprobieren:thumbup:


    Es muss im Script immer

    (S.$.dp1) heißen, da dort ja die Texture geändert.

    Habs jetzt ausprobiert und immer noch erfolglos?(


    Die Einträge:


    Soll es nur einmal diesen eintrag geben oder mehrere die ich umbennene

    z.B:


    Mesh

    xxxx\Dienstplan2.o3d mit anderen matl_freetex abschnitten oder nur einmal?


    Einmal editiert, zuletzt von MBMANSU () aus folgendem Grund: Ein Beitrag von MBMANSU mit diesem Beitrag zusammengefügt.

  • Was genau klappt denn nicht? Nur der Texturwechsel, oder auch dass der Plan aus der Ablage genommen wird?

    Ist das denn dein komplettes Script, was du zuletzt gepostet hast?

    Du brauchst natürlich noch einen Abschnitt, der dafür sorgt, dass mit jedem Klick auf den Dienstplan die Variable "Dienstplan Seite" mit 1 addiert wird, (und am Ende auch wieder zurückgesetzt wird).

    Der Eintrag in der model.cfg sollte so reichen, da gehört nicht für jede Textur ein eigenes Mesh hin. Du willst die Textur schließlich auf ein und demselben Mesh austauschen.

    Damit der Dienstplan "bewegt" werden kann, musst du die entsprechende Variable "dienstplan_vis" natürlich auch noch in die varlist eintragen.

    Das wären mal so ein paar Sachen, die mir auf den ersten Blick auffallen.

  • Schau in das Zitat hinein....

    Das 0/1 Visible funktioniert. Hilfe benötige ich beim Texturtausch;)

  • ich habe etwas derartiges auch noch nie umgesetzt.

    Ok. Schade


    Ich erkläre es trotzdem mal von neu:


    Der Dienstplan ist in seiner Ablage.

    Mit Visible 1 wird er in seine possition z.b. Klemmbrett gebracht.


    Das funktuniert!


    Das Problem:


    Jetzt ist das Problem der Textur Tausch. Auf dem Klick darauf wird die Textur 1 zu 2 umgeändert. Das ist aktuell das Problem.

  • Pass auf, du machst am besten mal zwei Trigger. Der eine Steuert die Sichtbarkeit und der andere dann den Seitenwechsel. Auf dem sichtbaren Dienstplan sollten dann dementsprechend zwei Klickspots eingerichtet werden.


    {trigger:Dienstplan_visibility}

    (L.L.dienstplan_sichtbar) ! (S.L.dienstplan_sichtbar)

    {end}

    So, damit wird schonmal zwischen 0 und 1 gewechselt und das egal, ob du auf den verstauten oder sichtbaren Dienstplan klickst. Der verstaute Dienstplan und der Klickspot auf dem sichtbaren nutzen den gleichen Trigger.

    Und nun der Klickspot für die Seiten:


    {trigger:Dienstplan_Seite}

    (L.L.dienstplan_seite) 1 + (S.L.dienstplan_seite)


    (L.L.dienstplan_seite) 10 > ' Die 10 stellt die maximale Anzahl der Seiten dar. Musst du dann abändern, je nach dem, wie viele Seiten du hast.

    {if}

    0 (S.L.dienstplan_seite)

    {endif}

    {end}


    Damit erhöht sich der Wert immer um einen Schritt, sobald geklickt wird. Erreicht der Wert mehr als 10 (Nur als Beispiel), wird wieder auf 0 gesetzt.


    Im Script selbst sollte das dann in etwa so aussehen:


    (L.L.dienstplan_seite) 0 =

    {if}

    "dienstplan_seite_1.png" (S.$.dienstplan_tauschstring)

    {endif}

    (L.L.dienstplan_seite) 1 =

    {if}

    "dienstplan_seite_2.png" (S.$.dienstplan_tauschstring)

    {endif}

    ...

    ...

    ...

    (L.L.dienstplan_seite) 10 =

    {if}

    "dienstplan_seite_9.png" (S.$.dienstplan_tauschstring)

    {endif}


    Das sollte vom Prinzip her so funktionieren.

  • [...]

    Danke für deine Antwort!

    Bin aber immer noch erfolglos...


    Habs soweit umgesetzt wie du es beschrieben hattest.


    Zur Not würde ich auch die Textur selber ersetzen. Trotzdem Danke an alle!

  • Hi, keine Ahnung ob das hilft, aber so wie ich es verstanden habe, willst du ein Objekt per Klickspot machen. Ich habe das so gelöst:


    Eintrag Model:

    Script:

    Code
    {trigger:phone}
        (L.L.vis_Display_on) 1 + (S.L.vis_Display_on)
        1 >
        {if}
    
        0 (S.L.vis_Display_on)
        {endif}
    {end}

    Folgendes in irgendeine varlist, auf die der Bus zugreift:

    Code
    vis_Display_on


    Das Handy geht per Klick ein/aus, ist aber Mesh bedingt. Funzt jedenfalls au als Klickspot

    Liebe Grüße, dari19!