Ich versuche seit einiger Zeit ein dynamisches Mobsi zu erstellen. Allerdings habe Ich mit einigen Problemen zu kämpfen... Ich hoffe jemand kann mir dabei helfen
Ich habe alle notwendigen Dateien erstellt (siehe Anhang) und sie in die entsprechenden Ordner meiner Gothic Installation gelegt: Work/Data/Anims - Webstuhl_Mesh.asc
- Webstuhl_Ani.asc
- Webstuhl_Human_Ani.asc /mds_Mobsi
- Webstuhl.mds
Den Inhalt der angehangenen Webstuhl_Hum.mds habe Ich an passender Stelle in die Humans.mds eingefügt.
Spoiler:(zum lesen bitte Text markieren)
Model ("Webstuhl_Mesh")
{
meshAndTree ("Webstuhl_Mesh.ASC")
aniEnum
{
ani ("S_S0" 1 "S_S0" 0.0 0.0 M. "Webstuhl_ani.ASC" F 1 1)
ani ("T_S0_2_S1" 1 "S_S1" 0.0 0.0 M. "Webstuhl_ani.ASC" F 1 1)
ani ("T_S1_2_S0" 1 "S_S0" 0.1 0.1 M. "Webstuhl_ani.ASC" F 121 150)
ani ("S_S1" 1 "S_S1" 0.0 0.0 M. "Webstuhl_ani.ASC" F 30 120)
}
}
Spoiler:(zum lesen bitte Text markieren)
// Webstuhl
//1. Zum Mobsi gehen,
ani ("t_Webstuhl_Stand_2_S0" 1 "s_Webstuhl_S0" 0.2 0.0 M. "Webstuhl_Human_Ani.ASC" F 1 1)
//2. "Zustand S0"
ani ("s_Webstuhl_S0" 1 "s_Webstuhl_S0" 0.0 0.0 M. "Webstuhl_Human_Ani.ASC" F 1 1)
//3. Transition zum Loop
ani ("t_Webstuhl_S0_2_S1" 1 "s_Webstuhl_S1" 0.0 0.0 M. "Webstuhl_Human_Ani.ASC" F 1 1)
}
//4. Loop
ani ("s_Webstuhl_S1" 1 "s_Webstuhl_S1" 0.0 0.0 M. "Webstuhl_Human_Ani.ASC" F 1 120)
//5. Mobsi abbrechen und aus dem Zustand S1 in den Zustand S0 kommen
ani ("t_Webstuhl_S1_2_S0" 1 "s_Webstuhl_S0" 0.0 0.1 M. "Webstuhl_Human_Ani.ASC" F 121 150)
//6. ins Game zurück
ani ("t_Webstuhl_S0_2_Stand" 1 "" 0.0 0.2 M. "Webstuhl_Human_Ani.ASC" F 150 150)
Anschließend habe Ich die Humans.msb aus dem /compiled Ordner gelöscht. Dann den Spacer mit der Option "Skripte parsen" gestartet und mein Mobsi als "MobInter" mit der "Webstuhl.mds" eingefügt und das Mobsi ist sichtbar erschienen.
Im Spiel ist das Mobsi anwählbar, allerdings erscheint die Meldung "Das ist die falsche Seite". Die Meldung erscheint grundsätzlich immer, vollkommen unabhängig von welcher Position aus Ich das Mobsi anwähle. Ein verschieben des "zs_Pos0" Dummys änderte daran nichts.
Der zspy spuckt dabei folgende Fehlermeldung aus:
"zModel.cpp(zCModel::StartAni): Ani not found: T_DONTKNOW .... <zModel.cpp,#2581>
Außerdem ist mir aufgefallen, dass bei keinem Mobsi - Ich habe Stühle, Bänke, Baumsägen usw. getestet - eine Animation abgespielt wird. Der Charakter zuckt bloß einmal kurz. Dabei bekomme Ich Fehlermeldungen wie diese im zSpy:
"zModel.cpp(zCModel::StartAni): Ani not found: T_BENCH_STAND_2_S0 .... <zModel.cpp,#2581"
Ich glaube dass das mit einem Fehler beim compilieren der Humans.mds zusammenhängt. Weiter weiß Ich da aber auch nicht...
Nach Einfügen und Testen des Mobsis habe Ich folgende Dateien in meinem Work/Data/Anims/compiled Ordner:
- WEBSTUHL_MESH.MDM
- WEBSTUHL_MESH.MDL
- WEBSTUHL.MDM
- WEBSTUHL.MDH
- WEBSTUHL.MSB
- HUMANS.MSB
- WEBSTUHL-S_S0.MAN
- WEBSTUHL-S_S1.MAN
- WEBSTUHL-T_S0_2_S1.MAN
- WEBSTUHL-T_S1_2_S0.MAN
Ich hoffe jemand weiß wo der Fehler liegt, sonst verzweifel Ich hier bald
Schon mal danke im Voraus!
LG
Alvares
Geändert von Elefantenjunge (19.11.2018 um 15:14 Uhr)
Außerdem ist mir aufgefallen, dass bei keinem Mobsi - Ich habe Stühle, Bänke, Baumsägen usw. getestet - eine Animation abgespielt wird. Der Charakter zuckt bloß einmal kurz. Dabei bekomme Ich Fehlermeldungen wie diese im zSpy:
"zModel.cpp(zCModel::StartAni): Ani not found: T_BENCH_STAND_2_S0 .... <zModel.cpp,#2581"
Ich glaube dass das mit einem Fehler beim compilieren der Humans.mds zusammenhängt. Weiter weiß Ich da aber auch nicht...
Zeig mal bitte deine gesamte humans.mds wie sie zurzeit ist.
edit:
Du hast hier einmal eine schließende geschweifte Klammer zu viel:
Code:
//3. Transition zum Loop
ani ("t_Webstuhl_S0_2_S1" 1 "s_Webstuhl_S1" 0.0 0.0 M. "Webstuhl_Human_Ani.ASC" F 1 1)
}
//4. Loop
ani ("s_Webstuhl_S1" 1 "s_Webstuhl_S1" 0.0 0.0 M. "Webstuhl_Human_Ani.ASC" F 1 120)
Falls du diesen Block weit oben in der humans.mds stehen hast, werden wahrscheinlich alle nachfolgenden Animationsdefinitionen ignoriert.
edit2:
Dein ZS_POS0 Teil ist zu niedrig, daher kommt die Meldung "Das ist die falsche Seite". Wenn du das mob so platzierst das es einen halben Meter in der Luft schwebt kann man sich richtig positionieren. Bei Benutzung wird der hero dann an das mob teleportiert.
Allerdings wird dann keine Animation abgespielt. Benenn deine "Webstuhl.mds" um in "Webstuhl_Mesh.mds". Dann auch im spacer beim vob als visual angeben "Webstuhl_Mesh.mds".
Dann ist es lauffähig: [Bild: attachment.php?s=6b5b7f02e527902f96d10ff32cee4319&attachmentid=47510&d=1542645842&thumb=1]
Wenn du die Position vom ZS_POS0 Teil noch veränderst kannst du da eine bessere Position produzieren.
Geändert von Cryp18Struct (19.11.2018 um 16:44 Uhr)
Danke dir! Das waren die entscheidenden Fehler. Dass Ich die nicht selbst gefunden hab... Nach einigen kleineren Anpassungen, sieht das ganze nun so aus:
Und zwar hab ich folgendes Problem... hier erstmal meine Aufstellung [Bild: lmqpmw3k.png]
Rechts ist das gewünschte Morphmesh links quasi die Vorlage für das Morphen.
Rechts ist auf Morphmesh gestellt samt "automaticly reload targets"
links sind eben die bones die für die rotation sorgen.. die drehen sich in 100 frames genau einmal um 360°
Mein Problem ist nun das die Morpher animation sich einfach nicht exportieren lässt.
Wenn ich nämlich nun die Vorlage lösche bleiben die Morpher Daten nicht gespeichert.
Das prinzip was ich aber nutze ist das selbe wie im Mühlenrad Tutorial im Wiki.. daher versteh ich nicht so recht warum es nicht funktionieren will.
Und Ich habe mal wieder ein Problem
Ich habe ein dynamisches Mobsi erstellt, auf die selbe Art und Weise wie den Webstuhl, um den es hier ursprünglich ging. Wenn Ich nun das Mobsi im Spacer platzieren möchte, schmiert der mir aber mit "Access Violation" ab. Im zSpy finden sich auch keinerlei Meldungen, welche auf den Fehler hindeuten.
Hat jemand Lust das mal selbst zu testen? Die Dateien findet Ihr hier!
Und Ich habe mal wieder ein Problem
Ich habe ein dynamisches Mobsi erstellt, auf die selbe Art und Weise wie den Webstuhl, um den es hier ursprünglich ging. Wenn Ich nun das Mobsi im Spacer platzieren möchte, schmiert der mir aber mit "Access Violation" ab. Im zSpy finden sich auch keinerlei Meldungen, welche auf den Fehler hindeuten.
Hat jemand Lust das mal selbst zu testen? Die Dateien findet Ihr hier!
LG
Alvares
Ich kann bestätigen das es beim laden des visuals abstürzt. Ist evt. am mesh irgendwas falsch?
Der oberste bone in der armature Hierarchie heißt bei dir "bip01", wenn du ihn "bip01 XXX" nennst gibt es keinen Absturz mehr (bei mir war dann aber das visual im spacer nicht sichtbar).
Ich habe wieder mal ein Problem. Diesmal geht es aber nicht um Mobsis, sondern um einen neuen Teleport Zauber.
1. Wenn Ich die Rune im Spiel anlegen will, bekomme Ich eine Fehlermeldung: [Bild: je2uyv8f.jpg]
Es fehlt also ein passender Eintrag in der VisualFxInst.d. Den Fehler kann Ich natürlich umgehen, indem Ich einen passenden Eintrag erstelle:
Code:
/// XXXXXXXXXXXXXXXXXXXXXXX
/// XX T E L E P O R T Z U D E N W A S S E R M A G I E R N XX
/// XXXXXXXXXXXXXXXXXXXXXXX
instance spellFX_TeleportzudenWassermagiern(CFx_Base_Proto)
{
visname_S = "MFX_Teleport_INIT";
//visAlpha = 1;
emtrjmode_s = "FIXED";
emTrjOriginNode = "ZS_RIGHTHAND";
emFXInvestOrigin_S = "spellFX_Teleport_ORIGIN";
lightpresetname = "AURA";
};
instance spellFX_TeleportzudenWassermagiern_KEY_OPEN(C_ParticleFXEmitKey)
{
lightrange = 0.1;
};
instance spellFX_TeleportzudenWassermagiern_KEY_INIT (C_ParticleFXEmitKey)
{
lightrange = 0.1;
};
instance spellFX_TeleportzudenWassermagiern_KEY_INVEST_1 (C_ParticleFXEmitKey)
{
lightrange = 100;
};
instance spellFX_TeleportzudenWassermagiern_KEY_CAST (C_ParticleFXEmitKey)
{
emCreateFXID = "spellFX_Teleport_CAST";
pfx_ppsIsLoopingChg = 1;
lightrange = 200;
};
Das funktioniert zwar, ist aber nicht die eleganteste Lösung. Mir ist nämlich aufgefallen, dass alle originalen Teleportzauber auf folgenden Eintrag zurückgreifen:
Meine Frage: Was muss Ich tun, damit mein neuer Teleport Zauber auch diesen Eintrag nutzt?
2. Wenn Ich die Rune im Spiel benutze, wird zwar eine Animation abgespielt, teleportiert wird der Held allerdings nicht. Im zSpy erscheint eine Meldung: [Bild: ycb75whj.jpg]
EDIT: Das zweite Problem konnte Ich fixen. In der Spell_Teleport_Alle.d hatte Ich den AI Teleport Eintrag klein geschrieben, das gefiel Gothic offenbar nicht. Mit Großbuchstaben funktioniert es.
Wenn jemand selbst testen möchte, kann er sich hier alle notwendigen Dateien herunterladen.
LG
Alvares
Geändert von Elefantenjunge (14.06.2019 um 21:10 Uhr)
Ich hab mal wieder eine Frage. Weiß jemand ob es möglich ist, neue Slots für ausrüstbare Items zu erstellen, die dann auch im Spiel angezeigt werden? Ich würde nämlich gerne Rüstungen erstellen, die aus mehreren, einzeln anlegbaren Teilen bestehen.
Wenn es möglich ist und jemand weiß, wie man da am besten vorgeht, würde Ich mich über Hilfe freuen
You can do that using Union with engine calls, or with Ikarus + Lego.
There is engine call to "put item into slot". But I am not sure if you can use bones as slots, which would mean you would need to change humans skeleton. I am not sure if it supports skinnable meshes. Which will be needed for torso/pants, basically most of the armor parts.
Also you would need to split every armor in game.
If you want every npc to be able to use this system, then you have to implement system that works for every npc, saves their armor "combo" and possibly restores it on load, stores on save. Some armors like robes take multiple slots.
I would like to use this feature for Gothic Multiplayer. So Ikarus and Lego aren't a possible Option to use.
I thougt of something like copying Armor Slot multiple times and creating new armors, wich are only covering some Parts of the Body. So you need to equip some different armors, to get a full armor. Modelling and rigging aren't a big thing to me, but I have no Idea about the coding part.
Hat wer Erfahrung mit Blender und Mobsi Erstellung ? Ich habe das Problem mit Blender 2.66a das meine Mobsis ingame nicht angezeigt werden.
Nun habe ich mal testweise ein Mobsi aus Gothic 2 genommen und es einfach umtexturiert, dabei habe ich alles beachtet. Am ende habe ich es als Asc abgespeichert und im Spacer eingetragen(natürlich alles korrekt in die gewissen Ordner gepackt) Nur da ist dann auch das Problem das es Unsichtbar ist und nicht mehr verwendbar. Vermutlich geht irgendwas beim Export / Import kaputt ?
Meine Frage wäre : Welche Blender Version benutzt ihr um Mobsis zu erstellen und hat wer Erfahrung darin ?
Hat wer Erfahrung mit Blender und Mobsi Erstellung ? Ich habe das Problem mit Blender 2.66a das meine Mobsis ingame nicht angezeigt werden.
Nun habe ich mal testweise ein Mobsi aus Gothic 2 genommen und es einfach umtexturiert, dabei habe ich alles beachtet. Am ende habe ich es als Asc abgespeichert und im Spacer eingetragen(natürlich alles korrekt in die gewissen Ordner gepackt) Nur da ist dann auch das Problem das es Unsichtbar ist und nicht mehr verwendbar. Vermutlich geht irgendwas beim Export / Import kaputt ?
Meine Frage wäre : Welche Blender Version benutzt ihr um Mobsis zu erstellen und hat wer Erfahrung darin ?
Lg. Feiger Scavenger
Manche Animationen funktionieren auch erst beim zweiten Gothic-Start. Also Gothic einmal starten und Mobsi probieren / in die Nähe gehen, dadurch wird die Datei vom Spiel konvertiert. Dann Gothic beenden, Gothic starten, und noch mal probieren.
Vermutlich ist es ein anderes Problem, aber zur Sicherheit kannst du obiges mal probieren, falls noch nicht gemacht
Manche Animationen funktionieren auch erst beim zweiten Gothic-Start. Also Gothic einmal starten und Mobsi probieren / in die Nähe gehen, dadurch wird die Datei vom Spiel konvertiert. Dann Gothic beenden, Gothic starten, und noch mal probieren.
Vermutlich ist es ein anderes Problem, aber zur Sicherheit kannst du obiges mal probieren, falls noch nicht gemacht
Hat nicht funktioniert :/
Habe jetzt 1x im Spacer das platziert und spiel 2x neu gestartet und bin zum Mobsi (Wenn man es im Spacer Platziert, wird es compiliert)
Dann habe ich mal die compilierte version gelöscht und einfach so das Spiel gestartet, Das Mobsi wird wieder compiliert selbst nach dem 2. Neustart bleibt das Mobsi unsichtbar.
Die Hierarchie der enthaltenen Objekte in der BSANVIL_O.ASC sind bei dir anders als im original (Du hast nicht "Bip01 Anvil" als Oberobjekt von allem anderen, sondern noch ein extra "Armature"-Objekt).
Das Mesh des Mobsis wird immer ZM_irgendwas benannt. Ausserdem muss das Mesh und das Mobsi miteinander verlinkt sein. Diese Verlinkung macht man im 3d Prog.
** ** Jetzt bekommen wir schon das erste Problemchen. Der Kerrax Importer löst beim Import eines Mobsis ins 3d Prog die Verlinkung zwischen ZS_POS0_DIST und ZM_MESH auf und wir konnen in der Hirarchie nicht mehr nachschauen, ob "ZS" mit "ZM" verlinkt war oder "ZM" mit "ZS".
Wenn das später vor dem Export des neu erstellten Mobsis falsch gemacht wird funktioniert das Mobsi nicht. ** **
Richtig ist es ZS_POS0_DIST (ZS_POS(NULL)_DIST ... NICHT "O") mit ZM_MESH zu verlinken und nicht umgekehrt. Wenn das Verlinken vergessen wird, funktioniert das Mobsi ebenfalls nicht!
Bei mehreren Meshes,
ZS_POS0_DIST mit jedem MESH verlinken und nicht umgekehrt
evt. hilfreich?
Geändert von Cryp18Struct (08.12.2019 um 20:45 Uhr)
Die Hierarchie der enthaltenen Objekte in der BSANVIL_O.ASC sind bei dir anders als im original (Du hast nicht "Bip01 Anvil" als Oberobjekt von allem anderen, sondern noch ein extra "Armature"-Objekt).
Interessant.
Das witzige ist ja, wie ich geschrieben habe das ich nur die Texturen ausgetauscht habe und es anschließen exportiert habe.
Ich werde nochmal ein Mobsi erstellen und gucken ob es da genau so ist, an der Stelle schon einmal danke, immerhin ein Anlaufpunkt
Ich habe nun das Problem das mein Hero an das Mobsi tpt wird, aber nichts weiter macht. (habe ein Dynamisches Mobsi erstellt)
Was könnte da das Problem sein? Habe also eine eigene Human ani und eine Ani für das Mobsi selbst.
Code:
Was in der Humans.mds steht
ani ("T_Baumfaell_STAND_2_S0" 1 "S_Baumfaell_S0" 0.1 0.0 M. "Baumfaell_Human_Ani.ASC" F 0 10) ani ("S_Baumfaell_S0" 1 "S_Baumfaell_S0" 0.0 0.0 M. "Baumfaell_Human_Ani.ASC" F 10 10)
ani ("T_Baumfaell_S0_2_STAND" 1 "" 0.0 0.0 M. "Baumfaell_Human_Ani.ASC" R 0 0)
ani ("T_Baumfaell_S0_2_S1" 1 "S_Baumfaell_S1" 0.0 0.1 M. "Baumfaell_Human_Ani.ASC" F 10 23)
ani ("S_Baumfaell_S1" 1 "S_Baumfaell_S1" 0.0 0.0 M. "Baumfaell_Human_Ani.ASC" F 23 56)
ani ("T_Baumfaell_S1_2_S0" 1 "S_Baumfaell_S0" 0.0 0.0 M. "Baumfaell_Human_Ani.ASC" F 57 98)
Code:
Was in der Mobsi mds steht
Model ("Baumfaell_mesh")
{
meshAndTree ("Baumfaell_mesh.ASC")
aniEnum
{
ani ("S_S0" 1 "S_S0" 0.0 0.0 M. "Baumfaell_USE.ASC" F 61 61)
ani ("T_S0_2_S1" 1 "S_S1" 0.0 0.0 M. "Baumfaell_USE.ASC" F 61 61)
ani ("T_S1_2_S0" 1 "S_S0" 0.1 0.1 M. "Baumfaell_USE.ASC" F 61 100)
ani ("S_S1" 1 "S_S1" 0.0 0.0 M. "Baumfaell_USE.ASC" F 99 100)
}
}
}
}
Nun habe ich ein Schrank erstellt aus den Originalen Vob. Allerdings habe ich kein ein Problem. Das Vob verschiebt sich während der Animation, obwohl ich beim Animieren den Haupt Bone nicht angerührt habe.