Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Seite 2 von 2 « Erste 12
Ergebnis 21 bis 31 von 31
  1. Beiträge anzeigen #21 Zitieren
    Ritter Avatar von aebo
    Registriert seit
    Oct 2008
    Beiträge
    1.269
     
    aebo ist offline
    Habe gerade herausgefunden das

    Code:
    *eventSFX
    einwandfrei bei den hinzugefügten Animationen funktioniert. Sehr merkwürdig
    Das Wappen
    -Eine fantastische Spielwelt erwartet dich-
    -bis zu 100 Stunden Spielzeit-

  2. Beiträge anzeigen #22 Zitieren
    Ritter Avatar von aebo
    Registriert seit
    Oct 2008
    Beiträge
    1.269
     
    aebo ist offline
    Moin,

    kann man dieses Problem mit dem *eventTag bei random animationen nicht irgendwie lösen?
    Das Wappen
    -Eine fantastische Spielwelt erwartet dich-
    -bis zu 100 Stunden Spielzeit-

  3. Beiträge anzeigen #23 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.626
     
    Bisasam ist offline
    Lieber aebo,

    ich fürchte du hast die syntax von gothics animationssystem nicht verstanden.

    Event tags funktionieren fast ausschließlich in transitions-animationen.
    Deine random-ani könntest du als transition in einen neuen state einpflegen welcher sofort wieder zurück zur ausgangsani führt.

    Beispiel:

    Gothic original (alles aus dem kopf! Ggf abweichende bezeichnungen):

    Die transitionsani

    T_stove_s0_2_s1

    führt zu...

    S_stove_s1

    Dein eingriff:

    Neue transition

    T_stove_s1_2_s2

    Enthält exakt die erste hälfte deiner neuen ani und führt zu...

    S_stove_s2

    Welche exakt den ersten frame der 2. Hälfte enthält.
    Diese ani soll aber nicht sich selbst aufrufen sondern übergehen zu...

    T_stove_s2_2_s1

    Welche die 2. Hälfte der neuen ani enthält und zurück führt zu

    S_stove_s1

    Um den loop sauber zu beenden.

    In den t_anis kannst du so viele event tags benutzen wie du lustig bist.

    Damit sollte sich auch alles an bugs erübrigen.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  4. Beiträge anzeigen #24 Zitieren
    Ritter Avatar von aebo
    Registriert seit
    Oct 2008
    Beiträge
    1.269
     
    aebo ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    Lieber aebo,

    ich fürchte du hast die syntax von gothics animationssystem nicht verstanden.

    Event tags funktionieren fast ausschließlich in transitions-animationen.
    Deine random-ani könntest du als transition in einen neuen state einpflegen welcher sofort wieder zurück zur ausgangsani führt.

    Beispiel:

    Gothic original (alles aus dem kopf! Ggf abweichende bezeichnungen):

    Die transitionsani

    T_stove_s0_2_s1

    führt zu...

    S_stove_s1

    Dein eingriff:

    Neue transition

    T_stove_s1_2_s2

    Enthält exakt die erste hälfte deiner neuen ani und führt zu...

    S_stove_s2

    Welche exakt den ersten frame der 2. Hälfte enthält.
    Diese ani soll aber nicht sich selbst aufrufen sondern übergehen zu...

    T_stove_s2_2_s1

    Welche die 2. Hälfte der neuen ani enthält und zurück führt zu

    S_stove_s1

    Um den loop sauber zu beenden.

    In den t_anis kannst du so viele event tags benutzen wie du lustig bist.

    Damit sollte sich auch alles an bugs erübrigen.
    Hallo liebe Bisasam,

    schön das wenigstens du die syntax von gothics animationssystem verstanden hast. Dann kannst du mir ja helfen

    Hier sind meine derzeitigen Animationen, ich würde dich bitten diese nach deinem Wissen anzuordnen. Danke

    Code:
    /////////////// Seperate Backani Npc///////////////
    		ani ("T_BACKTISCH_KOMPLETTBACKEN"		1 	"s_BACKTISCH_S0" 	0.1	0.1	M. 	"BACKTISCH_HUMAN.asc" 	F	6	194)
    				{
    				*eventTag	(71		"DEF_CREATE_ITEM"	"ZS_LEFTHAND"	"ItFo_Water")
    				*eventSFX	(74		"RELEASECORK"	R:1000	EMPTY_SLOT	)
    				*eventTag	(94		"DEF_DESTROY_ITEM" )
    				*eventTag	(108	"DEF_CREATE_ITEM"	"ZS_RIGHTHAND"	"ItMi_Teig")
    				*eventTag	(164	"DEF_DESTROY_ITEM" )
    				}			
    // --------------------------------------------------------------------------------------------------------------
    
    			ani ("T_BACKTISCH_STAND_2_S0" 		1 	"s_BACKTISCH_S0" 	0.1 0.0 M. 	"BACKTISCH_HUMAN.ASC" 	F 	0  	1)
    			ani ("S_BACKTISCH_S0" 				1 	"s_BACKTISCH_S0" 	0.0 0.0 M. 	"BACKTISCH_HUMAN.ASC" 	F 	2 	2)
    			ani	("T_BACKTISCH_S0_2_STAND"		1	""					0.1	0.1	M. 	"BACKTISCH_HUMAN.asc"	R 	0	1)
    
    			ani	("T_BACKTISCH_S0_2_S1"			1	"s_BACKTISCH_S1"	0.0	0.0	M.	"BACKTISCH_HUMAN.asc"	F	3	4)
    			ani	("S_BACKTISCH_S1"				1	"s_BACKTISCH_S1"	0.0	0.0	M.	"BACKTISCH_HUMAN.asc"	F	5	5)
    			ani	("T_BACKTISCH_S1_2_S0"			1	"s_BACKTISCH_S0"	0.1	0.1	M.	"BACKTISCH_HUMAN.asc"	R	3	4)
    Das Wappen
    -Eine fantastische Spielwelt erwartet dich-
    -bis zu 100 Stunden Spielzeit-

  5. Beiträge anzeigen #25 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.626
     
    Bisasam ist offline
    Zuerst mal würd ich gern wissen warum die npc version nicht der des helden gleichen darf. Du könntest ansonsten die tags von oben einfach in die erste t ani unten einpflegen.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  6. Beiträge anzeigen #26 Zitieren
    Ritter Avatar von aebo
    Registriert seit
    Oct 2008
    Beiträge
    1.269
     
    aebo ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    Zuerst mal würd ich gern wissen warum die npc version nicht der des helden gleichen darf. Du könntest ansonsten die tags von oben einfach in die erste t ani unten einpflegen.
    Ich habe jede Gothic animation an static und an beweglichen mobsis verändert. Beim benutzen der Mobs richtet sich der Npc/Held erstmal nur am Mobsi aus. Danach wird das Fenster der OnState erscheinen und der Spieler hat Auswahlmöglichkeiten das Mobsi zu benutzen oder es wieder zu verlassen. Wenn dann das Mobsi über eine Auswahl benutzt werden soll (Fleisch braten/backen/kochen am kochtop, etc.) spielt der Npc/Held die Animation (Meine Randomanimation) ab. Erst dann sollen zur richtigen Zeit die eventTags die Items in die Hände legen.
    Soviel erstmal zum verständnis
    Das Wappen
    -Eine fantastische Spielwelt erwartet dich-
    -bis zu 100 Stunden Spielzeit-
    Geändert von aebo (18.06.2019 um 10:53 Uhr)

  7. Beiträge anzeigen #27 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.626
     
    Bisasam ist offline
    Hast du dann auch die Tagesablauf-Skripte abgeändert?

    Deine Animation sollte dann am besten so aussehen, dass der Status von Stand bis S1 maximal das an den Herd stellen darstellt. Dann kannst du in den Zustandsskripten die entsprechenden Animationen anschalten. z.B. AI_UseMob in dem Anfang vom Zustand wo auch die Perception steht und anschließend im Loop dann die Animation z.B. T_Stove_s1_2_s2 usw. wo du die Items insertest und den Npc kochen lässt.

    Wenn du den Part über die Zustände und das Dialogmenü regelst, brauchst du in der Humans.mds gar nicht so viel rummatschen.

    Ich erkläre dir absichtlich welche Logik dahintersteht, da du damit auch einiges an anderen Sachen umsetzen kannst. Wenn ich dir den Code nur hinmatsche, bringt dir das nichts. Dann stehst du wieder und wieder auf der Matte ohne zu wissen wie dein eigener Code funktioniert. Bugfixing wird dann auch zur Qual.

    Also noch mal zum Mitschreiben:

    Deine BACKTISCH-Animation sollte bis S1 nur das hinstellen an den Tisch beinhalten ohne etwas in die Hand zu inserten. Dazu brauchst du natürlich die gefragte Animationsdatei und musst frames abzählen und gucken wie es gut aussieht.

    Deine Animation von S1 übergang zu S2 sollte z.B. den Topf beinhalten.

    Deine Animation von S2 Übergang zu S3 sollte dann z.B. die Pfanne beinhalten.

    Und deine Animation von S3 Übergang S4 sollte dein Backgerät beinhalten.

    Du kannst das so beliebig erweitern um noch mehr Kochutensilien.

    Im ZS_STOVE kannst du dann deine Anpassungen vornehmen und den Npc zufällig die S1_2_S2, S2_2_S3 usw. annehmen lassen. Denk aber daran, die Rückwärts-Animationen sauber zu gestalten sodass man jederzeit von Kochtopf in Ursprungs-Bereitstellung zurückkommt.

    Wichtig zu wissen: Es kann auf diese Weise vorkommen, dass ein Npc beim abbrechen des Backzustands sämtliche vorherige Animationen ausführt. Also dass er dann plötzlich den Topf rausholt und wegsteckt und ähnliches. Das kannst du unterbinden, indem du die gerade ausgeführte Animation über TA_Position speicherst und im ZS_STOVE_END nicht AI_UseMob("STOVE",-1) sondern z.B. AI_PlayAni (self,"T_BACKTISCH_S3_2_S2"), dicht gefolgt von AI_StandUpQuick(self); sodass die Mobsibenutzung ohne das vollständige Ausführen aller S-Animationen beendet wird.

    Im Notfall ein bisschen rumexperimentieren und testen. Aber backups vorher nicht vergessen!


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  8. Beiträge anzeigen #28 Zitieren
    Ritter Avatar von aebo
    Registriert seit
    Oct 2008
    Beiträge
    1.269
     
    aebo ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    Hast du dann auch die Tagesablauf-Skripte abgeändert?

    Deine Animation sollte dann am besten so aussehen, dass der Status von Stand bis S1 maximal das an den Herd stellen darstellt. Dann kannst du in den Zustandsskripten die entsprechenden Animationen anschalten. z.B. AI_UseMob in dem Anfang vom Zustand wo auch die Perception steht und anschließend im Loop dann die Animation z.B. T_Stove_s1_2_s2 usw. wo du die Items insertest und den Npc kochen lässt.

    Wenn du den Part über die Zustände und das Dialogmenü regelst, brauchst du in der Humans.mds gar nicht so viel rummatschen.

    Ich erkläre dir absichtlich welche Logik dahintersteht, da du damit auch einiges an anderen Sachen umsetzen kannst. Wenn ich dir den Code nur hinmatsche, bringt dir das nichts. Dann stehst du wieder und wieder auf der Matte ohne zu wissen wie dein eigener Code funktioniert. Bugfixing wird dann auch zur Qual.

    Also noch mal zum Mitschreiben:

    Deine BACKTISCH-Animation sollte bis S1 nur das hinstellen an den Tisch beinhalten ohne etwas in die Hand zu inserten. Dazu brauchst du natürlich die gefragte Animationsdatei und musst frames abzählen und gucken wie es gut aussieht.

    Deine Animation von S1 übergang zu S2 sollte z.B. den Topf beinhalten.

    Deine Animation von S2 Übergang zu S3 sollte dann z.B. die Pfanne beinhalten.

    Und deine Animation von S3 Übergang S4 sollte dein Backgerät beinhalten.

    Du kannst das so beliebig erweitern um noch mehr Kochutensilien.

    Im ZS_STOVE kannst du dann deine Anpassungen vornehmen und den Npc zufällig die S1_2_S2, S2_2_S3 usw. annehmen lassen. Denk aber daran, die Rückwärts-Animationen sauber zu gestalten sodass man jederzeit von Kochtopf in Ursprungs-Bereitstellung zurückkommt.

    Wichtig zu wissen: Es kann auf diese Weise vorkommen, dass ein Npc beim abbrechen des Backzustands sämtliche vorherige Animationen ausführt. Also dass er dann plötzlich den Topf rausholt und wegsteckt und ähnliches. Das kannst du unterbinden, indem du die gerade ausgeführte Animation über TA_Position speicherst und im ZS_STOVE_END nicht AI_UseMob("STOVE",-1) sondern z.B. AI_PlayAni (self,"T_BACKTISCH_S3_2_S2"), dicht gefolgt von AI_StandUpQuick(self); sodass die Mobsibenutzung ohne das vollständige Ausführen aller S-Animationen beendet wird.

    Im Notfall ein bisschen rumexperimentieren und testen. Aber backups vorher nicht vergessen!
    Ich habe doch oben die benötigten einträge in der humans.mds eingetragen.
    kannst du daraus etwas basteln?
    Ich habe es versucht und bekomme leider nie ein item in die hand mit dem *eventtag
    Das Wappen
    -Eine fantastische Spielwelt erwartet dich-
    -bis zu 100 Stunden Spielzeit-

  9. Beiträge anzeigen #29 Zitieren
    Ritter Avatar von aebo
    Registriert seit
    Oct 2008
    Beiträge
    1.269
     
    aebo ist offline
    Nochmal wegen oben genannten Problem.

    ist es möglich das man diese Funktion hier so ändert, dass sie Frame basierend das Item in den Slot legt?

    Code:
    func void PutInvItemInSlot(var C_NPC slf, var string slotName, var int inst) 
    {
    
        CreateInvItem(slf, inst);
    	Npc_RemoveInvItem(slf, inst);
                
        //put in Slot
        const int oCNpc__PutInSlot = 7642288; //0x749CB0
        CALL_IntParam(true); //is in inventory
        CALL_PtrParam(MEM_InstToPtr(item));
        CALL_zStringPtrParam(slotName);
        
        CALL__thiscall(MEM_InstToPtr(slf), oCNpc__PutInSlot);
    };
    Das Wappen
    -Eine fantastische Spielwelt erwartet dich-
    -bis zu 100 Stunden Spielzeit-

  10. Beiträge anzeigen #30 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Was heißt denn "Frame basierend"? Willst du das an einem bestimmten Frame der Animation ausführen? Das geht glaube ich nicht - aus den Scripten heraus hat man ohne weiteres nicht so tiefe Einblicke in das Animationssystem.

  11. Beiträge anzeigen #31 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.484
     
    Cryp18Struct ist offline
    Ich hatte hier:
    https://forum.worldofplayers.de/foru...1#post26094471
    ja schon mal meinen lustigen workaround gezeigt.

    Da wollte ich in der Animation t_Plunder
    Code:
     // Pluendern
    			ani			("t_Plunder"				1	""				0.0	0.0	M.	"Hum_Pluender_A01.asc"		F	0	75)
    in frame 54 ein item in die Hand kleben.

    Meine Lösung war dann diese Animation aufzuteilen, eben damit man mit AI_Function zum richtigen Zeitpunkt Skriptcode ausführen kann:
    Code:
    // Item Pluendern
    			ani			("t_Stand_2_PlunderItem"		1	"S_PlunderItem"		0.0	0.0	M.	"Hum_Pluender_A01.asc"		F	0	54)
    			ani			("S_PlunderItem"				1	"S_PlunderItem"		0.0	0.0	M.	"Hum_Pluender_A01.asc"		F	54	54)
    			// hier wird jetzt per Skript das Item in ZS_RIGHTHAND angeheftet
    			ani			("T_PlunderItem_2_Stand"		1	""							0.0	0.0	M.	"Hum_Pluender_A01.asc"		F	54	75)

Seite 2 von 2 « Erste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide