PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Korrekte Positionierung anhand relativer Ausrichtung


wolkenstuermer
05.08.2017, 06:53
Hi,

ich hab' ein Problem beim Ausrichten von mehreren Objekten anhand eines Basisobjekts.

Ich will auf der Karte ein Lagerfeuer platzieren. Die Ausrichtung dieses Feuers soll die Ausrichtung aller weiteren, dazu gehörenden Objekte bestimmen. Also z.B.

- 1 Lagerfeuer (vorher auf Karte gesetzt, stellt die Mitte dar, gibt die Ausrichtung vor, z.B. dir +0)
- Zelt 1: x+0, y+3.5, dir +0 (relativ zum Feuer, also oben drüber)
- Zelt 2: x-3.5, y+0, dir -90 (relativ zum Feuer, also links daneben, gedreht)

Wie stelle ich es im Scripting jetzt so an, dass sich diese Positionierung anhand des Winkels des Feuers entsprechend anpasst, d.h. sich alles korrekt ausrichtet, wenn ich das Feuer z.B. um 90° drehe, dass Zelt 1 dann x +3.5, y +0, dir +90 ausgerichtet ist?

Gibts da mathematisch was Sinnvolles zum Anwenden? Es hört sich nach Vektoren an, aber ich hab' leider zu wenig Plan, das auszuhirnen.

Jemand 'ne Idee oder Richtung für mich? :ugly:

Pfandgiraffe
06.08.2017, 22:10
Vielleicht hilft dir das schon weiter?

https://community.bistudio.com/wiki/Eden_Editor:_Custom_Composition


Grüße

wolkenstuermer
09.08.2017, 05:59
Hi Pfandgiraffe,

danke dir, Composition kenne ich, aber wenn ich das Beispiel von Lawrov im BI-Forum richtig verstehe, ist da wirklich Hardcore-Programmierung gefragt, das dann in einem Skript zu verwenden (er hat da ein komplettes Mod dafür geschrieben), das war mir zu kompliziert.

Ich suchte das eigentlich zum Skripten, bin dann irgendwie an ModelToWorld hängen geblieben, was aber dummerweise kein Terrain mit einberechnet (dann hängt alles in der Luft, beim Spawnen, je nach Gelände).

Es funktioniert aber - für die, die das interessiert - mit getRelPos.
Beispiel einer einfachen Wasserflasche, die in Relation zu einem Objekt (z.B. Helipad) gespawnt wird. Der Vorteil und auch der Sinn für den ganzen Aufwand liegt darin, dass man die Komposition, die man spawnt, mittels der Richtung des Objekts drehen kann.

In meinem Fall war das ein Mini-Camp von Banditen (zwei Zelte, ein paar Schlafsäcke, ein paar Flaschen und Gedöhns, sowie zufällige Ammokisten und eine Patrouille, die darum kreist). Ich wollte das so spawnen lassen, dass sich die Komposition im Editor dann mittels Drehung des Hilfs-Objekts (Helipads) komplett um dieses Zentrum drehen lässt, um z.B. die Öffnung von Camps, Lagern, etc. in die gewünschte Richtung drehen zu können.

Mit getPos bringt das nix, weil es keine Relation kennt. Da drehen sich dann alle Gegenstände um sich selbst. Oder man darf mit Vektoren und Co rumhantieren, wofür mein Hirn zu klein ist :zahn:

(_center ist das Hilfs-Objekt, was in der Mission platziert wird (z.B. ein unsichtbares Helipad))

params
[
["_center",objNull,[objNull]]
];

_cPos = getPos _center;
_rDir = getDir _center;

_bottle = "Land_BottlePlastic_V2_F" createVehicle _cPos;
_bottle setDir +10 + _rDir;
_bottlePos = _center getRelPos [2,-100];
_bottle setPos _bottlePos;

mit _bottle setDir + 10 + _rDir dreht man die Flasche um die Rotation zurück, die man dann in der relativen Positionierung für die Richtung verwendet (schwer zu erklären).

mit _bottlePos = _center getRelPos [2,-100]; definiert man nun eine Position etwa 2 Meter entfernt vom _center (Objekt in der Mission) und in einem Winkel von 100° gegen den Uhrzeigersinn (also ca. 8:30 Uhr Position).

Terrain wird bei getRelPos mit einbezogen, die gespawnten Gegenstände richten sich also z.B. auch an einem Berghang halbwegs korrekt aus, ohne komisch in der Gegend herumzustehen (was bei ModelToWorld leider der Fall ist).

Falls ich das viel zu kompliziert mache und es einen einfachen Weg gibt, wäre ich happy, wenn mir das jemand schildern könnte. Momentan glaube ich, dass ich es mal wieder viel zu kompliziert mache :rolleyes:

Pfandgiraffe
29.08.2017, 19:01
Damit kannst du eine Komposition als SQF erstellen.

Map Builder - Tools - Armaholic (http://www.armaholic.com/page.php?id=27914)


Grüße

wolkenstuermer
15.09.2017, 18:17
Danke Pfandgiraffe, das werde ich mir definitiv mal anschauen!