movingTools, movingParts, dependentPart etc...

User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

movingTools, movingParts, dependentPart etc...

Post by Kevin_J_Barton »

Hallo Gemeinde,

bin wieder nur einen kleinen Schritt weiter gekommen. Jetzt geht es um die Animationen. Die habe ich in mühseliger Arbeit in Maya gemacht und wollte sie als Clips exportieren, aber scheinbar sind sie nicht mitgekommen. Wenn ich sie nachträglich importieren will gibt es den Fehler

"Warning: CharacterSet clip failure. All clips must contain the same number of transformations."

wähle ich dann ein Teil mit Animation aus, stürtzt der GE ab. Animationen direkt in Maya zu machen hat den Vorteil das es schneller geht, und wesentlich realistischer aussieht. Aber leider komme ich hier nicht weiter. Deswegen muss ich mich wohl oder übel mit den im Titel genannten Code-Schnipsel befassen.

Da ich hier (wie bei eigentlich allem wobei ich Hilfe bräuchte) keine fähigen Tutorials gefunden habe, zunächst einfach mal die Frage wozu die einzelnen Teile überhaupt da sind. Ich verstehe es folgendermaßen:
  • movingTools - Teile die direkt in den animations angesprochen werden
  • dependentPart - Teile, die sich mit den movingTools mitbewegen
  • movingParts - die dependentParts müssen hier definiert werden
  • localReferencePoint - Der "zielpunkt" auf den andere Teile "schauen" (z.B. Hydrauliken)
  • referencePoint - Der "zielpunkt" auf den das movingPart schauen soll
  • referenceFrame - keine Ahnung
Also in meinem Beispiel geht es um die Animation das Pickup zu senken. Das funktioniert auch prima mit den movingTools. Dazu gehören aber auch die Hydraulik-Arme die ebenfalls extra animiert werden müssen (oh das geht so einfach in Maya :!: ) und das bekomme ich einfach nicht hin. Ich hatte schon die abenteuerlichsten Ergebnisse, von deplazierten Zylindern bis zu meinem Mod der auf einmal schwebte und nicht mehr zu bedienen war. Wäre dankbar wenn da jemand Licht ins Dunkle bringt, denn die Konstruktion die Giants im Poettinger gezaubert hat ist für mich undurchsichtig.

Gruß Kev
User avatar
Aranea
Posts: 289
Joined: Thu Oct 06, 2016 9:51 pm
Location: meine Höhle

Re: movingTools, movingParts, dependentPart etc...

Post by Aranea »

Hallo Kevin_J,

du bringst da eine Kleinigkeit durcheinander, Animationen haben nicht DIREKT mit MovingTools und MovingParts zu tun.
zB. eine Pickup heben/senken kannst du per Animation wie bei den Standartladewagen / Presse, mit Taste V die Pickup bewegt sich.

folgender Fall bei der Pickup hast du ja seitlich die Hydraulik-Arme die sich bewegen wenn du die Pickup hoch oder runter bewegst, hier kommen MovingParts zum Einsatz.
Die Animation steuert die Pickup, das heißt das Teil welches sich über einen Drehpunkt zB. 20 grad nach oben dreht
die Hydraulik Arme könnte man jetzt theoretisch in die Animation mit einbauen, das wäre aber verdammt aufwendig und viel zu kompliziert, daher nutzt man MovingParts

movingParts sind im grunde Teile, die sich bewegen, ohne direkt per Animation angesteuert zu werden, mit dem Attribute activeDirty oder wie des hieß sind die dauerhaft aktiv und werden aktualisiert, das heißt sie "verfolgen" einen definierten Punkt (referencePoint) der in deinem Fall am Kontaktpunkt liegt wo die Hydraulik Arme an der Pickup befestigt sind.
das heißt sobald sich die Pickup bewegt und dreht, drehen die movingParts automatisch hinterher ohne dass du ihnen eine Richtung, animation oder sowas zuweisen musst.
die haben dann in deinem Fall noch sogenannte TranslatingParts das sind die inneren Hydraulik Arme die sich ausstrecken um die Pickup "festzuhalten" das passiert auch automatisch.
so, was sind dann MovingTools, die haben zwei Nutzen, zum einen sind es Steuergeräte die du zB. per Maussteuerung bedienen kannst, siehe Frontlader - das was du direkt mit der Maus steuerst ist ein MovingTool, die Hydraulikarme die sich von alleine hinterher drehen sind MovingParts.
der zweite Nutzen von MovingTools ist es, movingParts nur dann auf aktiv zu setzen, wenn sie sich bewegen. damit meine ich, dass zB. beim Frontlader die Hydraulik arme nur dann aktualisieren, wenn du per Maus den Arm ansteuerst, das hat den einfachen Sinn, dass die Rotation der MovingParts nicht dauerhaft berechnet werden muss obwohl sie sich nicht ändert (spart Rechenleistung) und somit ersetzt du das oben erwähnte activeDirty
hierfür musst du innerhalb des MovingTools die Hydraulikarme als dependentPart eintragen, dependent (aus dem englischen für abhängig) meint eben wie gesagt, dass der MovingPart nur dann berechnet wird, wenn das MovingTool sich bewegt.

