GELÖST: SODE - ein einfaches Tor einbauen - Könnt Ihr mir helfen?

In dieser Kategorie werden Informationen zu Tools & Werkzeuge ausgetauscht
Benutzeravatar
Christian
Administrator
Beiträge: 1873
Registriert: Mi 2. Dez 2015, 15:21
Wohnort: Dortmund
Kontaktdaten:

Re: SODE - ein einfaches Tor einbauen - Könnt Ihr mir helfen?

Beitragvon Christian » Sa 31. Mär 2018, 21:16

Das ist auch alles okay so. Die Einträge sind korrekt. Bis auf eine kleine Abweichung. Es sind 299 Keyframes, aber in der modeldef.xml stehen 300 Frames drin. Ob dies aber nun der Grund für die verkürzte Animation ist!?

Häng doch mal die Gmax Datei hier ran.
Lieben Gruß
Christian


MSFS - ASRock B560 Steel Legend - Intel i7 11700K - 64 GB Kingston Fury 3200 - ASUS RTX 4080 16GB TUF - Samsung 970 EVO Plus 1TB GB - Samsung 980 EVO 1TB

Manschy
Beiträge: 236
Registriert: Sa 4. Mär 2017, 21:00

Re: SODE - ein einfaches Tor einbauen - Könnt Ihr mir helfen?

Beitragvon Manschy » Sa 31. Mär 2018, 21:47

So, ich hänge mal zum Tüfteln meine Files an. Falls was fehlen sollte, bitte melden, dann liefere ich den Rest nach :)
ETUO_HANGAR_DOOR.zip
(312.94 KiB) 464-mal heruntergeladen

Benutzeravatar
Christian
Administrator
Beiträge: 1873
Registriert: Mi 2. Dez 2015, 15:21
Wohnort: Dortmund
Kontaktdaten:

Re: SODE - ein einfaches Tor einbauen - Könnt Ihr mir helfen?

Beitragvon Christian » Sa 31. Mär 2018, 23:45

Hi Manfred.

Also offenbar liegt der Fehler in der SODE XML Steuerungsdatei "ETUO_ANIMATIONS.xml" die im Zip-Archiv enthalten ist. Dort steht eine Animationslänge von 0 - 1000 Frames und eine Läufzeit von 30 Sekunden. Korrekt muss es aber lauten: Animationslänge von 0 - 300 Frames und Laufzeit 12 Sekunden.

Deine SODE-Datei
<SODE>
<!-- Data Probe serving its clients -->
<SimObject Name="ETUO_H1_FRONTDOOR">
<Placement Lat="51.9286286614" Lon="8.2979528628" Alt="0#AGL" Hdg="238.2"/>
<Model SimTitle="ETUO_H1_FRONTDOOR">
<TriggerableVisibility Input="TextMenu" Action="Show,Hide" VisibleOnLoad="Yes"/>
<TriggerableAnimation Input="TextMenu" Action="Open,Close" StartKF="0" EndKF="1000" Duration="30">
<Sound FileName="SFX_SirenLoop.wav" Loop="Yes" MinDistance="20" MaxDistance="800"/>
</TriggerableAnimation>
</Model>
</SimObject>
</SODE>



Korrigierte SODE Datei
<SODE>
<!-- Data Probe serving its clients -->
<SimObject Name="ETUO_H1_FRONTDOOR">
<Placement Lat="51.9286286614" Lon="8.2979528628" Alt="0#AGL" Hdg="238.2"/>
<Model SimTitle="ETUO_H1_FRONTDOOR">
<TriggerableVisibility Input="TextMenu" Action="Show,Hide" VisibleOnLoad="Yes"/>
<TriggerableAnimation Input="TextMenu" Action="Open,Close" StartKF="0" EndKF="300" Duration="12">
<Sound FileName="SFX_SirenLoop.wav" Loop="Yes" MinDistance="20" MaxDistance="800"/>
</TriggerableAnimation>
</Model>
</SimObject>
</SODE>


Kannst Du das bei Dir bitte mal überprüfen? Wäre doch gelacht wenn wir es dem Code nicht zeigen würden wo es lang geht :D

