[Gelöst] Drehung eines Objektes um 90° durch Mausklick

Das Forum befindet sich im reduzierten Betrieb. Die Addon- und Supportforen bleiben weiterhin verfügbar.
Bitte beachte, dass OMSI nicht mehr weiterentwickelt wird. Ein Teil der Entwickler widmet sich inzwischen der Entwicklung eines neuen Simulators. Weitere Informationen zum LOTUS-Simulator findest Du hier.
  • Hallo Leute,


    Ich habe ein Objekt für OMSI erstellt. Nun möchte ich dass Objekt (im Spiel) durch Mausklick drehen (in meinem Fall um 90°).


    Noch mal langsam

    :D

    :


    Ich öffne das Spiel - klicke das Objekt an - daraufhin soll es sich (um 90°) drehen - wenn ich es nochmal anklicke soll es sich wieder in die Ausgangsposition bewegen.



    Ist es bei solch einer Drehung nur möglich dass das Objekt von einer Sekunde auf die andere die Drehung macht, oder ist es auch möglich dass man die Drehgeschwindigkeit nach dem anklicken bestimmen kann?



    Ich freue mich auf eure Script-Vorschläge!

    :thumbsup:



    Vielen Dank im Voraus!


    Lukas

  • Es gibt hier 2 Möglichkeiten:
    1) Du legst eine maximale Drehgeschwindigkeit in der Model.cfg fest
    2) Du lässt deine Variable pro Frame über ein Timegap volllaufen.


    Variante 1:


    Für die Umsetzung benötigst du jedeglich ein Mouseevent in einem Script deiner Wahl, das so aussehen kann:


    Code
    1. {trigger:Objektrotation}
    2. (L.L.Deine_Animationsvariable) ! (S.L.Deine_Animationsvariable)
    3. {end}


    o.g. Scriptschnipsel negiert deine aktuelle Variable ganz einfach. Ist die Variable "Deine_Animation" 1, also True, wird diese False, also 0 - und vice versa.


    Für die Animation benötigst du in der Model.cfg deines Objektes folgenden Eintrag:


    Code
    1. [mouseevent]
    2. Objektrotation
    3. [newanim]
    4. origin_from_mesh
    5. anim_rot
    6. 90
    7. maxspeed
    8. 400


    je nach Objektursprung in Blender musst diesen entweder in Blender oder mittels origin_rot_x, origin_rot_y oder origin_rot_z so drehen, dass die Rotationsachse auch die ist, um die sich das Objekt letztendlich drehen soll.
    "400" gibt die Rotationsgeschwindigkeit an. Was dieser wert genau macht, weiß ich nicht - musst einfach mal ein wenig rumtesten.

    ;)


    "Objektrotation" trägst du dann noch in eine Varlist deiner Wahl ein und voila - dein Objekt ist animiert!


    Variante 2:


    Variante 2 benötigt weniger platz in der Model.cfg, ist genauer abstimmbar (beispielsweise unterschiedliche rotationsgeschwindigkeiten (Langsam, schnell, langsam und wieder zurück), allerdings ist der Scriptschnipsel ein wenig größer.


    Der Ansatz ist prinzipiell der gleiche, erstere Variante sollte aber ausreichen.

    ;)
  • Danke für die schnelle Hilfe Chrizzly92!

    :)


    So, mein Problem ist: Wenn ich das Objekt ohne sämtliche "Script-Sachen" im Editor lade klappt alles. Füge ich nun die von dir genannten Script-Einträge ein, erscheint das Objekt im Editor nicht mehr. Es werden mir die Koordinaten angezeigt, aber ich kann es nicht mehr sehen.

    :(


    Hier sind die Objekt Datein - Vieleicht findet jemand meinen Fehler

    :thumbsup:



    Das Objekt heißt "Test" - das ist der Ordner Aufbau


    .sco Datei


    Inhalt model Ordner


    .cfg Datei


    Inhalt script Ordner


    .osc Datei


    .txt Datei

    Inhalt texture Orner


    Ich würde mich freuen wenn mir jemand helfen könnte!

    :thumbsup:



    Lukas

  • Er hat auch vergessen, dass bei newanim Variable noch das Script Variable hinzukommt.



    Noch ein kleiner Hinweis: das origin_from_mesh ist immer die X-Achse (Roter Pfeil oder ähnliches) und liegt da, wo auch das Objekt-Punkt von Objekt ist.


    Lieber Chrizzly, eigentlich müsste Deine_Animationsvariable in der Varlist eingetragen werden und nicht Objektrotation.

  • Den Eintrag komplett weglassen.


    So sieht es bei mir aus:


  • sorry, wenn du mal auf den Tacho schaust - sollte eventuell eher ins bettchen gehen.

    :P
  • So, ich hab jetzt den ganzen Abend verschiedenste Möglichkeiten durchprobiert - einmal war das Objekt da, ein anderes mal wieder nicht, und einmal war sogar die ganze Map verschwunden

    :D

    , aber gedreht hat es sich nie.

    :(


    Meine Frage ist: Könnte mir bitte jemand den genauen Inhalt der .sco, der .osc und der .txt Datei für mein Objekt erstellen (wichtig: mein Objekt heißt "Test")? Ich hab nämlich leider überhaupt keinen Überblick mehr was jetzt richtig und was falsch ist, und ich weiß leider auch gerade nicht mehr in welche Datein die oben genannten Script-Einträge hin sollen...

    :(


    Ich würde mich freuen wenn mir jemand helfen könnte!

    :thumbsup:



    Lukas

  • hmn, dann ist es mir ein rätsel, warum es nicht klappen sollte. Was sagt denn das OMSI Logfile dazu?