das heißt nun für dich :
die Pickup setzt du per Animation, dass du mit Taste V die Pickup hoch- bzw. runterdrehst
danach setzt du die Pickup (der index der sich dreht) als MovingTool, mit den Hydraulik armen als dependentPart
dann setzt du die Hydraulikarme als MovingPart mit dem Kontaktpunkt an der Pickup als ReferencePoint

ich hoffe ich konnte es halbwegs verständlich erklären, ich bin besser darin etwas zu zeigen und erklären als so blank im Text ...
MfG
die Spinne :hi:
FS modder & scripter
quality modding and support since 2012
viewtopic.php?f=884&t=115656
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Re: movingTools, movingParts, dependentPart etc...

Post by Kevin_J_Barton »

Hallo Aranea,

danke das Du Dich auch diesem Problem annimmst ;)

Also vom Prinzip her hab ich es ja schon so wie Du sagst. Das Pickup fusioniert prima mit "v", aber eben die Hydrauliken nicht. Jetzt habe ich die eine Seite davon als dependentPart eingetragen und ebenso als movingPart

Code: Select all

    <movingTools>
        <!-- support -->
        <movingTool index="0>14" componentJointIndex="0" anchorActor="0"/>
        <movingTool index="0>15" componentJointIndex="1" anchorActor="0"/>
		
		<!-- backdoor -->
        <movingTool index="0>3">
        </movingTool>
		
		<!-- pickup -->
        <movingTool index="0>0">
			<dependentPart index="0>2" />
        </movingTool>
    </movingTools>

    <movingParts>
		<movingPart index="0>2" referencePoint="0>0|2|0" referenceFrame="0>">
        </movingPart>

    </movingParts>
Als referencePoint dient die andere Seite der Hydraulik (in Maya ist es nunmal anders gelöst, deswegen hier andere Hirarchie). Die Hydraulik bewegt sich nun auch (scheinbar) korrekt mit dem Pickup mit, allerdings, aus einem mir nicht schlüssigen Grund, ist es um y=180° verdreht und damit überhaupt nicht mehr in der richtigen Position.

Image
User avatar
Aranea
Posts: 289
Joined: Thu Oct 06, 2016 9:51 pm
Location: meine Höhle

Re: movingTools, movingParts, dependentPart etc...

Post by Aranea »

versuch mal in der Zeile von movingPart referencePoint .... noch den zusatz invertZ="true" mit einzubauen vielleicht hilfe das schon


im Notfall kann ich dir noch anbieten, dass wir mal gemeinsam per TeamViewer drauf schauen, weil ich das so blind ohne komplette xml und i3d nicht genau sagen kann, was wo wie du ändern musst
MfG
die Spinne :hi:
FS modder & scripter
quality modding and support since 2012
viewtopic.php?f=884&t=115656
User avatar
Kevin_J_Barton
Posts: 94
Joined: Sun Mar 29, 2015 2:38 pm
Location: Wiesbaden
Contact:

Re: movingTools, movingParts, dependentPart etc...

Post by Kevin_J_Barton »

Hey,

mir ist heute auf der Arbeit eingefallen was das Problem ist. Und zwar das ich meinen Mod ja wieder nicht für den GE fit gemacht habe, was Animationen angeht, sondern mich darauf verlassen habe das das per Clip funktioniert. Deswegen sind die Pivots nicht so, wie sie der GE gerne hätte. In Maya kann ich ihm schon sagen das er nur eine der Achsen auf den Reference Point ausrichten soll, beim GE macht er das mit allen dreien. In dem Beispiel zeigte die Z-Achse gerade in Fahrtrichtung. Das ist aber die Achse, die immer auf den RefPoint zeigt. Deswegen war es verdreht. Ausserdem liegt mein Pivot nicht in der Mitte der beiden Hydraulik Zylinder sondern an der Seite von einem. Also drehen sich die ausgerichteten Objekte immer zur Seite.
Also ich muss jetzt "nur" die ganzen Einzelteile in Maya neu ausrichten und exportieren, dann geht es.
Post Reply