HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Zug fahren (https://hx3.de/editing-scripting-167/zug-fahren-18617/)

HartmutBraun 07.02.2010 19:07

Zug fahren
 
Hallo Leute,

weiß jemand, wie ich den Zug in Arma zum Fahren kriege? Beispiel: la vache on Vimeo

Baraka 07.02.2010 19:34

Hallo HB,
Das Video sieht ganz schön nach "AttachTo" aus.
Ich habe die Tage erst gelesen das einer die Lock als Fahrzeug gemacht hat, allerdings war das noch mit einer Panzer-Config.Ich glaube auch nicht das die Schienen so wie die Straßen definiert sind.Wahrscheinlich hängt da ein unsichtbares Auto davor,oder es ist dieser Beta-Panzer-Zug mit angehängten Wagons.Ich lasse mich aber gerne eines Besseren belehren,fahrende Züge wären sehr reizvoll.

Cyborg11 07.02.2010 19:43

Zur Zeit arbeiten Rommel, gachopin und ich an einem fahrbaren Zug.

Rommel's Version:
YouTube Video


gachopin's Version:
YouTube Video


Im Übrigen ist noch keine released ;)

Baraka 07.02.2010 20:05

Hallo Cyborg,
Gachopin`s Video sieht ja herzallerliebst aus! Bei Rommel erkenne ich gar nöscht,und ich bin mir sicher du schlägst dem Faß die Zähne aus!
Könnte man mit so einem Skript,sagen wir mal eine Achterbahn oder eine Seilbahn ermöglichen?Ich habe mal mit dem Gedanken gespielt ein paar Rummelplatz-Sachen zu machen aber nach der Schießbude war es vorbei mit meiner Kunst.

Cyborg11 07.02.2010 20:21

Naja theoretisch schon :D

Rommel und ich haben gerade das Problem, dass der Zug nicht um die Kurven fährt. Er wird nämlich immer per setPos an den Gleisen festgehalten, sodass er immer in der Mitte fährt. Das sieht eben in Kurven komisch aus, da der Zug dann mehr "springt" als um die Kurven fährt. Deswegen ist noch nichts released :)

Mein Skript schaut genauso aus wie Rommels :p
Bei ihm sieht man halt nur im Video, wie der Zug normal fährt, nicht wie um die Kurven fährt. Grund s.o. ;)

Baraka 07.02.2010 21:37

@Cyborg,heißt das der Zug kann nur eine arg begrenzte Strecke fahren kann weil es wahrscheinlich zu aufwendig wäre jede Kurve mit Setpos zu skripten?Mit geraden Strecken geht es ja wahrscheinlich ziemlich gut.

Buliwyf 07.02.2010 22:03

Noch was tolles: >> Klick <<

:zahn:

Biba92 07.02.2010 22:10

Zitat:

Zitat von Cyborg11 (Beitrag 295135)
Naja theoretisch schon :D

Rommel und ich haben gerade das Problem, dass der Zug nicht um die Kurven fährt. Er wird nämlich immer per setPos an den Gleisen festgehalten, sodass er immer in der Mitte fährt. Das sieht eben in Kurven komisch aus, da der Zug dann mehr "springt" als um die Kurven fährt. Deswegen ist noch nichts released :)

Mein Skript schaut genauso aus wie Rommels :p
Bei ihm sieht man halt nur im Video, wie der Zug normal fährt, nicht wie um die Kurven fährt. Grund s.o. ;)


Mal ne ganz blöde Frage:
Warum wendet Ihr euch nicht an Gachopin und den ersteller des Vimeo Videos ?
Besteht hier sowas wie Konkurrenzdenken, oder wieso holt ihr euch keine Hilfe ?

Cyborg11 07.02.2010 22:50

Zitat:

Zitat von Biba92 (Beitrag 295158)
Mal ne ganz blöde Frage:
Warum wendet Ihr euch nicht an Gachopin und den ersteller des Vimeo Videos ?
Besteht hier sowas wie Konkurrenzdenken, oder wieso holt ihr euch keine Hilfe ?

Die Idee mit dem Zug hatte ich schon seit November. Hab aber erst vor 2 Wochen damit angefangen das zu skripten. Hab dann die Videos von gachopin und Rommel entdeckt und hab mich schon an die gewandt. Ich lasse das Thema auch jetzt ruhen, da die anderen beiden bessere Skripte haben. :zahn:

Mir ist es im Prinzip egal, wer hier den Zug fahrbar macht. Habe hier noch andere Skriptprojekte :confused: Erstmal muss der LHD fahrbar gemacht werden. :naughty:

Mr-Murray 08.02.2010 08:35

WOW, sehr genial!!!
Bin mal gespannt, was die Jungs letztendlich releasen werden.

Erinnert mich irgendwie an Lesters Zug in OFP :D

Lester 08.02.2010 09:28

Zitat:

Zitat von Mr-Murray (Beitrag 295190)
WOW, sehr genial!!!
Bin mal gespannt, was die Jungs letztendlich releasen werden.

Erinnert mich irgendwie an Lesters Zug in OFP :D

Das war nicht mein Zug sondern eine Cooperationsarbeit von Leuten des AEF :
Dschulle, Odin, Kavoven und ich waren daran beteidigt, zudem noch zwei andere Leute in der Anfangs-/Erprobungs-/Machbarkeitsphase.

Man könnte in dem Stile auch etwas für A2 machen, aber das bleibt leider wiedereinmal an ein paar Dingen hängen die das nicht einfacher gesstalten:

- die Schienen Objektvielfalt der A2 Schienen ist verdammt hoch (was sich auf die Scriptperformance auswirkt)
- die A2 Wagons sind optisch ungünstig auf Kurven, Drehgestelle wären hilfreich
- die A2 Schienen haben ungünstige Kollisionslods und andere Modellungereimtheiten
- das Chenarus-"Schienennetz" ist nur sehr eingeschränkt nutzbar
- man kann die KI nach wie vor nicht gescheit für ein Lokverhalten justieren

Zudem muß es echt gut laufen, damit es sich dafür lohnt eine entsprechende Insel zu gestalten um wirklich uneingeschränkt Spass damit zu haben und vielfältige Missionen damit zu machen. :D

Baraka 08.02.2010 12:20

Hallo Lester,
ich hätte noch ein paar Fragen,
Zitat:

- die Schienen Objektvielfalt der A2 Schienen ist verdammt hoch (was sich auf die Scriptperformance auswirkt)
- die A2 Schienen haben ungünstige Kollisionslods und andere Modellungereimtheiten
heißt das wenn man eine Mission macht, in der die Schienen mit "unsichtbaren" Balken oder so nachgesetzt sind , das es dann besser gehen würde?Dann könnte man ja 2 gerade Stücke (lang/kurz) und 3-4Winkelstücke hernehmen und diese im Editor setzten.
Diese Rohmission kann dann ja mit jeder anderen Missi auf Cherno verschmolzen werden.

Was du mit Drehgestellen meinst check ich nicht wirklich.meinst du die Achse zwischen 2 Waggons?:nixweiss:

Zitat:

das Chenarus-"Schienennetz" ist nur sehr eingeschränkt nutzbar
Es gibt eine durchgehende Strecke und ein paar Industriestückchen die nur wenige 100m gehen glaube ich.
Eine extra Insel nur dafür wäre wahrscheinlich etwas übertrieben.so wichtig ist das auch nicht.Aber es nervt wenn man Züge hat und die können nöscht!Wie soll man ohne Züge z.B. "North&South" nachbauen???

Tut mir leid das ich dich mit Kram nerve, den du schon abgearbeitet hast!:coffee:

Krypto 08.02.2010 16:24

Zitat:

Zitat von Baraka (Beitrag 295252)
Was du mit Drehgestellen meinst check ich nicht wirklich.meinst du die Achse zwischen 2 Waggons?:nixweiss:

Schraubenkupplung ? Wikipedia
Scharfenbergkupplung ? Wikipedia
Drehgestell ? Wikipedia

Cyclone83 09.02.2010 08:39

Er meint die Achsen sollten besser mittels eines Drehgestells mit den Wagons verbunden sein, wie echte halt, da das sonst bei engeren Kurven logischer Weise seltsam aussehen würde. Hm vielleicht könnte man aber cheaten, und das Schienensystem ähnlich eines Straßennetztes nachlegen. Die Fahrzeuge fahren schließlich auch mittlerweile ziemlich geschmeidig den Straßen entlang. Dann müsste man der Lok nurnoch bewegliche Achsen verpassen und ab die Post :naughty:

INNOCENT&CLUELESS 09.02.2010 09:24

Langfristig könnte BIS die Wegfindung für Züge kastrieren und ein Zugmodell spendieren. Sollte eigentlich auch nur Verstümmelung sein.

Dann könnte der Zug sogar von AI gefahren werden, nur eben ohne Lenkung und gebremst wird nur wenn was auf dem Schienenpfad steht.

Die AI routinen müssten dann natürlich angepasst werden.

In OFP1 gab es mal sehr schöne addonpacks mit Schienen und Eisenbahnbrücken. Kann man da nicht was nach ArmA 2 rüberholen auch wenns erst mal altbacken aussieht und erst mal einen kompletten Satz Schienen aller möglichen Längen und Radien erstellen?

Lester 09.02.2010 12:01

Also gut, nochmals "etwas" ausführlicher :naughty::

BIS könnte wirklich die KI soweit disablen,

das sie eben nicht versucht aus den Schienen auszubrechen (Querfeldein ist es ja deutlich kürzer)

das man ihnen einen langen Bremsweg verständlich machen kann damit sie nicht wie Sensibelchen ständig Bremsbereit sind, wenn jemand vielleicht ausversehn auf die Schienen läuft/fährt

das sie auch nicht von existierenden Hindernissen sofort halt macht sondern eben entsprechend dem speedmode normal fährt und nur via aktion dann ein realistischer Bremsweg eingeleitet wird.
(wenn "angekuppelte" Waggons in Fahrtrichtung stehen bigt die KI kein Gas)

Offensichtlich sieht BIS dort aber leider keinerlei Potenzial, weil sonst hätte sie etwas derartiges schon angehen können. :komisch:



Was die Scheinensegmentanzahl angeht:
Auch wenn OFP-Scripting noch nicht so performanceoptimiert ist, man kommt nicht dabei rum die nächsten Schienen vorraussehend abzuprüfen (für Rückwärts entsprechend auch in Gegenrichtung !)
Und dann entsprechend dem Schienenradius/-länge entsprechend seitlich auf den Gleisen zu zwingen.
Weichen stellen hierbei noch eine extreme Besonderheit dar!

Wir haben uns für die AEF_Train seinerzeit bewußt für wenige Typen entscheiden: Kurve, Gerade kurz und lang, Weiche und Prellbock.
Das Kurventeil konnten wir für beide Richtungen nutzen, da der check eh seitenabhängig stattfinden muß.

Ok, A2 ist im Scripting deutlich performanter, trotzdem ist die Objektanzahl der Schienenteile erheblich höher, so gibt es alleine ca. 6 oder 8 Weichen und knapp 6 Geraden plus diverse Sonderteile plus Brücke und Bahnübergang!

Nun kommen wir zu den Ungereimtheiten, zu OFP zeiten haben Objektgeometrien sich gegenseitig kräftig Schaden verteilt, so das dort unerwünschte Geometrien tötlich waren.
Seid ArmA ist dies nicht mehr der Fall, insofern kann man die Schienen nun auch ausmodellieren so das sie kein "Hologramm" mehr darstellen müssen.

Nun kommt man aber zum nächsten Problem : Brücken
Sie weichen naturgemäß vom Erdboden ab so das man hierfür eine Sonderlösung scripten muß, denn.


Es ist zwar möglich dank dem Surface abhängigen "Setpos" zu verhindern das die Waggons wegen kleineren Ungereimtheiten auf die Roadways der Schienen plötzlich hochspringen. (das normale setpos reagiert auf Objektroadways was hierbei eher ungünstig ist)
außerdem bietet das auch bei Bahnübergängen Vorteil, da dort das Straßenroadway oberhalb der Schienen bzw des Gleisbettes liegt.

Zu allen Übel sind die Schienenteile von Chenarus aber auch ungleichmäßig weit vom Erdboden entfernt, so das man diese Methode wiedereinmal nicht durchgehend verarbeiten kann.

Ergo: diverse Sonderfälle sind zu scripten, was mittlerweile die Performancevorteile sicherlich mehr als wett macht.


Ich hoffe ich konnte das jetzt verständlich rüberbringen das wenn man sowas eingermaßen ordentlich haben möchte man verdammt vieles überdenken muß.
In den BIS-Schienen sind derartige Techniküberlegungen offensichtlich nie in die Modelle eingeflossen. :(



Ähnlich sieht es bei den Waggons aus, es fehlen animierbare Drehgestelle, weil es sonst in Kurven besonders besch#&%$en aussieht, abgesehen davon das sich keiner einen Kopf gemacht hat das waggons an der einen oder anderen Stelle mit anderen Dingen kollidieren.

Krypto 09.02.2010 14:41

Warum liegen da überhaupt Schienen, wenn es unmöglich sein soll ? Bohemia modelliert doch keine 4-6 verschieden Weichen, weil es nicht geplant ist, die auch zu benutzen ?

Der Spieler erwartet keinen Eisenbahn-Simulator sondern eine grundlegende Funktion, wo zB ein Zug, der über eine Brücke fährt gesprengt werden kann. Oder man muss mit einem Hubschrauber die Lok zerstören, damit der Zug anhält.

Soll sich doch der Hersteller darum kümmern, dass die Schienen alle in einer Höhe liegen und die Drehpunkte richtig konfigurieren. Dafür sind Patches da.

WE WANT TEH TRAINZ! :naughty:

Cyborg11 09.02.2010 14:54

Ich poste einfach mal meinen Code, um euch ne Anregung zu geben. :confused: Rommel hats ähnlich, aber sein Skript kommt mit weniger Zeilen aus. :zahn:

Code:

private [       
        "_train","_track","_Objects","_ObjectsArray","_tracksStringArray",
        "_start","_nearRails","_object","_nearObjects","_n","_ar","_exit",
        "_check"
];
                       
_train = _this select 0;
 
_checkRail = {
        _check = false;
        _exit = false;
        _nearObjects = (nearestObjects [_train, [], 10]) - ((getPosATL _train) nearObjects 10);
        for [{_i = 0}, {_i < count _nearObjects}, {_i = _i + 1}] do {
                _object = _nearObjects select _i;
                _str = toUpper str (_object);
                _ar = toArray _str;

                _n = 8;
                If (_ar select _n == 82) then {
                        If (_ar select (_n + 1) == 65 && _ar select (_n + 2) == 73) then {
                                player sideChat "TEST! _n = 8";
                                _track = _object;
                                _exit = true;
                        };
                } else {
                        If (_ar select (_n + 1) == 82) then {
                                _n = 9;
                                If (_ar select (_n + 1) == 65 && _ar select (_n + 2) == 73) then {
                                        player sideChat "TEST! _n = 9";
                                        _track = _object;
                                        _exit = true;
                                };
                        };
                };
                //If (_exit) exitWith{};
                hintSilent format ["Object: %1\nNearRails:\n%2\n\nNearObjects:\n%3.p3d",_object,_nearRails,_nearObjects];
                //_format = format ["Select: %4\nObject: %1\nStr: %2\nAr: %3",_object,_str,_ar,_ar select 8];
                //hint _format;
                //diag_log _format;
        };
        _check = true;
};

// Object: 962520: railsn_40.p3d
// Str: 962520: RAILSN_40.P3D
// Ar: [57,54,50,53,50,48,58,32,82,65,73,76,83,78,95,52,48,46,80,51,68]
// _array = [82,65,73,76,83,78,95,52,48,46,80,51,68];
// _array = [82,65,73,76,83,78,95,50,53];
// hint tostring _array;
// 32 = :
// 34 = "
// [82,65,73,78,83] = RAILS

[] call _checkRail;

//_nearObjects = (nearestObjects [_train, [], 10]) - ((getPosATL _train) nearObjects 10);
//_track = _nearObjects select 0;
hintSilent format ["Object: %1\nNearRails:\n%2\n\nNearObjects:\n%3.p3d",_object,_nearRails,_nearObjects];

sleep 1;
//player attachTo [_train, [0,0,2]];


//Start Position
_start = _track;


//hint str (_start);

//Place Train
_vehicle = createVehicle ["HMMWV", _train modelToWorld [0,0,0], [], 0, "NONE"];
_train attachTo [_vehicle, [0,0,0]];
_vehicle setPos [(getPos _start) select 0, (getPos _start) select 1, 0];
//_vehicle setDir getDir _start;
_vehicle setVectorDir (VectorDir _start);
sleep 1;

//Move train
while {alive _train} do { 
        //_helih = createVehicle ["HeliHCivil.p3d", _train modelToWorld [0,0,0], [], 0, "NONE"];
        //sleep 0.02;

        [] call _checkRail;
        //player globalchat str (_check);
        //WaitUntil {_check};
        //hintSilent str (_track);
        //_vehicle setDir (getdir _track);
        //_mopos = _track modelToWorld [0,0,0];
       
        //_nearObjects = (nearestObjects [_train, [], 20]) - ((getPosATL _train) nearObjects 20);
        //_track = _nearObjects select 0;
        hintSilent format ["Object: %1\nNearRails:\n%2\n\nNearObjects:\n%3.p3d",_object,_nearRails,_nearObjects];
       
        //_pos = _track worldToModel (getposATL _train);
        //_pos set [0, 0]; _pos set [2, (_pos select 2) min 2];
        //_pos = _track ModelToWorld _pos;
        //_vehicle setPosATL _pos;
       
        _vel = velocity _vehicle;
        _dir = direction _track;
        _vehicle setVectorDir (VectorDir _track);
        _speed = 10;
        _vehicle setVelocity [(_vel select 0) + (sin _dir * _speed), (_vel select 1) + (cos _dir * _speed), 0];
        //_vehicle setVelocity [(20 + sin (getdir _track)*20), (20 + cos (getdir _track)*20), 0];
        sleep 0.01;
        //_vehicle setpos [_mopos select 0, _mopos select 1, _mopos select 2];
       
        //deleteVehicle _helih;
};

Skript vom gachopin hab ich noch nicht gesehen.

Baraka 09.02.2010 19:14

Wow Lester, das war wirklich eine sehr ausführliche und gute Ausführung :daumen: .
An viele Sachen habe ich gar nicht gedacht. Sollte es am Ende an einem passenden Model scheitern bin ich gerne bereit Zug und ein paar Wagen zu machen,allerdings brauche ich dann Hilfe bei den Animationen und bei den Proxys. Beim Scripten kann ich leider gar nichts helfen, bin froh wenn ich ne Config so umschreiben kann das etwas ingame funktioniert.

INNOCENT&CLUELESS 09.02.2010 19:26

Weiche dürfte recht einfach sein je nach dem wo der Zug lang soll denn Geraden oder den krummen Teil in die Welt spawnen (Wenn der Pfadbestimmende Teil unsichbar ist). Damit könnte sogar simpel der Weichenhebel ne Funktion bekommen.

Zu der Problematik mit den Schienen:

Man kann eigentlich nur ein Set aus Geraden, Kurven verschiedener Radien und Längen und Gedöns (Kreuzungen, Böcke, weichen verschiedener Radien, Brücken, Bahnübergänge, in Beton-Oberfläche eingelassene Schienen....) erstellen und halbwegs auf irgendeiner Insel zum Funzen bringen und dann das ganze Geraffel an BIS geben mit der bitte dies genau so oder besser auf Chernarus beim nächsten Patch umzusetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120