Im Übrigen ist das eine tolle Hangartor-Animation. Richtig ausgeklügelt mit mitlaufenden Toren!
Lieben Gruß
Christian


MSFS - ASRock B560 Steel Legend - Intel i7 11700K - 64 GB Kingston Fury 3200 - ASUS RTX 4080 16GB TUF - Samsung 970 EVO Plus 1TB GB - Samsung 980 EVO 1TB

Manschy
Beiträge: 236
Registriert: Sa 4. Mär 2017, 21:00

Re: SODE - ein einfaches Tor einbauen - Könnt Ihr mir helfen?

Beitragvon Manschy » So 1. Apr 2018, 14:08

Meine Fresse - dass es SODE dermaßen in sich hat, hätte ich nie gedacht. Vielen Dank für Euren (in erster Linie Christian's) virtuellen Schweiß, den ich hier abgefordert habe.

Vorweg: ES FUNKTIONIERT!!!!!

Ich muss mich aber fairerweise für die Unterstützung von Steven Legg bedanken, der mir zeitgleich über die letzte Woche per Email geholfen hat. Hier mal ein kurzer Abriss von dem, was letztendlich zum Erfolg geführt hat:

Im Zusammenspiel von SODE und Gmax-Modellen scheint es einen Höchstwert von "100" zu geben, was die erlaubte Framezahl der Animation anbelangt (lasse mich gern eines Besseren belehren ;) ). Somit blieb mein Tor stehen, nachdem eben die Framezahl von 100 erreicht wurde - also wie von mir beschrieben, quasi "in der Mitte".

Nur durch das Einfügen einer neuen Trigger-Einheit in der modeldef.xml ließ sich die (auf jeden Fall für mich) komplexe Abhängigkeit der einzelnen Werte von Gmax-Modell und Animation beeinflussen:

Hier die errforderlichen zusätzlichen Zeilen in der modeldef.xml, um meine Tor-Animation auf die gewünschte Länge zu bekommen.
Als erstes die Animationsbezeichnung, also der Trigger, wie er auch nachher in Gmax erkannt wird:

<Animation name="SODE_Trigger_1_20SEC" guid="0e586c0a-1e20-4a01-a077-25f74198b652" length="100" type="Sim" typeParam2="SODE_Trigger_1_20SEC" typeParam="AutoPlay"/>

Wobei die 20SEC nun meine wirklich erwünschte Zeit zum Öffnen des Tores festlegt - aber eben auf die maximale Framezahl von 100.

Was ich nun nicht wusste: Wie konnte ich diese zusätzliche Zeile einfügen, wo doch ein eigener Guid für diesen Trigger gebraucht wird? Woher kommt dieser?
Und das ist eben in meinem Fall die 2, einfach eine fortlaufende Nummer, mit der ich meinen neuen, zusätzlichen Trigger festlege! Guggst Du hier:

<Animation name="SODE_Trigger_1_4SEC" guid="0e586c0a-1e20-4a01-a077-25f74198b650" length="100"..........
<Animation name="SODE_Trigger_2_4SEC" guid="0e586c0a-1e20-4a01-a077-25f74198b651" length="100"..........
<Animation name="SODE_Trigger_1_20SEC" guid="0e586c0a-1e20-4a01-a077-25f74198b652" length="100"........

Soll heißen: Eine neuer Animations-Trigger lässt sich dadurch einfügen, indem man einfach die Länge festlegt (20SEC, 25SEC etc) und entsprechend den Guid-Code fortlaufen lässt.
Wichtig hierbei: Die Zeiteinheit sollte wegen der 100-Frame-Abhängigkeit und dem damit verbundenen Lag (am Ende mehr dazu) immer ein Teiler von 100 bleiben (z. B. 2, 4, 5, 10, 20 etc...)

Und hier quasi die "Steuereinheit" der Animation in der modeldef.xml, die die Dimension festlegt, mit der die Animation abgespielt wird - aber auch, damit Gmax diesen Trigger für die Zuordnung im Tor-Modell nutzen kann:

