[Rel] Art Manager v. 1.5/ 1.6 Support Update

Allgemeines zum Thema Modden, Editor, Art Manager, Tutorials und Tools wird hier diskutiert.

Moderatoren: FOE, Handballfreak

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 26.11.2012, 13:22

Hi,

ich habe da mal eine Frage:

Könntest du den AM auch so modifizieren, dass man einen leicht zu erreichenden Button hat, wo man die Anzeige im AM umschalten kann, sodass leere/"0"-Einträge bei Records nicht angezeigt werden?

Grund: Gelegentlich sucht man in Records nach den dort eingetragenen Werten und wenn man dann immer erst alle offensive, defensiven, etc. durchschauen muss, nur um zu sehen, dass dort nichts drin steht, ist das schon etwas mühselig mit der Zeit.

Sprich: Wenn ich nur nachsehen will, welche Informationen in einem Record drin stehen, deaktiviere ich die leeren/"0"-Einträge. Wenn ich Werte in leere Einträge schreiben möchte, aktiviere ich die Anzeigefunktion wieder.

Wäre so etwas machbar?

btw: Irgendwo habe ich (iirc bei Munderbunny) mal ein Tool gesehen, wo die leeren Einträge aus den Records nach dem Modden gelöscht worden sind, um Platz zu sparen. Aber das ist irgendwie nur suboptimal, weil diese Einträge beim nächsten Laden der Templates im AM wieder angelegt werden.
Bild

Benutzeravatar
Epanias
Schamanenleger
Beiträge: 158
Registriert: 06.05.2010, 14:34

Beitrag von Epanias » 26.11.2012, 13:32

Ohje, komplett neue Aktionen einprogrammieren ist bei schon kompillierten c/c++ code AFAIK nur durch Disassemblen möglich, was ich leider nicht beherrsche, ich kann das Programm mit von der Engine und dem AM selbst gegeben Rändern modifizieren, jedoch leider nicht das ganze Programm in seiner Funktionsweise ändern.
Dazu müsste ich entweder den kompletten AM neu schreiben oder ein eigenes Externes Programm das evtl irgendwie über eine Aktion aufgerufen wird schreiben.
Aber die Idee ist prinzipiell gut...hm muss ich mal direkt drüber nachdenken da was zu machen.

Zum Tool das du mal bei Munderbunny gesehen hast...als Basis währe das optimal, da müsste man nur noch ein Programm dazu schreiben dass die Recordinfos die anschließend noch darin stehen anzeigen, nachdem der Rest rausgelöscht wurde. Das ganze würde dann aber nur außerhalb des AMs als eigenes Tool funktionieren, es sei denn man schafft es das Programm in den AM als Treath oder zumindest als Aufruf einzubinden.
Ein weiser Mann sagte einst: Zu viel Macht verdirbt den Charakter. Das IST die Wahrheit.
Update your Art Manager to 1.5/1.6

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 26.11.2012, 13:44

Hui, das ging aber schnell.

Also wenn du u.U. nur etwas am AM ändern und nicht hinzufügen kannst, könnte man evt. einfach eine der weniger oft genutzten Schaltflächen ersetzen. Ob man dann irgendwie in den Records-Lesen->Records-Darstellen-Zyklus des AM eingreifen kann, weiß ich leider nicht.

Ansonsten wäre natürlich ein eigenes Tool zum Records betrachten auch ausreichend. Obwohl dann natürlich die ganzen Textinformationen erst einmal wieder als Baumstruktur wieder dargestellt werden müssten. Die leeren Einträge müsstest du nicht zwangsweise löschen, sondern nur nach dem Einlesen und vor dem Darstellen von den "echten" Einträgen isoliert betrachten, sprich ignorieren. ^^

*Vote* für ein Records-Anschau-Werkzeug. 8)
Bild

Benutzeravatar
Epanias
Schamanenleger
Beiträge: 158
Registriert: 06.05.2010, 14:34

