Ein paar fragen zu einer XML. Wegen bedeutungen der Befehle (Rootnode, rotlimit... etc)

  • So hi Jungs hier meine fragen.
    was ist der Unterschied zwischen einer rootnode und einem Index? manchmal verweisen animationen auf rootnodes und manchmal dann wieder auf indexe! Wieso das?
    hier ein Bsp:
    <part1 name="frontfront" animationClip="frontfrontClipSource" rootNode="0>7" />


    und hier die sachen mit INDEX:
    <joint component1="0" component2="1" index="0>1" rotLimit="0 0 0" transLimit="0 0 0" />
    <cuttingArea1 startIndex="6>10|0" widthIndex="6>10|1" heightIndex="6>10|2" groundthreshold="1" groundindex="6>" />


    so nun zur nächsten Frage:


    dieser bereich rotlimit und der bereich translimit, wo liegt da der Unterschied im Spiel anschließend was der mod tut?
    Bsp:
    <joint component1="0" component2="1" index="0>1" rotLimit="0 0 0" transLimit="0 0 0" />


    so und nun zur vorletzten Frage:


    welche "0" gibt mir eigentlich bei "rotlimit" und "translimit" was an?
    Oder wie kann ich das rausfinden welche "0" welchen animations bereich übernimmt.


    Und hier meine letzte Frage:


    Können die standart scripts von LS, z.B. "mower" "foldabel" auf mehrere Hauptgruppen angewendet werden?


    Sprich. index 0> ist der dreipunktbock.
    index 1> ist der Arm
    und index 2> ist das Mähwerk oder Grubber....
    da man mir empfohlen hat die ganzen Bauteile zu zerlegen und als seperates Hauptsegment in den GIANTS Editor einzubinden. (zwecks Bodenanpassung).


    Ich bedanke mich schonmal bei euch und Hoffe mir kann jemand auf diese Fragen eine Antwort geben.

  • Zu deiner zweiten Frage:



    rotLimit, da steckt das Wort rotation drin.. Also für rotation zuständig.. (drehen des Objektes um die x, y, z Achse, das selbe was du im GE auch bei rot kannst)
    transLimit, steckt das Wort translation drinne.. Zuständig für die translation. (bewegung des Objekts auf der x, y, z Achse, kannst du ebenfalls im GE bei trans )



    Die drei Nullen bzw. Zahlen hierbei geben immer XAchse YAchse ZAchse an.



    Was die letzte Frage betrifft, wird doch bei den Klappgrubbern so gehandhabt..



    LG

  • Hallo, ich kann dir leider nicht alles beantworten, aber ich mach hier mal den Anfang:


    Der Unterschied zwischen rotLimit und translimit:


    trans steht für translate = bewegen. Zum Beispiel im MapDoorTrigger: Wenn man ein Schiebetor hat, wird das auf der entsprechenden Achse verschoben.


    rot steht für rotate = drehen. Braucht man z.B. bei der toggleAnimatedParts, wenn du die Schleppertür öffnen willst, musst du die ja drehen.



    Die drei Nullen "0 0 0" stehen für die entsprechenden x y z - Werte, die du im Attribute-Fenster im GE siehst.



    Ist jetzt alles nicht sehr professionell ausgedrückt, aber als Anfang sollte das reichen. ^^



    MfG Robert

  • Und nun noch etwas zu deiner ersten Frage:
    Bei einem Index, gibst du immer nur einen Punkt an, mit dem du später arbeitest. Sprich ein Teil, welches du bewegst,rotierst oder ausblendest.


    Die rootNode, in dem Zusammenhang mit Animationen, gibt ein Teil an, welches zu einer bestimmten Animation gehört. So weiß das Spiel, wo es die Animation findet und kann sie abspielen.
    Beispiel :
    Du hast eine Animation (frontfrontClipSource) aus drei Teilen:
    0>7
    0>7|5
    0>8


    Alle drei gehören zu einer Animation. Im Prinzip könntest du bei der rootNode auch 0>7|5 oder 0>8 angeben (auf mein Beispiel bezogen!). Hauptsache das Spiel findet einen Index, der mit einer Animation (frontfrontClipSource) verwendet wird ;).


    Ich hoffe das es etwas klarer geworden ist;).


    MfG

  • ok danke schonb mal für die tipps: dadurch hat sich aber jetzt eine weitere Frage entwickelt... Sorry!
    Ich habe ja in dem Bsp: ja front frontclipsource usw... nin eine frage diesbezüglich. wo findet man diese clipsources? Und wo kann ich einsehen was diese tun?
    Bei dem Bsp, war einmal die Animation. LUA als script und die cougar 1400.LUA eingebunden...
    So nun will ich ja aber auf die vom LS bezogene foldable. LUA zugreifen...
    Hier das Bsp. eines anderen Mähwerks.
    <foldingParts>
    <foldingPart componentJointIndex="0" anchorActor="0" animationClip="MaehwerkRechtsclipSource" rootNode="10" speedScale="1" />
    <foldingPart componentJointIndex="1" anchorActor="0" animationClip="MaehwerkLinksclipSource" rootNode="12" speedScale="1" />
    </foldingParts>
    weil hier blick ich das schon wieder nicht.
    Wie muss ich das in diesem Bsp lesen bitte? ich mach mal kurz ein paar Bilder!



    In Zeile "28" sehe ich ja componentjointindex="1" und rootnode="12"
    aber wenn ich mir das jetzt im GE ansehe macht dieser Index keinen sinn! Hier das Bild

    Ich habe ja aufeinmal Index und rootnode.... Und was ja noch hinschwerend hinzukommt ist es sind ja im endefekt drei mähwerke!
    Ich woher weis ich jetzt wie ich die clipsource fürs frontmähwerk nennen muss, so dass das Spiel das erkennt? ist das überhaupt machbar?

  • Also, die specialization "foldable" greift noch auf die alte Animationsmethode zurück.
    Das bedeutet, das die eigentliche Animation komplett in der i3d erstellt wird. Dies hat den Vorteil, dass man die Animationen direkt aus dem GE heraus abspielen kann.


    Gut doch wie findest du nun diese "i3d internen" Animationen?
    Ganz einfach. Du öffnest die i3d, im Beispiel standart Novadisc900, mit einem Texteditor. Ich empfehle Notepad++.
    Nun scrollst du bis ganz nach unten, dort solltest du folgenden Einträge finden:


    [hide]


    [/hide]


    AnimationSetName - kann vorerst außer acht gelassen werden!


    <clip name="BspClipSource" duration="5000">
    name - Der Name, den du auch in der xml vergibst. Wird zum Ansprechen einer Animation benötigt ;).
    duration - Abspieldauer der Animation in Millisekunden -> 5000 = 5 sek!


    <keyframes nodeid="1">
    nodeid - das Teil, welches bewegt werden soll. Die id ist nicht der Index sondern die ID, die du im GE ablesen kannst.


    <keframe time="1000" rotation="0 90 0" translation="0 6 0">
    time - nach 1 sek. nach dem Start der Animation, erreicht das Teil die angegebenen Werte!





    MfG

  • ok das ist ja nicht schlecht zu wissen! Jetzt habe ich ein wenig damit versucht zu spielen! Ich habe jetzt die ID in der XML (modell.i3d) versucht zu verändern.
    nun wenn ich statt ID135 nun 373 eingegeben habe und gespeichert habe, anschließend das modell wieder geöffnet habe, hat sich nix verändert. die Animation war immernoch auf dem gleichen Teil wie vor der änderung! ?(
    was noch hinzukommt ist den teil mit der root node, den habe ich glaube ich verstanden.
    also hier das Fallbeispiel!



    so also wenn ich ja jetzt richtig gezählt habe ist front|front ja index nummer 0>7, das ist ja das wo die animation draufläuft.
    Also ist ja wie unten in der xml ja bei der animation "frontfrontClipSource" die rootNode 0>7
    Aber! Was ist dann der componentJointindex?


    XML
    <foldingParts>
    <foldingPart componentJointIndex="0" anchorActor="0" animationClip="frontrechtsClipSource" rootNode="10" speedScale="1" />
    <foldingPart componentJointIndex="1" anchorActor="0" animationClip="frontlinksClipSource" rootNode="12" speedScale="1" />
    <foldingPart componentJointIndex="0>7|0" anchorActor="0" animationClip="frontfrontClipSource" rootNode="0>7" speedScale="1" />
    </foldingParts>
  • erstmal vorweg...
    du hast 7 Komponenten : Front, AuslegerFrontRechts, AuslegerFrontRechts2, AuslegerFrontLinks1, AuslegerFrontLinks2, AuslegerFront1, AuslegerFront2


    dementsprechend musst du unten also 7 components Einträge und 6 Joint Einträge haben. Diese müssten tendenziell so aussehen:



    wie du siehst sind bei den Joints einige Indexe mit >?? - das heisst ich weiss nicht wie der Index dort lauten muss. Die Joints verbinden die Komponenten. Du musst in der jeweils ersten Komponente eine TransformGroup haben , an der die beiden Komponenten verbunden werden sollen. Bei den Mähwerken selbst sollte dieser Punkt jeweils am Gelenk liegen.


    Bei den Mähwerken selbst habe ich mittels centerOfMass den Schwerpunkt 0.5 nach unten verschoben, damit sie dazu tendieren waagerecht zu bleiben. Die 3 letzteren Joints habe ich mit Bewegungsfreiräumen versehen entlang der Z-Achse (Fahrtrichtung) damit sie dem Boden folgen können.

  • zu den FoldingParts:
    der componentJointIndex ist die Nummer des jeweiligen Joints in der XML
    "0" ist der Joint "AuslegerFrontRechts an Front"
    deine componentJointIndex angaben für die FoldingParts müssen daher lauten :

    XML
    <foldingParts>
    <foldingPart componentJointIndex="0" anchorActor="0" animationClip="frontrechtsClipSource" rootNode="10" speedScale="1" />
    <foldingPart componentJointIndex="1" anchorActor="0" animationClip="frontlinksClipSource" rootNode="12" speedScale="1" />
    <foldingPart componentJointIndex="2" anchorActor="0" animationClip="frontfrontClipSource" rootNode="0>7" speedScale="1" />
    </foldingParts>


    die rootNode muss auf ein Objekt verweisen welches durch die angegebene Animation bewegt wird. Könnte also passen die 0>7

  • :thumbsup: is ja klasse!!!!!!!!! Ich kann sie klappen! yehaaaaaaa!!!!!!!!!!!!!!!! Und den fehler den ich gamacht habe als ich an den ID´s in der i3d rumgespielt habe habe ich nun auch rausgefunden! Was aber langsam echt nervt irgendwie... man schafft einen schritt vorwärts, und was ist?! Ein nächstes Problem! X( Ich finde die logik klasse. ich muss ja das mähwerk klappen, dann absenken, dann eigentlich fahren und mähen.... naja in meinem Fall ist das wohl nicht der fall. ;) wenn ich es zugeklappt habe hebt es mir auch das frontmähwerk an, dadurch steht der bock auf dem boden. Wenn ich nun das Mähwerk anschalte, mäht es mir einen kleinen streifen am Frontmähwerk. dies aber nicht regelmäßig! Da kommt nun die nächste frage ins Spiel!
    Was sind die zwei letzten werte in der Zeile? oder für was sind die Gut? diese Groundthreshold und der groundindex?


    denn ich habe mehrere dinge versucht.... einmal diese schreibweise:

    XML
    <groundReferenceNodeArea1 index="2>" />
    <groundReferenceNodeArea2 index="4>" />
    <groundReferenceNodeArea3 index="6>" />
    <cuttingAreas count="3">
    <cuttingArea1 startIndex="2>10|0" widthIndex="2>10|1" heightIndex="2>10|2" />
    <cuttingArea2 startIndex="4>10|0" widthIndex="4>10|1" heightIndex="4>10|2" />
    <cuttingArea3 startIndex="6>12|0" widthIndex="6>12|1" heightIndex="6>12|2" />
    </cuttingAreas>



    und einmal die Originale:


    <cuttingArea1 startIndex="11>10|0" widthIndex="11>10|1" heightIndex="11>10|2" groundthreshold="1" groundindex="11>" />


    (die Indexe sind jetz nicht die originalen, habs nur kurz rauskopiert...)


    und einmal so:


    <cuttingArea1 startIndex="11>10|0" widthIndex="11>10|1" heightIndex="11>10|2" />


    aber das Ergebnis war immer das gleiche! Es gehtnicht!
    Mein Mähwerk läuft nur über standart scripts bis jetzt so nebenbei!


    Und dann habe ich noch ne frage wegen den Hydrauliken! wieso bewegen die sich nicht mit?
    Und wie kann man so eine Hydraulik den demenstrprechend animieren?
    Da ich dachte nachdem sich ja das ganze Teil voll klappen lässt müsste ich nur die Hydraulik wieder eintragen in der XML.
    aber irgendwie hab ich da wohl ein denkfehler! weis einer von euch wie man das machen muss?

  • bezüglich Klappen und absenken kann ich dir nicht ganz folgen. Natürlich - wenn du das Mähwerk im zugeklappten zustand absenkst, steht der Bock auf dem Boden. Das liegt daran das LS nunmal die HH soweit absenkt wie es möglich ist - und nicht soweit wie es sinnvoll ist.


    zu den Grundreferences... ich würde mal sagen keine davon geht.
    Ich kann dir zwei Möglichkeiten anbieten, die du auch kombinieren kannst:

    XML
    <groundReferenceNode index="11>5" threshold="0.1" />


    hier wird überprüft ob die Referenznode (index=) weniger als 0.1m (threshold=) vom Boden entfernt ist. Wenn das nicht angegeben wird, prüft das Spiel selbstständig ob die rootNode ( 0> ) maximal 0.2 über dem Boden ist. In deinem Falle würde ich hier eine Transformgroup an die Unterkante des Bocks setzen bei einem threshold von 0.2 Das sollte reichen damit das Mähwerk zwischen angehoben und abgesenkt unterscheiden kann.


    XML
    <cuttingAreas count="3">
    <cuttingArea1 startIndex="2>10|0" widthIndex="2>10|1" heightIndex="2>10|2" foldMinLimit="0.9" foldMaxLimit="1"/>
    <cuttingArea2 startIndex="4>10|0" widthIndex="4>10|1" heightIndex="4>10|2" foldMinLimit="0.9" foldMaxLimit="1"/>
    <cuttingArea3 startIndex="6>12|0" widthIndex="6>12|1" heightIndex="6>12|2" foldMinLimit="0.9" foldMaxLimit="1"/>
    </cuttingAreas>


    das würde dafür sorgen , dass die CuttingAreas nur funktionieren , wenn die folding Animation zwischen 90 und 100% liegt. Es kann sein dass es bei dir genau umgekehrt also foldMinLimit="0" foldMaxLimit="0.1" lauten muss. Je nachdem wie rum die folding Animation läuft.


    Auf den XML Parameter needsLowering reagiert die Spezi Mower nicht.

  • so funktioniert alles... nur! jetzt habe ich wieder zwei fragen! Wieso gehen sämtliche Hydraulikteile nicht mit? Punkt zwei von der Frage! Ich habe versucht das script vom Pötinger zu nutzen Hydraulik.lua... habe alles so geschrieben in der XML wie es beim Pöttinger auch vormuliert wurde.. aber kann dann nichts mehr kaufen! Wie kann ich jetzt die Hydraulikteile dazu bewegen dass sie sich an die animation der Arme klammer. Weil ich tu doch den fixpunkt der Hydraulik mitbewegen! Wieso erkennt er das nicht?
    (Gibt es eigentlich eine liste wo man einsehen kann für was welches original sscript von GIANTS zuständig ist und was ich damot machen kann?)


    so nun zur eigentlichen zweiten frage! das prinziep mit der Bodenanpassung habe ich ja verstanden! aber gibt es z.B. eine möglichkeik , den armen auch eine Bodenanpassung zu geben ohne dass sie dann auch im zugeklappten zustand auch da ist?
    Also verständlich ausgedrückt. Du hast mir ja eine möglichkeit gesagt wie ich dem Mähwerk sage dass es nur mähen kann ab einem gewissen wert der Animation der klappung... diese zwischen 100% und 90%.
    Nun soll es wenn es aufgeklappt ist und zum mähen bereit ist, den Armen erlauben dass sie diese 0 0 10 spiel haben um sich zu bewegen, und wenn es zugeklappt ist sollen sie kein spiel mehr haben!


    kann ich das auch in der XML eintragen?


    Und was mir aufgefallen ist, das modell ist absolut zITTRIG; NERVÖS. das sind andere Mods mit bodenanpassung nicht so extrem! woran liegt das?

  • Punkt1: Zylinder werden ja mit der Spezi "Cylindered" bewegt. Diese wiederum reagiert jedoch nur auf Objekte die per animatedVehicle oder per cylindered selbst bewegt werden. Alternativ müsste man diese Objekte "überwachen" und die movingTools entsprechend aktualisieren lassen. Das ist möglich - dafür benötigt man aber ein Script


    Punkt2 : das nervöse Zittern entsteht durch ein physikalisches ungleichgewicht. Prinzipiell sollte man auf die Masse der Komponenten achten (kannst du im GE sehen und wird durch den Wert density beeinflusst). Die Gewichte sollten nicht zu unterschiedlich sein und die Komponenten sollten von innen nach aussen zunehmend leichter werden.
    Beispiel :
    component1 : 0.5
    component2 : 0.3
    component3 : 0.2
    component4 : 0.3
    component5 : 0.2
    component6 : 0.3
    component7 : 0.2
    Gesamtmasse wären dann 2 Tonnen.


    den Rest der Stabilität bestimmst du durch den solverIterationCount - das ist vereinfacht ausgedrückt die Anzahl der physikberechnungen an einem Joint. Auch hier sollten die Werte von innen nach aussen kleiner werden oder gleich bleiben. Je höher der Wert ist , desto stabiler wird der Joint - allerdings kosten höhere Werte unheimlich Performance so das man da viel testen und optimieren sollte.


    Punkt3: auch für die Begrenzung der Bewegungsfreiheit im zusammen geklappten Zustand würdest du ein Script benötigen. Ich würde dir empfehlen erst einmal den Bewegungsspielraum auf 0 zu setzen um die Stabilität der Joints zu testen und alles korrekt einzurichten. Danach kann man über die Scripte reden.

  • du hast mir doch für meine Combi schon diese kleine Lua geschrieben das Folingparts mit Cylindered zusammenarbeitet wenn du willst kann ich mal schauen ob ich sie noch finde alternativ kannst du aber auch die LUA von Eifok nehmen wo die Cylinder dauerhaft aktualisiert werden

  • ui ui ui.... also wenn ich mich mal so an deine gewichtsvorgabe, mit 0.5 etc. festhalte wird das ding zu einer waren zapplparty! selbst wenn ich diesen solveriteration count auf 60 stelle bei allen gruppen, bringt das nicht viel! Und was ist eigentlich dann der "solveration" im GE direkt? Muss dieser gleich sein mit dem Wert den ich bei solverationcount in der XML angebe oder hat das eine mit dem anderen nichts zu tun?

  • deswegen stand oben drüber "Beispiel" - natürlich kann ich dir nicht die korrekten Werte geben weil die Modellabhängig sind - da hilft nur probieren. Und ja - die Werte sollten möglichst gleich sein.


    @andy_w: ich wusste nicht mehr für wen ich das geschrieben hatte und wo es rum liegt. Ich selber habs glaube nicht mehr.

  • ich habe sie noch ;)


    ich kannn mal schauen welche Werte ich beim Gewicht habe


    wenn es dir hilft



    LUA by Sven777b


    LG Andy W

  • hahahahaha ich bin so eine dachplatte! Ich kann das echt nur sagen! Ich weis welchen fehler ich gemacht habe damit das mit den Hydrauliken nicht geht.... ich hatte ja mal versucht die spezi Hydraulik zu verbauen. Nur habe ich de... in der moddesc den fehler gemacht und diese zusatz speci im bereich vehicletype statt darüber einzufügen. das konnte ja nicht gehen! Gut ding hat weile. Ok meine Hoffnung war nun, dass wenn ich das hinbekomme mit den Hydraulikzylindern, dass das Mähwerk in sich stabieler wird. Da es ja dann mehrere Anhängepunkte besitzt.
    Irgendwie hab ich da nun wieder falsch gedacht!
    Das wackelt immer noch wie ein rattenschwanz.


    @ Sven: Das ist mir klar dass dies nur Beispiel werte sind. Die aber wenn ich andere Mähwerke ansehe ziehmlich alle auf den gleichen nenner kommen. Mit z.B. 0.5 density für Mähwerke. es lief stabil als ich density werte drin hatte für den Hauptteil, mit 30. die arme hatten 10 und die mähwerke glaube ich 4. Wenn ich das nun zusammenzähle komme ich auf über 70t mehr sogar!
    Das hat mir kein schlepper mehr gepackt!


    @ Andy: diese refresh cylinder... ist das diese speci wo man nun cylinderd mit foldable kombinieren kann? oder ist das schon die foldable mit cylinderd fertig kombiniert und ich brauche dadurch bei specis nicht mehr zusätzlich verbauen?
    ja wäre nett wenn du mir mal deine angaben in etwa sagen könntest.

  • du trägst einfach die Zeilen also FoldingParts und MovingParts ganz normal ein und durch das Script von Sven arbeiten sie zusammen


    hab noch ein Video von meine Combi wo ich darmals Sven auch so viele Fragen gestellt haben ^^



    wenn du sonst noch Fragen hast einfach Melden ;)


    LG Andy W

  • also wenn ich mir deine Combi so ansehe läuft die viel ruhiger... beim klappen und in der Fahrt. wenn ich mir meine da so ansehe.. ist da viel mehr spiel drin! Was hast du für gewichte? Oder hast du einen anderen trick angewendet um es ruhiger laufen zu lassen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!