<PartInfo>
<Name>SODE_Trigger_1_20SEC</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code> <!-- Masks bit 0 (0x0001) out of the SimVar and checks if set -->
(A:VELOCITY BODY Z, number) near 0x0001 &amp; 0x0001 == if{ 100 } els{ 0 }
</Code>
<Lag>5</Lag> <!-- Defines duration of animation: 100Frames/5 = 20 seconds -->
</Parameter>
</Animation>
</PartInfo>

Die roten Angaben zeigen die Parameter, die nötig sind, um dem Trigger die 20 Sekunden Öffnungszeit zu verklickern: Brauche ich für die 100 Frames 20 Sekunden, muss der Trigger die Animation entsprechend verzögern (Lag=Verzögerung), und tut dies in diesem Fall in 5 Schritten ;)

Uff - soweit, so kompliziert.

Kommen wir nun zum Gmax-Modell, dass nun auch entsprechend verändert werden musste.

Bild

Als erstes sehen wir, dass nach Verändern der modeldef.xml nun auch der erwünschte Trigger in Gmax auftaucht (1). Jedes Torelement wurde nun mit einer neuen Animation mit diesem Trigger belegt. Start (0) und Endpunkt (100) verändert. Gleichermaßen wurde nun auch die Time Configuration angepasst (2).

Schließlich wurde noch meine (aus damaligen FS9-Zeiten unsinnig mitübernommene) Framezahl von 299 auf 100 in der Gmax-Animation korrigiert, damit nun generell das Verhältnis in allen Animationselementen (Gmax, MCX, SODE) identisch ist (3 und 4).

Das fertige Tormodell wurde nun exportiert und anschließend nochmal durch MCX geschickt. Das daraus fertig exportierte Modell musste nun nochmal in meinen SODE\Simobject\ETUO - Ordner kopiert werden, damit SODE mein Tor auch korrekt als "Simobject" erkennen kann.. Und was soll ich schlussendlich sagen: Bilder sagen mehr als tausend Worte:

Bild

Bild

Bild

Ich hoffe, dass ich mit dieser Erläuterung anderen weiterhelfen kann, die vielleicht ähnlich wie ich steckenbleiben. SODE ist verflixt kompliziert, wenn man nicht (wie ich anfangs) die Zusammenhänge blickt. So einfach, wie man es von 12bpilot in den Demofiles suggeriert bekommt, ist das Programm nicht! Einfach die Beispiel- oder Demofiles von A nach B kopieren und durch ein paar Parameter austauschen, FUNKTIONIERT NICHT. Man muss den Zusammenhang zwischen den einzelnen Programmen (Gmax, SODE), aber auch den Einfluss der modeldef.xml - Datei auf eben diese lernen.

Und hier das Licht ins Dunkel zu bekommen, dabei habt Ihr mir, aber auch Steven Legg, sehr geholfen. Vielen Dank dafür!

Benutzeravatar
Christian
Administrator
Beiträge: 1873
Registriert: Mi 2. Dez 2015, 15:21
Wohnort: Dortmund
Kontaktdaten:

Re: GELÖST: SODE - ein einfaches Tor einbauen - Könnt Ihr mir helfen?

Beitragvon Christian » Mo 2. Apr 2018, 09:03

Das sind sehr interessante Informationen von Dir.

Da soll man drauf kommen, dass es da Limitationen im Zusammenspiel zwischen SODE/Gmax und dem FSX gibt. Zwar ist bekannt, dass der FSX/Gmax animationsmäßig etwas eingeschränkt sind. Aber dass das solche Auswirkungen hat, war mir neu. Im P3D/SODE/3dsm gibt es diese Limitationen übrigens nicht mehr. Die Entwickler von LM haben den P3D dahingehend von diesen Limitationen befreit.

Es ist gut zu wissen, dass man das nun hier nachlesen und seine Modelle in dem von Dir beschriebenen Weg programmieren kann. Vielen Dank dir, aber auch dem Steven Legg, für das Teilen dieser sehr nützlichen Informationen!
Lieben Gruß
Christian


MSFS - ASRock B560 Steel Legend - Intel i7 11700K - 64 GB Kingston Fury 3200 - ASUS RTX 4080 16GB TUF - Samsung 970 EVO Plus 1TB GB - Samsung 980 EVO 1TB


Zurück zu „Tools & Werkzeuge“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste