• Werbung

GE-Script MoveToZero

Benutzeravatar
TracMax
Beiträge: 204
Registriert: Sa 18. Okt 2014, 12:21
Danke: 114

GE-Script MoveToZero

Beitragvon TracMax » Mo 2. Jan 2017, 22:08

Hallo,

beim Umbau meiner Map auf LS17 habe ich noch ein Script für den GE geschrieben, das wohl auch für andere nützlich sein kann. Das Skript verschiebt eine TransformGroup in den Nullpunkt und ändert die Koordinaten aller Child-Objete so um, dass die Objekte an Ort und Stelle bleiben. Dies funktioniert auch dann, wenn die TG, die auf Null verschoben wird, selbst ein Unterobjekt eines verschobenen Objekts ist.
Die Bilder vorher und nachher nachen das etwas deutlich:
MoveToZero1.jpg

MoveToZero2.jpg


Hier das Script:
moveToZero.lua
(3.83 KiB) 514-mal heruntergeladen


Das Script geht auch mit Objekten, dann wird jedoch das gewählte Objekt auf den Nullpunkt verschoben. Damit stimmen die Abstände zu den Child-Objekten nicht mehr.

Gruß TracMax

Benutzeravatar
joker301069
Beiträge: 6514
Registriert: Sa 22. Nov 2014, 23:18
Danke: 3112
Wohnort: Ruhrpott,NRW
Geschlecht:

Re: GE-Script MoveToZero

Beitragvon joker301069 » Mo 2. Jan 2017, 22:17

Funktioniert das auch mit einer Spline? Dieses Thema hatten wir die Tage mal :)
Kein Support per PN! Nur im Forum und für Marhu Mods :D

Benutzeravatar
TracMax
Beiträge: 204
Registriert: Sa 18. Okt 2014, 12:21
Danke: 114

Re: GE-Script MoveToZero

Beitragvon TracMax » Mo 2. Jan 2017, 22:52

Das sollte auch mit einer Spline funktionieren, wenn die Spline ein Child der TG ist, habe es selber aber noch nicht probiert.
Nach dem Rumprobieren mit dem SplinePlacement-Script scheint es dem Spline nichts auszumachen, wenn er selbst verschoben und rotiert ist. Wenn er allerdings ein Child einer verschobenen / rotierten TG ist, dann kann man ihn nicht mehr bearbeiten.
Wenn das nicht hilft, dann sehe ich noch die Möglichkeit, das "ParallelSpline"-Script so umzubauen, dass man alle Spline-Punkte ausliest, diese verschiebt und in die Console schreibt. Das ist vermutlich die komplizierteste Lösung :crazy: :pfeif:

MorDecai
Beiträge: 51
Registriert: So 13. Dez 2015, 00:15
Danke: 2

Re: GE-Script MoveToZero

Beitragvon MorDecai » Mo 2. Jan 2017, 22:58

Do the same function as "Freeze Transformation" when you select "Translation"?

Benutzeravatar
FalPos
Beiträge: 1598
Registriert: Mo 13. Jul 2015, 19:01
Danke: 634
Wohnort: Sachsen
Geschlecht:

Re: GE-Script MoveToZero

Beitragvon FalPos » Mo 2. Jan 2017, 23:01

Das ist ja mal eine feine Sache. Kann man mit dem Script das Transformationsgizmo beim Nullen auch näher an das Objekt der Begierde heranbekommen? Ich habe manchmal das Problem, wenn ich ein Objekt importiere, das das Objekt am sagen wir rechten Kartenrand ist, und das Transformationsgizmo am linken Kartenrand ist. Das macht sich dann immer sehr umständlich beim platzieren.

Aber :danke: erstmal für Deine Arbeit.
Support für die Saxonia ausschließlich hier im Forum, oder auf unten angegebener Website.
Die Website zur Saxonia Support-Seite für die Saxonia und Kernstadt2017

Benutzeravatar
TracMax
Beiträge: 204
Registriert: Sa 18. Okt 2014, 12:21
Danke: 114

Re: GE-Script MoveToZero

Beitragvon TracMax » Mo 2. Jan 2017, 23:45

MorDecai hat geschrieben:Do the same function as "Freeze Transformation" when you select "Translation"?

No, it only changes position and rotation of child objects. "Freeze transformations" recalculates all coordiantes of each object, it changes the shape itself (which can not be seen direcly because shapes are hidden in shapes file). If you select "preserve instances" it duplicates the shape - in this way you can blow up your shapes file if you have many objets at differnt positions (like fences).

