Der eine oder andere von euch kennt sicher das Programm G3RAMmod von shak-otay. Es ermöglicht die komfortable Positionierung von Objekten, innerhalb des Spiels.
Allerdings hat es ein paar Fehler, die etwas stören. Zum einen berechnet es die Positionsdaten falsch, so wie das früher auch der lwrechner gemacht hat, deswegen kommt es unter bestimmten Kamerawinkeln zu Ausblendung des positionierten Objekts.
Zweitens bietet es keine Funktion, um Objekte zu skalieren, was manchmal benötigt wird.
Also habe ich mich in den letzten Tagen (Text ist schon etwas älter, sind also schon ein paar Tage mehr) mit der Thematik beschäftigt und es ist eine nettes Programm dabei heraus gekommen.
Die Bedienung ist relativ einfach, aber eine kleine Anleitung schadet sicher nicht
1. Man sucht sich ein Objekt aus, dass man positionieren will. (So ein Objekt kann ein schon in der Spielwelt vorhandenes sein oder es kann ein über den spawn Befehl gespawntes sein.)
2. Nun braucht man die Guid des Objekts, z.B. F9DED253-49AD-467D-A99C-69132A6BF2B5 (Groß und Kleinschreibung spielt keine Rolle, im Tiny Hexer wird alles groß angezeigt im Spiel klein, aber dem Programm ist es egal).
3. Es ist nur der letzte rot markierte Teil der Guid von Bedeutung, diesen gibt man (man muss ihn nicht komplett eingeben, 6 Zeichen sollten im Normalfall ausreichen) in das Feld neben dem Suchen Button ein und klickt auf diesen.
4. Nun braucht das Programm etwas und füllt dann die Positions Felder aus. Oder es kommt eine Fehlermeldung "Guid nicht gefunden", wenn kein Objekt für diese Guid gefunden wurde.
5. Wenn man die Position angepasst hat, klickt man auf Ändern und das Objekt wird im Spiel verschoben.
(Wenn man die Position wieder ändern will reicht es, die Position anzupassen und Ändern zu klicken. Es ist kein erneutes Suchen nötig.)
6. Falls man ein anderes Objekt verschieben will, trägt man einfach die Guid des anderen Objekts ein und klickt auf Suchen. Ein Neustart des Programms ist nicht von Nöten.
Hab das Tool gerade mal ausprobiert und leider scheint es die GUIDs der Objekte nicht zu finden. Das gleiche Problem hatte ich bei Shaks Originalversion, die nicht auf über 2GB RAM optimiert war.
Ohje, das ist noch die allererste Version, da war noch ein doofer Fehler drin.
Als ich diesen Thread eröffnet habe, habe ich wohl ausversehen nicht die aktuellste sondern die älteste Version hochgeladen.
Kann es sein, dass gescalte Objekte ihren CollisionShape verlieren?
Verlieren nein, aber bestimmte CollisionShapes skalieren nicht mit, wenn das Objekt skaliert wird.
(Wenn du ein Objekt im Spiel mit Gothic 3 Ram Mod verschoben hast, kann das Verhalten nochmal anders sein. Ich beziehe mich auf den Fall, dass du die Skalierung eines Objektes in den Weltdaten geändert hast, und dann ein neues Spiel startest.)
Für die CollisionShape-Typen ConvexHull und TriMesh möchte ich chris-40 zitieren.
Zitat von chris-40
Wenn du nun die Barrikaden hochskalieren willst, gib es nun 2 Möglichkeiten, das die CollisionShape exakt zum Mesh passt:
1.) Du behältst die ConvexHull bei, dann kannst du nur nach einer Vorgegebenen Verhältnis Skalieren.
Die Skalier Faktoren findest du im Ordner "_compiledPhysic":
Zum Beispiel: G3_Object_Wood_Wall_02_CV_SC_1_3200.xnvmsh. Hier kannst du um den Faktor 1,32 skalieren. usw.
Wichtig: Im "ShapeType-DefinitionFile" den Eintrag "G3_Object_Wood_Wall_01_CV.xnvmsh" beibehalten und nicht durch "G3_Object_Wood_Wall_02_CV_SC_1_3200.xnvmsh" ersetzen. G3 findet die Skalierung von selbst.
2,) Man stellt um auf eECollisionShapeType_TriMesh. Da muss du aber als "ShapeType-DefinitionFile" die "G3_Object_Wood_Wall_02.xnvmsh" Datei verwenden und man kann nun stufenlos skalieren.
Wichtig: Die vorhandene "min-Vektor ConvexHull:max, max-Vektor ConvexHull:min" durch die der "G3_Object_Wood_Wall_02.xnvmsh" ersetzen. Diese Vektoren findest du in der G3_Object_Wood_Wall_02.xnvmsh-Datei.
Fazit:
Skaliert Box, Sphere, Capsule automatisch? Muss du probieren, kann ich dir ohne es selber auszuprobieren nicht verraten.
Skaliert ConvexHull automatisch? Nur wenn es eine Datei genau für diese Skalierung gibt
Skaliert TriMesh automatisch? Ja
PS: Du kannst die CollisionShapes eines Objekts sehr komfortabel mit g3dit bearbeiten.
Zunächst mal verlieren Objekte generell ihre Kollision, wenn sie im laufenden Spiel mit der RamMod verschoben werden, bzw. das CS wird nicht autmatisch mitverschoben. Sieht man schön, indem man ein Objekt verschiebt und dann mit Strg+Q die Kollision anzeigen lässt. Irgendwo steht dein Objekt und ein paar Meter weiter ist das Netzmodell des CS an der Originalposition zu sehen.
Das lässt sich "beheben", indem du dich wegteleportierst. Wenn du zurückkehrst und die Qojekte neu geladen werden, ist auch das CS an der richtigen Stelle.
Skalierte Objekte behalten ihre Kollision auch dann nicht immer, wenn du sie in den Weltdaten änderst. Das Kommt auf den Typ des CollisionShapes an.
eECollisionShape Box skaliert meiner Erfahrung nach automatisch mit. TriMesh auch. ConvexHull (im Spiel orangenes Gitternetz) tut das aber NICHT, bzw. nur dann, wenn zu dem Objekt eine passend skalierte .xnvmsh existiert.
chris40 hat dazu mal etwas erläutert:
Wenn du nun die Barrikaden hochskalieren willst, gib es nun 2 Möglichkeiten, das die CollisionShape exakt zum Mesh passt:
1.) Du behältst die Box ConvexHull bei, dann kannst du nur nach einer Vorgegebenen Verhältnis Skalieren.
Die Skalier Faktoren findest du im Ordner "_compiledPhysic":
Zum Beispiel: G3_Object_Wood_Wall_02_CV_SC_1_3200.xnvmsh. Hier kannst du um den Faktor 1,32 skalieren. usw.
Wichtig: Im "ShapeType-DefinitionFile" den Eintrag "G3_Object_Wood_Wall_01_CV.xnvmsh" beibehalten und nicht durch "G3_Object_Wood_Wall_02_CV_SC_1_3200.xnvmsh" ersetzen. G3 findet die Skalierung von selbst.
2,) Man stellt um auf eECollisionShapeType_TriMesh. Da muss du aber als "ShapeType-DefinitionFile" die "G3_Object_Wood_Wall_02.xnvmsh" Datei verwenden und man kann nun stufenlos skalieren.
Wichtig: Die vorhandene "min-Vektor ConvexHull:max, max-Vektor ConvexHull:min" durch die der "G3_Object_Wood_Wall_02.xnvmsh" ersetzen. Diese Vektoren findest du in der G3_Object_Wood_Wall_02.xnvmsh-Datei.
Zunächst mal verlieren Objekte generell ihre Kollision, wenn sie im laufenden Spiel mit der RamMod verschoben werden, bzw. das CS wird nicht autmatisch mitverschoben. Sieht man schön, indem man ein Objekt verschiebt und dann mit Strg+Q die Kollision anzeigen lässt. Irgendwo steht dein Objekt und ein paar Meter weiter ist das Netzmodell des CS an der Originalposition zu sehen.
Ist mir auch schon bekannt. War mit Shaks Ram Mod auch nicht anders und macht ja Sinn.
Skalierte Objekte behalten ihre Kollision auch dann nicht immer, wenn du sie in den Weltdaten änderst. Das Kommt auf den Typ des CollisionShapes an.
eECollisionShape Box skaliert meiner Erfahrung nach automatisch mit. TriMesh auch. ConvexHull (im Spiel orangenes Gitternetz) tut das aber NICHT, bzw. nur dann, wenn zu dem Objekt eine passend skalierte .xnvmsh existiert.
Und hier ist die Krux, ich habe ein paar Steine skaliert, die ConvexHull verwenden.
Zitat von George
Skaliert ConvexHull automatisch? Nur wenn es eine Datei genau für diese Skalierung gibt
PS: Du kannst die CollisionShapes eines Objekts sehr komfortabel mit g3dit bearbeiten.
Genau das hätt ich gerne vorher gewusst Im Endeffekt müsste ich also für ein skaliertes Mesh mit ConvexHull-CS eine neue xnvmsh erstellen, richtig? Damit wären wir wieder bei meinem alten Problem, ich habs immer noch nicht geschafft einen funktionierenden CS ins Spiel zu bringen
Ist mir auch schon bekannt. War mit Shaks Ram Mod auch nicht anders und macht ja Sinn.
War nur verwirrt, weil du es hier gepostet hast.
Zitat von |Lorn|
Genau das hätt ich gerne vorher gewusst Im Endeffekt müsste ich also für ein skaliertes Mesh mit ConvexHull-CS eine neue xnvmsh erstellen, richtig? Damit wären wir wieder bei meinem alten Problem, ich habs immer noch nicht geschafft einen funktionierenden CS ins Spiel zu bringen
Dabei kann ich dir nicht helfen, ich hab's auch mal versucht und bin gescheitert. chris-40 kennt sich damit aber aus, den könntest du detailliert fragen. Und George weiß sicher auch bescheid.
Naja, hab damit Objekte positioniert und dann in ne lrentdat gepackt. Beim Testen der Weltdatei ist mir eben aufgefallen, dass der CS nicht passt. Da es hier keinen Hinweis bzgl. Skalierung gab, hatte ich vermutet es könnte ein Programmfehler sein.
Dabei kann ich dir nicht helfen, ich hab's auch mal versucht und bin gescheitert. chris-40 kennt sich damit aber aus, den könntest du detailliert fragen. Und George weiß sicher auch bescheid.
Ich hab schon n paar Mal mit George dahingehend korrespondiert. Irgendwie krieg ichs einfach nicht hin.
Was ist eigentlich mit den von PB gesetzten und gescalten Meshes mit ConvexHull-CS? Da gibts im Originalspiel doch auch ein paar, haben die auch keinen CS mehr?
Daher schätze ich, du hast eine große Chance auch zu deinem gesuchten Objekt ein zur Skalierung passendes CS finden. Warum die Skalierungsfaktoren so verflixt unschön sind (0.4323, 0.6791 ... brrr) kann dir vermutlich nur PB benatworten. Vielleicht hatten sie ein Tool, das automatisch ein zur Skalierung passendes CS ausspuckt, was weiß ich.