Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.03.2013, 16:28
Snut



Ich glaube zwar nicht, dass mir hier noch jemand helfen kann, aber ich probier es dennoch.

Da die Idle-Animation einer scripted_sequence immer direkt von Map beginn gehalten wird, suche ich nach einer Möglichkeit per Code die Action-Animation "sauber" per retrigger loopbar zu machen. Momentan geht das Monster nach Ende einer Animation ersteinmal in einen "neutralen" Zustand zurück bevor es eine neue Aktion startet. Soll heißen, wenn beispielsweise eine Grunt als Actionanimation "crouching_idle" ausführt und im Anschluss retriggert wird, steht er kurz wieder auf um danach die Animation erneut auszuführen. Dadurch entsteht eine unschönes rumhampeln, wenn man eine Schleife bauen will. Da ein fließenderer Übergang auch zwischen unterschiedlichen Animationen wünschenswert wäre, wollte ich wissen, ob einer der verbliebenen Coder eine Idee für eine einfache und unkomplizierte Umsetzung im Code parat hat.

Danke :P

--

zum Seitenanfang zum Seitenende Profil || Suche
001
02.04.2013, 03:39
Snut



Ich hab einen Weg gefunden. Ist vielleicht nicht sehr sauber, scheint aber genauso zu funktionieren wie das "No Reset Entity"-flag in Opfor. Falls es mal irgendwann doch noch gebraucht wird:

Flag in scripted.h definieren:
#define SF_SCRIPT_NORESET 256

In der Funktion CCineMonster :: SequenceDone in scripted.cpp als Bedingung den flag setzen. (Geht vielleicht auch ohne, aber das Monster "zuckt" sonst ganz leicht zwischen den Animationen, wenn eine Schleife abgespielt wird):

if ( !( pev->spawnflags & SF_SCRIPT_NORESET ) )
FixScriptMonsterSchedule( pMonster );

Und zum Schluss noch unter BOOL CBaseMonster :: CineCleanup( ) vor m_Activity = ACT_RESET die Bedingung setzen:
if ( !( pOldCine->pev->spawnflags & SF_SCRIPT_NORESET ) )
m_Activity = ACT_RESET;

Jetzt sind Idle-Animationen auch nach einem Levelstart realisierbar. Man muss nur noch die fdg für Hammer entsprechend editieren. Außerdem sollte nach einer No-Reset-Animation eine weitere scripted_sequence (kann auch dieselbe sein, die sich selbst retriggert) folgen, sonst könnte es zu Fehlern kommen.

--

zum Seitenanfang zum Seitenende Profil || Suche