Beitrag von Epanias » 26.11.2012, 13:49

Ich denk mal drüber nach, mal gucken in wie weit sich das realisieren lässt.
Aufgrund momentanen Schwierigkeiten im RL werde ich dazu vermutlich leider so schnell keine Zeit finden, aber wenn ich mal eine Gelegenheit dazu bekomme, werde ich mal schauen. Evtl. währe ein Link zu diesem Tool von Munderbunny nicht schlecht, dass ich mir das mal anschauen kann.
Ein weiser Mann sagte einst: Zu viel Macht verdirbt den Charakter. Das IST die Wahrheit.
Update your Art Manager to 1.5/1.6

Benutzeravatar
Epanias
Schamanenleger
Beiträge: 158
Registriert: 06.05.2010, 14:34

Beitrag von Epanias » 25.10.2013, 20:46

Handballfreak hat geschrieben:Hi,

ich habe da mal eine Frage:

Könntest du den AM auch so modifizieren, dass man einen leicht zu erreichenden Button hat, wo man die Anzeige im AM umschalten kann, sodass leere/"0"-Einträge bei Records nicht angezeigt werden?

Grund: Gelegentlich sucht man in Records nach den dort eingetragenen Werten und wenn man dann immer erst alle offensive, defensiven, etc. durchschauen muss, nur um zu sehen, dass dort nichts drin steht, ist das schon etwas mühselig mit der Zeit.

Sprich: Wenn ich nur nachsehen will, welche Informationen in einem Record drin stehen, deaktiviere ich die leeren/"0"-Einträge. Wenn ich Werte in leere Einträge schreiben möchte, aktiviere ich die Anzeigefunktion wieder.

Wäre so etwas machbar?
...
Also, eine neue Aktion in den AM einprogrammieren geht nicht ohne Assembler Kenntnisse (die ich, wie schon erwähnt, nicht habe) aber als externes Tool ja. Ich arbeite momentan daran. Hier schon mal eine Art "Preview":
Bild

(Ich werde noch weitere Optionen hinzufügen wie z.B. Vergleichen was wo fehlt oder was gleich ist).

Gruß
Epanias

€dit: Achja, das ganze in der gewohnten AM Tree Struktur dazustellen wird schwierig, da ich dafür die TQIT Templates verwenden müsste, womit ich überhaupt keine Erfahrung habe, tut mir leid. Dieses nette kleine Feature kann ich leider nicht anbieten.
Ein weiser Mann sagte einst: Zu viel Macht verdirbt den Charakter. Das IST die Wahrheit.
Update your Art Manager to 1.5/1.6

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 25.10.2013, 23:21

Gute Idee. Bin gespannt auf die Umsetzung. Wird das dann nur ein Record-Betrachter oder kann man damit auch AM-Funktionen wie Build und Co. verwenden?
Epanias hat geschrieben:€dit: Achja, das ganze in der gewohnten AM Tree Struktur dazustellen wird schwierig, da ich dafür die TQIT Templates verwenden müsste, womit ich überhaupt keine Erfahrung habe, tut mir leid. Dieses nette kleine Feature kann ich leider nicht anbieten.
Hmm, schade. Ich hatte bei meinem Tre3-Calc auch bestimmte Records/dbr-/Text-Dateien ausgelesen und fand das nicht so aufwendig. Schwieriger war dann die Ausgabe wie im Spiel-UI, aber das findet hier wohl nicht statt, sondern einfach nur Variablenname und Werteliste. Die Templates sind imho relativ strukturiert aufgebaut, wodurch deren Arbeitsweise leicht ersichtlich ist:
1) Es werden andere Templates eingebunden, bspw. Offensive-Werte, Charakterwerte, etc.. Durch dieses Zusammenknüpfen mehrere Templates erkennt der AM alle für das gesuchte Template möglichen Variablen.
2) Es werden die Template eigenen Variablenstrukturen definiert
2.1) Zunächst gibt es die "Group"/Gruppen-Definition, deren Name dann links im AM steht.
2.2) Dann folgen meistens direkt die Variablen-Definitionen, wo der Name den Wert bekommt, der dann in den Records zu Beginn jeder Zeile steht. In "value" bzw. "defaultValue" stehen dann die Werte, genauso wie sie in den Records gespeichert sind, also ggf. mit Semikolon getrennt.