DE: Das Script verändert nur die Position und Rotation aller Child-Objekte. Im Gegensatz dazu berechnet "Freeze Transformations" den Shape als solchen neu (was man in der Regel gar nicht merkt, weil die Shapes in der shapes-Datei komprimert und versteckt sind ;) ). Wenn man dazu noch "preserve instances" angekreuzt hat, dupliziert "freeze Transformations" den shape und erzeugt einen neuen, verschobenen shape - wenn man nicht aufpasst, kann man die shapes-Datei auf ungeahnte Größe aufblasen, insbesondere wenn man z.B. aus einem Zaunelement hunderte verschiedene macht :oops: :doh

Gruß TracMax

Benutzeravatar
TracMax
Beiträge: 204
Registriert: Sa 18. Okt 2014, 12:21
Danke: 114

Re: GE-Script MoveToZero

Beitragvon TracMax » Mo 2. Jan 2017, 23:53

FalPos hat geschrieben:Das ist ja mal eine feine Sache. Kann man mit dem Script das Transformationsgizmo beim Nullen auch näher an das Objekt der Begierde heranbekommen? Ich habe manchmal das Problem, wenn ich ein Objekt importiere, das das Objekt am sagen wir rechten Kartenrand ist, und das Transformationsgizmo am linken Kartenrand ist. Das macht sich dann immer sehr umständlich beim platzieren.

Aber :danke: erstmal für Deine Arbeit.

Wenn das Objekt nur mittels TransformGroups verschoben ist, kann das Script helfen. Sonst lade doch das Objekt alleine in den GE und schiebe es per "freeze Transformations" in den Nullpunkt - wenn es nur ein Objekt ist, kann man den Haken bei "preserve instances" rauslassen, dann gibt es keine extra shapes. Ggf. kannst du auch einen Teil der Unterobjekte erst mal rauslöschen, das Hauptobjekt per "freeze transformations"verschieben und dann die Unterobjekte in eine TG importieren und passend schieben.

Viel Erfolg
TracMax

Herby
Beiträge: 3
Registriert: Mo 10. Mär 2014, 14:36
Danke: 0

Re: GE-Script MoveToZero

Beitragvon Herby » Fr 6. Jan 2017, 18:58

Hi das skript finde ich echt Interessant :thumbup: , Ich hätte dazu eine Frage ist es damit auch Möglich zum Beispiel alle Bäume in einer Transformgroup auf die Höhe Null zu setzen.
Ich Baue gerade meine Map und es ist sehr mühsam jeden Baum einzeln auf Null zu setzen und ich hatte nicht so das Glück ein Skript zu entwickeln :wall:

Benutzeravatar
TracMax
Beiträge: 204
Registriert: Sa 18. Okt 2014, 12:21
Danke: 114

Re: GE-Script MoveToZero

Beitragvon TracMax » Fr 6. Jan 2017, 21:08

@Herby
Um die Bäume auf Null zu setzen, wäre es sinnvoller, die mit "yNeu=getTerrainHeightAtWorldPos(terrain, x, y, z)" die Höhe des Terrains an der Position des jeweiligen Baumes abzufragen und den Baum dann mit "setTranslation(idBaum, x, yNeu, z)" zu platzieren. Damit wären alle Bäume auf der Erde, egal wie hügelig das Gelände ist.
Schau dir mal das Script SplinePlacement an http://marhu.net/phpBB3/viewtopic.php?f=204&t=5311&p=70482#p70482, da kannst du einen Teil übernehmen.

Herby
Beiträge: 3
Registriert: Mo 10. Mär 2014, 14:36
Danke: 0

Re: GE-Script MoveToZero

Beitragvon Herby » Sa 7. Jan 2017, 17:37

@TracMax
Hallo vielen Danke für deinen Tipp :hi: , aber Ich bin wohl nicht für das erstellen von Scripten geschaffen funktioniert bei mir nicht. :crazy:

Ich stelle mir das wohl zu einfach vor, Ich möchte einfach mehrere Objekte in dem Scenegraph makieren und alle auf eine zuvor eingestellte höhe setzen, also nur die Translate Y auf 0 setzen zum Beispiel alle anderen Translate
sollen aber nicht geändert werden. Wenn ich mir das zu einfach vorstelle belehrt mich eines besseren. :?:

Vielen Dank für die Vorschläge


Zurück zu „Sonstige“

Wer ist online?

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