Mir ist im LS13 schon aufgefallen dass der Heaptiptrigger nicht immer nach der Richtung des Anhängers, etc. gesetzt wurde.
Zuerst dachte ich es wäre ein Bug vom LS, aber kann nicht sein da die Fahrzeuge beim Kaufen auch richtig gesetzt werden. Hab mich damit auch nicht weiter auseinandergesetzt.
Jetzt hab ich den Heaptiptrigger nach LS15 konvertiert und das Script verbessert. Der Heaptiptrigger kann jetz auch aus Schaufeln heraus erstellt werden.
Als Richtungsgebender Node wurde self.shovelTipReferenceNode verwendet.
Jetzt wollte ich auch den oben genannten Bug beseitigen. Das Problem wurde auch gefunden:
Wenn man im Editor ein Objekt um die Y-Achse dreht, dann erhöht sich der Wert bis 90° (1. Quadrant), dreht man weiter werden x & z auf -180° gesetzt und y geht Richtung 0° (2. Quadrant), danach geht der y-wert bis auf -90° (3. Quarant), x & z werden zurück auf 0° gesetzt und y von -90° bis auf 0° zurück.
Habe Stunden, Tage überlegt und probiert. Gestern dachte ich: yes, bug gefixt. Heute musste ich feststellen dass es doch nicht passt.
Mit dem bisher erarbeiteten Script funktioniert das ganze in der Ebene wunderbar, aber im Hang nicht mehr .
[lua]
local dx,dy,dz = localDirectionToWorld(self.shovelTipReferenceNode, 0,0,1);
setRotation(self.childShovelTipReferenceNode, math.asin(dy)+ math.rad(5), 0, 0);
local yRot = 0
local xd, yd, zd = localDirectionToWorld(self.childShovelTipReferenceNode, 0, 1, 0)
yRot = Utils.getYRotationFromDirection(xd, zd)
setRotation(self.pivotNode, 0, yRot, 0)[/lua]
Das Funktioniert bisher so: im self.shovelTipReferenceNode wird ein Child erstellt dass die x Rotation der Welt annehmen soll (kompensieren gegenüber dem self.shovelTipReferenceNode), der x winkel ist er arc sin von dy + einen offset von 5° (um eine eindeutige richtung vorzugeben, ohne offset ist die richtung zufällig). danach wird aus dem child über xd und zd der Winkel für y generiert.
Jetzt weis ich nicht mehr weiter...und meine mathematische Kenntisse und Vorstellungskraft reichen derzeit nicht in die 3. Dimension dass ich das alleine zuende bringen kann.
Hab im Anhang den Mod zum testen.