Hier mal mein Vorgehen, wenn ich dafür Zeit hätte. :wink:
Ausgangssituation: Du hast den Record eingelesen und alle Variablenname und zugehörigen Werte gespeichert.

Du müsstest also "nur":
1) Template-Bezeichnung in test.dbr auslesen
2) gleichnamiges Template öffnen/einlesen
3) in beispiel.tpl nach "Include File" suchen
3.1) zugehörigen/nachfolgenden "defaultValue" auslesen
3.2) alle Funde speichern - lokal (Liste für dieses Template) und global (Gesamteliste)
3.2.1) alle lokalen Funde durchgehen und mit jedem bei Schritt 2 einsteigen
Am Ende dieses Schrittes solltest du eine Liste aller global benötigten Templates haben.
4.) Alle nötigen Templates (nacheinander) öffnen/einlesen
5.) in beispiel.tpl nach allen Gruppennamen suchen
5.1) Wenn du einen Gruppennamen findest, suchst du nach Variablennamen, bis du wieder "group" findest.
5.1.1) Alle gefundenen Variablennamen oder neue Untergruppen ordnest du dem übergeordneten Gruppennamen zu
Beachte: Es kann auch Untergruppen bei Untergruppen geben, usw.
6.) in beispiel.tpl nach Variablenamen ungleich "Include File" suchen
6.1) Wenn du die gleichnamigen Variable im Record gefunden hast, speicherst du Record-Wert(e) und Variablennamen.
6.2) Wenn du keine gleichnamige Variable im Record gefunden hast, speicherst du den zugehörigen/nachfolgenden "defaultValue" aus dem Template.
7.) Für die Baumstruktur links liest du alle Gruppen- und Untergruppennamen ein.
7.1) Wenn auf ein Gruppennamen geklickt wird, werden rechts die zugehörigen Variablen - Name und Wert - angezeigt (siehe Schritt 5).
Bild

Benutzeravatar
Epanias
Schamanenleger
Beiträge: 158
Registriert: 06.05.2010, 14:34

Beitrag von Epanias » 25.10.2013, 23:41

Ich weiß, wie Templates funktionieren, das Problem ist, dass ich mich nicht so gut mit der Programmierung auskenne, dass ich meinem Programm die Schritte die du beschrieben hast so beibringen kann, dass es diese für alle Tpls automatisch macht.
Ich werde die Werte noch ein bisschen Formatieren von ihren Vorausgehenden Namen abgetrennt, dass es übersichtlicher wird. Ich schaue mir evtl. mal wenn ich viel Zeit hab das Blockweise Lesen einer Textdatei an, vielleicht kann man damit etwas anfangen.
Ursprünglich war es nur als Record Betrachtungstool gedacht, sonst könnte ich ja auch gleich einen eigenen Art Manager programmieren und das würde um einiges mehr an Zeit benötigen, wovon ich reichlich wenig habe :D.

Gruß
Epanias
Ein weiser Mann sagte einst: Zu viel Macht verdirbt den Charakter. Das IST die Wahrheit.
Update your Art Manager to 1.5/1.6

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 25.10.2013, 23:50

Epanias hat geschrieben:Ich weiß, wie Templates funktionieren, das Problem ist, dass ich mich nicht so gut mit der Programmierung auskenne, dass ich meinem Programm die Schritte die du beschrieben hast so beibringen kann, dass es diese für alle Tpls automatisch macht.
Okay, kein Problem. In welcher Sprache programmierst du?
Bild

Benutzeravatar
Epanias
Schamanenleger
Beiträge: 158
Registriert: 06.05.2010, 14:34

