AI_PlayAni not working?? 4262 9

O temacie

Autor Vic7im

Zaczęty 25.01.2015 roku

Wyświetleń 4262

Odpowiedzi 9

Vic7im

Vic7im

Użytkownicy
posty84
Propsy92
Profesjabrak
  • Użytkownicy
Hello everyone, I'm trying to create "skills" usable for the character when you press a button.

The problem is that no matter how I try, the character won't play the animation I want him to.

Example: Press V --> Do Animation --> Do Stuff
What I have now is: Press V --> Do Stuff

Does anyone know how to "force" animations on the character? I've used both AI_PlayAni and Npc_PlayAni without success.

func void Ultimate(var C_Npc slf)
{
    var oCNpc her; her = Hlp_GetNpc(hero);
var int UltDone;

    if (((MEM_KeyState (KEY_U) == KEY_PRESSED) && (Hlp_Is_oCNpc (her.focus_vob))) && (Npc_HasReadiedMeleeWeapon (hero)))
    {
Ultdone = TRUE;
    var c_npc target; target = MEM_PtrToInst (her.focus_vob);
    NPC_PlayAni(slf,"T_EXCALIBUR_S0_2_S1");
FF_ApplyOnceExt(Damage, 800, 1);
};

func void Damage(var C_Npc slf,var C_Npc oth)
{
   var oCNpc her; her = Hlp_GetNpc (hero);
var c_npc target; target = MEM_PtrToInst (her.focus_vob);
Wld_PlayEffect("spellFX_INCOVATION_White",target,target,0,0,DAM_MAGIC,FALSE);
   Wld_PlayEffect("spellFX_BELIARSRAGE", target, target, 0, 0, DAM_MAGIC, FALSE);
   B_MagicHurtNpc(slf, target, 700);
NPC_PlayAni(her,"T_EXCALIBUR_S1_2_Stand");
UltDone = FALSE;
};

Any help is appreciated!
 

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
use B_FullStop(self); before play ani :)
 


Vic7im

Vic7im

Użytkownicy
posty84
Propsy92
Profesjabrak
  • Użytkownicy
use B_FullStop(self); before play ani :)

Not working =(
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Try with Ai_PlayAni (NPC, "Anim");
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
you have mistake : NPC_PlayAni(slf,"T_EXCALIBUR_S0_2_S1");
 


Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
you have mistake : NPC_PlayAni(slf,"T_EXCALIBUR_S0_2_S1");

Not mistake:

Cytuj
func void Ultimate(var C_Npc slf)
{
    var oCNpc her; her = Hlp_GetNpc(hero);
   var int UltDone;
   
    if (((MEM_KeyState (KEY_U) == KEY_PRESSED) && (Hlp_Is_oCNpc (her.focus_vob))) && (Npc_HasReadiedMeleeWeapon (hero)))
    {
   Ultdone = TRUE;
    var c_npc target; target = MEM_PtrToInst (her.focus_vob);
    NPC_PlayAni(slf,"T_EXCALIBUR_S0_2_S1");
   FF_ApplyOnceExt(Damage, 800, 1);
};

I had same problem as well, I was using AI_PlayAni (), and it didn't work for me. I made also other script, that plays the ani for me, and well, it worked. I don't know how it works, but if you trigger a script each few seconds, you do not get any reasons from PlayAni() functions, but in some scripts it does play the animation.

The example my Gothic "detects" the animation is this function:
func void B_Transfer  ()
{
//var C_NPC target; //target = Npc_GetTarget(hero);//Npc_GetLookAtTarget(hero);
var oCNpc her; her = Hlp_GetNpc(hero);
var c_npc oth; oth = MEM_PtrToInst(her.focus_vob);
/*var int TargetPTR; var int Smth;

MEM_AssignInst (herofocus,her.focus_vob);
TargetPTR =  MEM_InstToPtr(herofocus);*/

if ((Npc_IsInState(oth, ZS_Unconscious) || Npc_IsInState(oth, ZS_Dead))
|| (oth.attribute[ATR_HITPOINTS] <= 0)) //DEAD DEBUG!!!
&& (Npc_GetDistToNpc (hero, oth) <= 500) && (Npc_IsInFightMode (hero, FMODE_NONE))
&& !(oC_BodyStateContains(hero, BS_INVENTORY))// || ((Npc_GetBodyState(hero))!= BS_INVENTORY))
{
if (Hlp_Is_oCNpc(her.focus_vob))
{
//Print (oth.name);
/*if (B_EmptyInventory(oth))
{*/
AI_PlayAni (hero,"T_DONTKNOW");
/*}
else { AI_PlayAni (hero,"T_PLUNDER"); };*/
B_TransferItemsFromTargetInventory(oth, hero);
};/*
if (TargetPTR)
{
Smth = MEM_ReadInt(TargetPTR+388);
};
if(Smth<2)&&(MEM_ReadInt(TargetPTR)==oCNpc_vtbl)
{
B_TransferItemsFromTargetInventory (herofocus, hero);
Print (herofocus.name);
AI_PlayAni (hero,"T_DONTKNOW");
};*/
};
};
If I put only a AI_PlayAni() in a FrameFunction/Trigger, the animation is ignored as by you.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
Ah sorry I use AI_PlayAni(C_NPC,"ani_name");
and it works :) as @Sawik  suggested
 


Vic7im

Vic7im

Użytkownicy
posty84
Propsy92
Profesjabrak
  • Użytkownicy
If I put only a AI_PlayAni() in a FrameFunction/Trigger, the animation is ignored as by you.

So basically I should call the animation somewhere in a script that usually calls an animation, right?

Like, I don't know, apparently B_ functions?
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
I'm assuming the isssue is with the fact that it restarts everyframe, so to end user it appears not to be playing at all. 
Try setting some value to one until the animation is finished. 
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Vic7im

Vic7im

Użytkownicy
posty84
Propsy92
Profesjabrak
  • Użytkownicy

Vic7im

AI_PlayAni not working??
#9 2015-01-25, 21:47(Ostatnia zmiana: 2015-01-26, 01:09)
I'm assuming the isssue is with the fact that it restarts everyframe, so to end user it appears not to be playing at all.
Try setting some value to one until the animation is finished.

Thta may be the problem, I'll check!

Edit: Done, I had to move everything into a ZS_ state in order to make anims work. Thanks for the help!
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry