Um nicht zu viele neue Threads zu erstellen, will ich meine Fragen in diesem Thread sammeln.
Es geht um Gothic 1.
Aktuelle Frage:
Ist es möglich die Angriffsgeschwindigkeit zu ändern?
Ich habe im Forum bereits nach Threads dazu gesucht und folgendes gefunden:
Zitat von Fiddlers Green
Ich befürchte gar nicht. Ich hatte die Frage auch schonmal gestellt und da wurde mir gesagt, dass man die Angriffsgeschwindigkeit nicht ändern kann.
Es wurden halt einmal die Bewegungsanimationen für die drei Kampfstufen gemacht und werden aktiviert, sobald der PC einen bestimmten Wert in seinem Skill erreicht.
Zitat von re: wall_com
3. soweit ich weis nicht möglich weil die geschiwndigkeite nur einmal animiert wurde und die breitschwertern von langschwertern oder kurzschwertern eh net unterschieden werden werden alle nur als 1h angegeben ... nur für die spieler sind die dann so
Die Beiträge sind aus dem Jahr 2004 und ich bin mir nicht sicher ob die Aussagen richtig oder immer noch aktuell sind.
Ich bin mir fast sicher, dass ich in dem Changelog einer Mod vor kurzem gelesen habe, dass jemand die Angriffsgeschwindigkeit von unterschiedlichen Waffentypen verändert hat, sodass stumpfe Waffen langsamer sind.
Ich dachte ursprünglich es war die Mod "Die Wellt der Verurteilten" von Issues Deadgame Inc.
Allerdings bin ich noch einmal den gesamten Change log der .txt durchgegangen und konnte nichts in der Art finden.
Zum allgemeinen Verständnis noch:
1. Die Angriffsgeschwindigkeit ist an die Animation gebunden?
2. In welcher Datei werden die verschiedenen Animationen den Kampfmodi zugeordnet?
Vielen Dank im Voraus an alle, die sich die Mühe machen mir zu helfen!
Wenn es darum geht die reine Animationsgeschwindigkeit zu ändern, das geht sogar recht einfach. Bei manchen Animationen, kann es aber zu Bugs kommen (sehr wenige) und ob am ende der Held auf wirklich mehr richtigen Schaden austeilt, weiß ich nicht, es ist aber wahrscheinlich.
Du musst als erstes die ganzen Kampf Animation Decompilieren, das geht mit Gothic Sourcer, das meiste ist in HumanS.mds, anderes in den Overlays.
Danach öffnest du die Mds die im Gothic Sourcer Ordner liegt, mit Notepad z.b.
Das sieht dann so aus(Nach Bewegungs-Modi):
Code:
// ---------------------------------------------------------------------------------------------------------------
// RUN-Mode
ani ("s_Run" 1 "s_Run" 0.1 0.1 MI "Hum_RunAmbient_M01.asc" F 1 50)
ani ("t_Run_2_RunL" 1 "s_RunL" 0.0 0.0 M. "Hum_RunLoop_M01.asc" F 0 11)
ani ("s_RunL" 1 "s_RunL" 0.0 0.1 M. "Hum_RunLoop_M01.asc" F 12 31)
{
*eventSFXGrnd (12 "Run")
*eventSFXGrnd (21 "Run")
}
ani ("t_RunL_2_Run" 1 "s_Run" 0.0 0.0 M. "Hum_RunLoop_M01.asc" F 32 38)
aniBlend ("t_RunR_2_Run" "s_Run" 0.2 0.2)
ani ("t_JumpB" 1 "s_Run" 0.0 0.2 M. "Hum_JumpB_M01.asc" F 1 14)
{
*eventSFXGrnd (6 "Run")
*eventSFXGrnd (9 "Run")
}
Um z.b die Animation zu beschleunigen muss du, bei allem was eine F an vor vorletzter Stelle hat, ganz am Ende ende SPD:XX hinzufügen.
Alles ab 50 sieht nicht mehr gut aus, da ist halt Finetuning angesagt. Alles was niedriger als 20 ist, verlangsamt sogar die Ani.
So würde es mit mehr Geschwindigkeit aussehen:
Code:
// ---------------------------------------------------------------------------------------------------------------
// RUN-Mode
ani ("s_Run" 1 "s_Run" 0.1 0.1 MI "Hum_RunAmbient_M01.asc" F 1 50 SPD:40)
ani ("t_Run_2_RunL" 1 "s_RunL" 0.0 0.0 M. "Hum_RunLoop_M01.asc" F 0 11 SPD:40)
ani ("s_RunL" 1 "s_RunL" 0.0 0.1 M. "Hum_RunLoop_M01.asc" F 12 31 SPD:40)
{
*eventSFXGrnd (12 "Run")
*eventSFXGrnd (21 "Run")
}
ani ("t_RunL_2_Run" 1 "s_Run" 0.0 0.0 M. "Hum_RunLoop_M01.asc" F 32 38 SPD:40)
aniBlend ("t_RunR_2_Run" "s_Run" 0.2 0.2)
ani ("t_JumpB" 1 "s_Run" 0.0 0.2 M. "Hum_JumpB_M01.asc" F 1 14 SPD:40)
{
*eventSFXGrnd (6 "Run")
*eventSFXGrnd (9 "Run")
}
Du musst dir jetzt natürlich deine benötigte Ani raus suchen und das sind viele in deinem Fall. Die Kommentare innerhalb der HumanS.mds helfen dir da weiter.
Am Ende musst du dann nur noch in Anims/Compiled die HumanS.msb und mdh löschen und deine bearbeitete HumanS.mds und die ganzen ASC's Dateien (würden beim decompilieren erstellt) in den Anims Ordner Packen, danach sollte die neue Ani im Spiel sein.
Ich bin auf ein paar Probleme beim umsetzten gestoßen.
Was ich gemacht habe:
Die anims.VDF mit dem GothicVDFS Tool entpackt.
In dem entpackten Ordner Anims\_WORK\DATA\ANIMS\ die Datei HUMANS.MDS mit einem Editor geöffnet
Spoiler:(zum lesen bitte Text markieren)
Code:
///////////////////////
// 1H SWORD FIGHTING
///////////////////////
ani ("s_1hAttack" 1 "s_1hAttack" 0.0 0.2 M. "Hum_1hAttackComboT0_M01.asc" F 1 20 SPD:45)
{
*eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")
*eventTag (0 "DEF_OPT_FRAME" "5")
*eventTag (0 "DEF_HIT_END" "37")
*eventTag (0 "DEF_WINDOW" "18 19")
// *eventTag (0 "DEF_DIR" "L")
*eventSFX (5 "WHOOSH" EMPTY_SLOT )
*eventSFX (18 "BACK" EMPTY_SLOT )
}
// Parade
ani ("t_1hParade_O" 1 "" 0.0 0.0 M. "Hum_1hParadeT0_M01.asc" F 1 29 SPD:45)
{
*eventTag (0 "DEF_WINDOW" "1 27")
// *eventSFX (2 "D_PARADE" EMPTY_SLOT )
}
// ani ("t_1hParade_U" 1 "" 0.0 0.0 M. "Hum_1hParadeT0_M01.asc" F 1 29)
// ani ("t_1hParade_L" 1 "" 0.0 0.0 M. "Hum_1hParadeT0_M01.asc" F 1 29)
// ani ("t_1hParade_R" 1 "" 0.0 0.0 M. "Hum_1hParadeT0_M01.asc" F 1 29)
ani ("t_1hParadeJumpB" 1 "" 0.0 0.0 M. "Hum_1hParadeJumpT0.asc" F 1 14)
// Auf Höhen schlagen
// ani ("c_1hAttack_1" 1 "" 0.0 0.0 . "Hum_1hAttackUpT0.asc" F 0 24 SPD:45)
// ani ("c_1hAttack_2" 1 "" 0.0 0.0 . "Hum_1hAttackMidT0.asc" F 0 24 SPD:45)
// ani ("c_1hAttack_3" 1 "" 0.0 0.0 . "Hum_1hAttackDnT0.asc" F 0 24 SPD:45)
// aniComb ("t_1hAttackC" 1 "" 0.0 0.0 M. "c_1hAttack_" 3)
// {
// *eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")
// *eventTag (0 "DEF_OPT_FRAME" "10")
// *eventSFX (10 "Whoosh" EMPTY_SLOT )
// }
// Drehschläge
ani ("t_1hAttackL" 1 "" 0.0 0.2 M. "Hum_1hAttackT0_M01.asc" F 1 30 SPD:45)
{
*eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")
*eventTag (0 "DEF_OPT_FRAME" "5")
*eventTag (0 "DEF_HIT_END" "29")
*eventTag (0 "DEF_WINDOW" "15 29")
*eventSFX (5 "Whoosh" EMPTY_SLOT )
}
ani ("t_1hAttackR" 1 "" 0.0 0.2 M. "Hum_1hAttackT0_M01.asc" F 31 60)
{
*eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")
*eventTag (0 "DEF_OPT_FRAME" "5")
*eventTag (0 "DEF_HIT_END" "29")
*eventTag (0 "DEF_WINDOW" "15 29")
*eventSFX (33 "Whoosh" EMPTY_SLOT )
}
// während des Laufens zuschlagen
ani ("t_1hAttackMove" 2 "" 0.1 0.2 M. "Hum_1hS_MoveAttack_M01.asc" F 1 29 SPD:45)
{
*eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")
*eventTag (0 "DEF_OPT_FRAME" "16")
*eventSFX (12 "Whoosh" EMPTY_SLOT )
}
Ich habe in den Zeilen mit F am Ende der Zeile aber noch innerhalb der Klammer " SPD:45" eingefügt, dann die Datei gespeichert und geschlossen.
In dem Ordner Anims\_WORK\DATA\_COMPILED\ die Datei HUMANS.MDH gelöscht.
Eine Datei mit dem Namen HumanS.msb habe ich in dem Ordner Anims\_WORK\DATA\_COMPILED\ nicht gefunden, daher habe ich die Datei nicht löschen können.
Ich bin deswegen davon ausgegangen, dass die Änderung nicht übernommen wird, weil keine neue Datei erstellt wird.
Wollte aber trotzdem schon einmal testen was passiert.
Deswegen habe ich als nächstes mit dem Gothic VDFS Tool eine Anims.VDF Datei erstellt in dem ich als Root Path den Ordner Anims (enthält die Änderungen von oben) angegeben habe und als File(mask)(s) to serach for *.* (habe + zum hinzufügen gedrückt).
Die erzeugte Anims.VDF Datei habe ich in meine Ordner Gothic\DATA\ kopiert und somit die vorhandene Anims.VDF ersetzt.
Dann habe ich über die die GothicStarter_mod.exe mit einem Haken bei "Skripte parsen" meine Mod.ini ausgewählt und Spiel starten gedrückt.
Der Titelbildschirm kam und ich konnte auch ein neues Spiel starten.
Das Intro lief auch noch aber danach hat sich das Spiel einfach ohne Fehlermeldung beendet.
Deswegen habe ich als nächstes mit dem Gothic VDFS Tool eine Anims.VDF Datei erstellt in dem ich als Root Path den Ordner Anims (enthält die Änderungen von oben) angegeben habe und als File(mask)(s) to serach for *.* (habe + zum hinzufügen gedrückt).
Die erzeugte Anims.VDF Datei habe ich in meine Ordner Gothic\DATA\ kopiert und somit die vorhandene Anims.VDF ersetzt.
Zum Testen musst du eigentlich nicht erst durch diesen Prozess, das ist dann ggf. nur später relevant, wenn du Mods veröffentlichen möchtest, aber selbst dann kommen die Änderungen in eine einzelne Mod.vdf, die Original-VDFs werden dabei dann nicht überschrieben. Ist aber auch schon länger her, als ich mich damit beschäftigt habe, wichtig ist für dich erstmal nur, dass du nur zum Testen keine VDFs erzeugen musst. Gothic kompiliert beim Starten die Animationen und liest sie dann einfach aus den kompilierten Dateien aus, statt aus der VDF.
Zitat von Hanlu
In einer Zeile steht:
00:31 Fatal:-1 D: MDL: zModel(zCModelProto::Load3DSMAXAsc): ASC not found: HUM_BODY_NAKED0.ASC .... <zModelProto.cpp,#3052>
Damit Gothic neue Animationen überhaupt kompilieren kann braucht es meines Wissens dazu die hier angekreidete HUM_BODY_NAKED0.ASC, also das Basismodell für Mensch-NPCs. Das müsstest du zuerst aus einer weiteren Datei mit dem Gothic Sourcer dekompilieren, allerdings bin ich mir nicht mehr sicher welche das genau war, müsste eine der HUMANS.xxx gewesen sein. Einfach mal mit dem Gothic Sourcer ausprobieren, falls in der Zwischenzeit nicht jemand grad besser bescheid weiß.
Zum Testen musst du eigentlich nicht erst durch diesen Prozess
Ah ok, ich denke ich kann den geänderten Ordner Anims, einfach in den Ordner Gothic\_work\DATA\ kopieren und dann kann ich die Änderung trotzdem testen.
Muss ich testen. Wenn das klappt wird mir das einiges an Zeit und Arbeit auf lange Sicht sparen. Danke!
Ich habe mit dem GothicSourcer über die Reiter Tools -> Decompiler models -> Dynamic (MDS or MSB) die Datei HUMANS.MDS (stammt aus anims.VDF mit Gothic VDFS Tool erhalten) dekompiliert.
Davon habe ich den Ordner asc_huamns erhalten der die Datei HUM_BODY_NAKED0.ASC enthält.
Diesen Ordner habe ich unter Gothic\_work\DATA\ANIMS\ abgelegt.
Außerdem habe ich aus dem Ordner Gothic\_work\DATA\ANIMS\MDS_OVERLAY\ die Dateien HUMANS_1HST1.MDS, HUMANS_1HST2.MDS, HUMANS_2HST1.MDS und HUMANS_2HST2.MDS mit dem Gothic Sourcer entpackt und die entstandenen (hauptsächlich) .asc Dateien unter Gothic\_work\DATA\ANIMS\asc_humans abgelegt.
Im Ordner Gothic\Data gibt es keine anims.VDF und auch keine animsDisabled.VDF.
Im Ordner Gothic\DATA\ModVDF\ gibt es keine .mod oder .vdf.
Im Ordner Gothic\_work\DATA\ANIMS\_compiled gibt es keine .msb Datei und es wird auch nie eine erzeugt.
Im Ornder Gothic\_work\DATA\ANIMS\_compiled gibt es eine HUMANS.MDH diese Datei lösche ich bevor ich die GothicStarter_mod.exe starte. Gothic erzeugt dann nach dem starten eine neue HUMANS.MDH.
Außerdem lösche ich sämtliche .MAN Dateien mit "1H" oder "2H" im Namen im Ordner Gothic\_work\DATA\ANIMS\_compiled
Ich habe schon versucht den gesamten Inhalt des Ordners Gothic\_work\DATA\ANIMS\_compiled zu löschen, allerdings hat das zahlreiche Fehlermeldungen ausgelöst, daher bin ich zu dem Schluss gekommen, dass das eine schlechte Idee ist (Hoffnung war, dass Gothic das alles neu erstellen kann).
Aktuell erhalte ich folgende Fehlermeldung in zSpy:
00:32 Fatal:-1 D: zModel(zCModelPrototype::ReadScene): illegal frame-range in MDS .... <zModelProto.cpp,#1936>
Den Fehler mit illegal frame-range in MDS habe ich behoben in dem ich darauf geachtet habe was bei "F 1 29" als hintere Zahl steht und den den Wert nach "SPD:" maximal gleichhoch oder niedriger angegeben habe.
Ich habe in der HUMANS.MDS etwas experimentiert weil die Grenze für die Frame-range teilweise nur 20 war habe ich aktuell einfach mal einen höheren Wert (80) eingetragen um einen SPD (= Speed?) von 80 eintragen zu können.
Den SPD Wert habe ich so hoch gesetzt damit ich sicher sein kann falls es funktioniert, dass ich den Unterschied zur ursprünglichen Geschwindigkeit erkenne.
Aktuell läuft das Spiel zwar aber
1. die Animation ist immer noch nicht erkennbar schneller beim angreifen mit Waffe und
2. Der Spieler und andere NPCs laufen teilweise etwas im Boden bzw. fangen an bis zu einem Meter über dem Boden zu laufen für kurze Zeit. Außerdem fängt der Spiele Charakter beim angreifen an nach oben zu fliegen (sehr langsam und nur etwa 40cm) nach ein paar Waffenschwüngen wird der Charakter dann ca. 3m rückwärts teleportiert.
Wenn jemand eine Idee hat was ich falsch mache, ich könnte einen neuen Ansatz gut gebrauchen!