Beitrag von Epanias » 26.10.2013, 00:15

Momentan in C#, bin auch eifrig am Code lesen aus anderen Programmen, nur leider ist der AM in der nicht decompillierbaren Sprache c++ geschrieben, sonst würde ich da einfach in den Code gucken.
Ein weiser Mann sagte einst: Zu viel Macht verdirbt den Charakter. Das IST die Wahrheit.
Update your Art Manager to 1.5/1.6

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 26.10.2013, 10:40

Was mir noch eingefallen ist: Du kannst diese Gruppenzugehörigkeit einzelner Variablen auch fest vorgeben. Bspw. der Variablen "characterDexterityModifier" ordnest du der Hauptgruppe "Character" zu und eine Untergruppe "Attributes".

Was zum Teil auch funktionieren kann, ist die Gruppenbezeichnung aus dem Variablennamen heraus zu lesen. Im obigen Beispiel könntest du so zumindest die Hauptgruppe "Character" automatisch bestimmen. Leider sind die Variablennamen nicht immer aus den Gruppenbezeichnungen zusammengesetzt. Aber einen Großteil der Variablen könntest du so den großen Hauptgruppen "Offensive", "Defensive", "Character" und "Retaliation" zuordnen.
Bild

Benutzeravatar
Epanias
Schamanenleger
Beiträge: 158
Registriert: 06.05.2010, 14:34

Beitrag von Epanias » 26.10.2013, 11:35

Die Idee an sich ist nicht schlecht, nur ist das ziemlich viel Arbeit, für die ganzen Variablen Übergruppen zu erstellen und eine Engine zu schreiben, die diese dann richtig zuordnet. Ich denk mal darüber nach, vielleicht lässt es sich mit ein par Hauptgruppen wie z.B. Schadens und Rüstungswerten machen.
Ein weiser Mann sagte einst: Zu viel Macht verdirbt den Charakter. Das IST die Wahrheit.
Update your Art Manager to 1.5/1.6

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 31.10.2013, 16:07

Hinweis bez. meiner Version eines Records Viewers.
Bild

Seimen
Magische Items-Träger
Beiträge: 32
Registriert: 31.08.2012, 10:46
Wohnort: Bayern

Art Manager

Beitrag von Seimen » 31.10.2013, 20:46

Halle Beisamen,

hab mal ne frage bezüglich Artmanager.
Ist das ein Tool zum Ändern der Ingame Daten, Werte, etc.
Will in naher Zukunft auch was in dieser Richtung machen (Meisterschaften; Bugfixes, etc.).
Was ist eig mit dem Art-Manager im Installationsverzeichnis von titan quest.
Ist der ungeeignet, weil ihr einen eigenen habt ?

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7521
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 31.10.2013, 21:43

Ja, der Art Manager dient zum Ändern von Records/.dbr-Dateien, die in kompakter Form die database.arz bilden und somit die Ingame-Werte beinhalten. Mit dem Art Manager kann man aber nicht nur die dbr-Dateien anschauen und bearbeiten, sondern bspw. auch zusammenbauen, sodass daraus eine .arz-Datei wird - die letztlich jede Mod und das Spiel brauchen.

Der Art Manager ist ein von TQ bzw. TQIT bereit gestelltes Werkzeug zum Modden. Für die wichtigsten Sachen funktioniert er prima. Leider hat er an ein paar Enden noch Verbesserungspotential, daher hat Epanias eine veränderte Version des Art Managers erstellt, die ein paar Sachen am ursprünglichen AM erweitert/ändert - siehe Changelog hier im Thema.
Bild

Seimen
Magische Items-Träger
Beiträge: 32
Registriert: 31.08.2012, 10:46
Wohnort: Bayern

re

Beitrag von Seimen » 31.10.2013, 21:47

danke für die schnelle Antwort.

Werd mich mal im Forum einlesen ;-)

Antworten