Jump to content

bbrasta Boa

Resident
  • Posts

    33
  • Joined

  • Last visited

Posts posted by bbrasta Boa

  1. Hello everyone.
    I've been trying to do some facial animations, but when I've finished one, and I've gone to try it in Second Life with my head, I see weird animation, as if this particular head, is not weighted with all the bones of the bento head, or at least, not in the same way as the original Second Life head. Are all Second Life mesh heads like this? to make facial animations work properly, will I have to be forced to make my own head?

    Autodesk Maya 2019.1: untitled* --- file2 (gyazo.com)

    Firestorm-Releasex64 6.5.3.65658 - bbrasta Boa (gyazo.com)

    Thanks in advance.

  2. Hello and thanks for reply :)

    This is what I have now, having removed the "av" from the requestDance from the end of the script. If I don't delete it, it gives me the "Function call mismatches type or number of arguments" error.

    Quote

    integer gControlCh = 99; 
    vector gSitOffset = <0,0,1>;
    vector gSitRotation = <0,0,0>;
    key gDancer= NULL_KEY; // who is dancing?
    string gSitText = "Pose Ball 4 Extended Listen Ball";
    vector gSitTextColor = <1,1,1>; 

    requestDance() 
    {
     if (gDancer != llGetPermissionsKey() || 
     (llGetPermissions()&PERMISSION_TRIGGER_ANIMATION) == 0) {
     llRequestPermissions(gDancer, PERMISSION_TRIGGER_ANIMATION);
     } else {
     startDance();
     }
    }
    HideDanceBall()
    {
     llSetText("Dancing", gSitTextColor, 1.0);
    }
    SHowDanceBall()
    {
     llSetText(gSitText, gSitTextColor, 1.0);
    }
    startDance() 
    {
     HideDanceBall();
     llStopAnimation("sit"); 
     llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION, 0));
    }

    stopDance()
    {
     llStopAnimation(llGetInventoryName(INVENTORY_ANIMATION, 0));
     llStartAnimation("stand"); 
     
    SHowDanceBall();
    }

    default {
     on_rez(integer p) 
     {
    llResetScript();
    }   

     state_entry() 
     {
     SHowDanceBall();
     llSitTarget(gSitOffset, llEuler2Rot(gSitRotation * DEG_TO_RAD));
     llSetSitText(gSitText);
     llListen(gControlCh, "", NULL_KEY, "");
     
     }
     
     listen(integer ch, string name, key id, string m) {
     if (m == "show") {
     SHowDanceBall();
     } 
     else if (m == "hide") 
     {
     HideDanceBall();
     } 
     else if (m == "dance") 
     { 
     if (gDancer == NULL_KEY) 
     {
     gDancer = id;
     requestDance();
      }
     }
     else if (m == "stop") {
     if (id == gDancer) {
     stopDance();
     gDancer = NULL_KEY;
     }
     else if (m == "reset") {
     if (id == llGetOwner()) {
     llResetScript();
       }
      }
     } 

    changed(integer change) 
    {
    if (change & CHANGED_LINK) 
    {
    key avatar = llAvatarOnSitTarget();
    if (llAvatarOnSitTarget() != NULL_KEY) 
    {
    gDancer = avatar;
    requestDance();
     }
    else 
    {
    stopDance();
    gDancer = NULL_KEY;
       }
      }
     }
     
     run_time_permissions(integer perms) 
    {
     if (perms & PERMISSION_TRIGGER_ANIMATION) 
    {
     startDance();
     } 
     else 
    {
     llWhisper(0, llKey2Name(gDancer)+" can't dance!");
     gDancer = NULL_KEY;
      }
     }
    touch_end(integer c)
    {
     key av = llDetectedKey(0);
     key oldav = llGetPermissionsKey();
     if (gDancer != NULL_KEY && oldav != NULL_KEY) 
     { 
     stopDance();
     gDancer = NULL_KEY;
     }
     if (av != gDancer) 
     {
     gDancer = av;
     requestDance();
      }
     }
    }

     

  3. Hello again :)

    I am following a Dance Balls tutorial, step by step, in which more options are added in each version, I am in a step in which when you click on the ball, it starts to dance, and when you click again on the ball, the avatar stops dancing, but for some reason, this part of the code doesn't work. In fact, if the tutorial script is copied, it gives an error.
    This is the part that gives an error:

    Quote

    touch_end(integer c) { key av = llDetectedKey(0); key oldav = llGetPermissionsKey(); if (gDancer != NULL_KEY && oldav != NULL_KEY) { // if someone was already dancing, stop them stopDance(); gDancer = NULL_KEY; } if (av != gDancer) { // if we weren't dancing already, start us gDancer = av; requestDance(av); } }

    The requestDance(av); give me an error, I tryes to remove the "av" in that part, so now I can save the compilation, but when the avatar is dancing, and I click again in the Ball, the avatar doesn't stop dancing, any advice?

    Thanks in advance.

  4. Hello everybody.

    I found a Synced pose balls script

    Quote
    // :SHOW:
    // :CATEGORY:Pose Ball
    // :NAME:Synced Pose balls
    // :AUTHOR:Fred Beckhusen (Ferd Frederix)
    // :KEYWORDS:
    // :CREATED:2016-05-02 13:04:04
    // :EDITED:2016-05-02  12:04:04
    // :ID:1105
    // :NUM:1893
    // :REV:1
    // :WORLD:Second Life
    // :DESCRIPTION:
    // Two Or more people sit on two or more pose balls.  The pose balls play a series of animation in sync
    // :CODE:
    // To use this, just put several dances in a prim and add this script.
    // Shift-copy the prim.  Anyone who touches it will dance in sync with anyone else who touches it.
    
    
    float RATE = 10.0;  // rate to play animations
    
    string lastDance;  // the last dance played on the slave script
    string animation ; // the currwent animation name we must play
    integer index;     // the num,ber of that animation found in inventory
    key avatarK;       // the key of tjhe seated avatar
    integer channel = -12134;    // some random number
    integer granted = FALSE;
    
    default
    {
        state_entry()
        {
            llSetClickAction(CLICK_ACTION_SIT);
            llListen(channel,"","","");
        }
    
        on_rez(integer p)
        {
            llResetScript();
        }
    
    
        changed (integer detected)
        {
            if (detected & CHANGED_LINK)
            {
                avatarK = llAvatarOnSitTarget();
                if (avatarK != NULL_KEY)
                {
                    index = 0;
                    llRequestPermissions(avatarK, PERMISSION_TRIGGER_ANIMATION);
                } else {
                    granted = FALSE;
                    llSetTimerEvent(0);
                }
            }
        
        }
    
    
        run_time_permissions(integer perm)
        {
            if (perm & PERMISSION_TRIGGER_ANIMATION)
            {
                granted = TRUE;
                animation = llGetInventoryName(INVENTORY_ANIMATION, index);    // first animation
                llSay(channel,animation); // tell another poseball to let them dance.
                llStartAnimation(animation);
                llSetTimerEvent(RATE);
            }
        }
    
        timer()
        {
            integer newindex = index;     // We must stop old animation
            newindex++;                    // and play new one
    
            // test to see if we are past the end
            if (newindex >= llGetInventoryNumber(INVENTORY_ANIMATION))
                newindex = 0;
    
            llSay(channel,llGetInventoryName(INVENTORY_ANIMATION, newindex)); // tell another poseball to let them dance.
            llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION, newindex));
            llStopAnimation(llGetInventoryName(INVENTORY_ANIMATION, index));
            
            index = newindex; // get ready for the next animation
        }
    
        listen(integer channel, string name, key id, string message) 
        {
            llSetTimerEvent(0);        // last one to send a message wins control
            
            if (granted)
            {
                llStartAnimation(message);
                if (llStringLength(lastDance))
                    llStopAnimation(lastDance);
                lastDance = message;
            }
        }
    }

    But for some reason, when the first animation starts, the avatar only plays it from the waist up, because it remains seated, how can I avoid this? 

    Thanks in advance.

  5. 13 hours ago, bbrasta Boa said:

    Thank you very much :) , although in principle it did not work for me, it has been a very good base to work on, I have been on it all day, and it works almost well, except that when I click on the hud, the animation takes time to start 38.5 seconds later. I have not been able to use touch_end, if I click on the hud it changes from off to on, and then it changes to off, without playing the animation.

    This is what I have now:

     

    I manage how to do that, thank you so much again :)

  6. On 9/8/2021 at 7:16 PM, Quistess Alpha said:
    key uuid_ON = "5d22d13a-18bb-19c1-894c-77f52f37972e";
    key uuid_OFF = "4591c717-b539-69cd-0548-54b9313f8892";
    list animations = 
    [
      "Dance_1",
      "Dance_2",
      "Dance_3",
      "Dance_4",
      "Dance_5"
      // no final ','
    ];
    integer indexAnimation;
    
    texture_change_hud_on()
    {
        llSetTexture(uuid_ON, ALL_SIDES);
    }
    texture_change_hud_off()
    {
        llSetTexture(uuid_OFF, ALL_SIDES);
    }
    
    default
    {
        state_entry()
        {
            texture_change_hud_off();
            /*
            integer index = llGetListLength(animations);
          	while(~--index)
            {
              llStopAnimation(llList2String(Animations,index));
            }
            */
        }
    
        touch_start (integer total_number)
        {
        	llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
        }
        run_time_permissions(integer perm)
        {
            if (perm & PERMISSION_TRIGGER_ANIMATION)
            {
                state on;
            }
        }
    }
    state on
    {
        state_entry()
        {
            indexAnimation=-1;
            texture_change_hud_on();
            llSetTimerEvent(35.5);
        }
        attach(key ID)
        {
          if(ID)
          {   state default;
          }
        }
        touch_end(integer detected)
        {
            state default;
        }
        timer()
        {
            llStopAnimation(llList2String(animations,indexAnimation));
            ++indexAnimation;
            if(indexAnimation>=llGetListLength(animations))
            {   state default;
            }else // this 'else' is technically unnessesary.
            {   llStartAnimation(llList2String(animations,indexAnimation));
            }
        }
        state_exit()
        {   llSetTimerEvent(0);
        }
    }

    If I were doing it from scratch I might do it in a way that avoids the state transition, but assuming I didn't make any major mistakes, that should be a decent demonstration of how to go about something like this using a list rather than rolling out a command for each animation.

    Thank you very much :) , although in principle it did not work for me, it has been a very good base to work on, I have been on it all day, and it works almost well, except that when I click on the hud, the animation takes time to start 38.5 seconds later. I have not been able to use touch_end, if I click on the hud it changes from off to on, and then it changes to off, without playing the animation.

    This is what I have now:

    Quote

    key uuid_ON = "cfdc1aa5-1194-8f7e-f161-0996d3be0901";
    key uuid_OFF = "4b9d4122-7f78-9721-ded1-b88b1ebe1395";
    list animations = ["Dance_1","Dance_2","Dance_3","Dance_4","Dance_5"];
    integer indexAnimation;

    texture_change_hud_on()
    {
        llSetTexture(uuid_ON, ALL_SIDES);
    }
    texture_change_hud_off()
    {
        llSetTexture(uuid_OFF, ALL_SIDES);
    }

    default
    {
        state_entry()
        {
    texture_change_hud_off();
    integer index = llGetListLength(animations);

             while(~--index)
    {
              llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
              llStopAnimation(llList2String(animations,index));
            }   
        }
        

        touch_start (integer total_number)

    {
                state on;
            }
    }
    state on
    {
        state_entry()
        {
            indexAnimation=-1;
            texture_change_hud_on();
            llSetTimerEvent(38.5);

                }
        attach(key id)
        {
            if (id)     
            {
                   llResetScript();
            }
           
        }
      touch_start(integer detected)
        {
              state default;
    }

        timer()
        {
            llStopAnimation(llList2String(animations,indexAnimation));
            ++indexAnimation;
            if(indexAnimation>=llGetListLength(animations))
    {   
            state default;
            }
            else // this 'else' is technically unnessesary.
    {  
             llStartAnimation(llList2String(animations,indexAnimation));
            }
        }
        state_exit()
        {   llSetTimerEvent(0);
        }
    }

     

  7. 17 hours ago, Quistess Alpha said:

    Honestly for doing this sort of thing, You'd probably be better off making a gesture than trying to do this with a script. All of the animations need to be full-perm (to you, not to the people you might sell/give it to) though.

    We make all our animation from scratch, anyways thum up for you becase is good idea remember to everybody that is not safe buy full perms animations, cause surely they are stolen, and we are tired of send DMCA...

     

    14 hours ago, bobsknief Orsini said:

    Go over your script and check the wiki for every command that is in there so you have a better idea what you are doing.
    And plz remove that listener, its bothering the hell out of me 😛

    To keep it simple and to get you started use a timer and do something like.....
    string i = 1;
    llSetTimerEvent(48.125);  
    timer(){

       if(i == 1){play_animation a}
       if(i == 2){play_animation b... stop animation ax++}
       i++

    }

    Thank you so much for that tip, I started from begining the script, and this is what I have right now, I just learning script so I'm newbie and I'm a lil stuck, can someone tell me what I'm doing wrong? :S there are not many examples of the timer event on the wiki, thanks in advance.

     

    Quote

    key uuid_ON = "5d22d13a-18bb-19c1-894c-77f52f37972e";
    key uuid_OFF = "4591c717-b539-69cd-0548-54b9313f8892";
    key Owner;
    key id;
    string i = 1;

    reset_script()
    {
        llResetScript();
    }
    texture_change_hud_on()
    {
        string texture = uuid_ON;
        llSetTexture(texture, ALL_SIDES);
    }
    texture_change_hud_off()
    {
        string texture = uuid_OFF;
        llSetTexture(texture, ALL_SIDES);
    }

    default
    {
        attach(key id)
        {
            if (id)
            {
                reset_script();
    }
    }


        state_entry()
        {
        Owner = llGetOwner();
        llRequestPermissions(Owner, PERMISSION_TRIGGER_ANIMATION);
       texture_change_hud_off();
        llStopAnimation("Dance_1");
        llStopAnimation("Dance_2");
        llStopAnimation("Dance_3");
        llStopAnimation("Dance_4");
        llStopAnimation("Dance_5");

    }

    touch_start (integer total_number)
    {
        state on;
        }
      }
    state on
    {
        state_entry()

        {
            texture_change_hud_on();
            Owner = llGetOwner();
            llRequestPermissions(Owner, PERMISSION_TRIGGER_ANIMATION);
        }

    touch_start(integer detected)
    {
        state default;
        }
        
        run_time_permissions(integer perm)
        {
            if (perm & PERMISSION_TRIGGER_ANIMATION)
            {

    llSetTimerEvent(35.5); 
         }
        }
    timer()
    {
       if(i == 1)llStartAnimation("Dance_1")+llStopAnimation("Dance_2")+llStopAnimation("Dance_3")+llStopAnimation("Dance_4")+llStopAnimation("Dance_5")+(i++);
       if(i == 2)llStartAnimation("Dance_2")+llStopAnimation("Dance_1")+llStopAnimation("Dance_3")+llStopAnimation("Dance_4")+llStopAnimation("Dance_5")+(i++);
       if(i == 3)llStartAnimation("Dance_3")+llStopAnimation("Dance_1")+llStopAnimation("Dance_2")+llStopAnimation("Dance_4")+llStopAnimation("Dance_5")+(i++);
       if(i == 4)llStartAnimation("Dance_4")+llStopAnimation("Dance_1")+llStopAnimation("Dance_2")+llStopAnimation("Dance_3")+llStopAnimation("Dance_5")+(i++);
       if(i == 5)llStartAnimation("Dance_5")+llStopAnimation("Dance_1")+llStopAnimation("Dance_2")+llStopAnimation("Dance_3")+llStopAnimation("Dance_4")+(i++);

         }

        }

     

  8. Hello :)

    I am trying to make a hud, to activate an animation of more than three minutes, the animation would be divided into four pieces (currently I have only put two, because I'm still testing it), the animations go without a loop, but I can't make them flow between them, I have tried to play with the ease in ease out values , from 0.0 to 0.1, without success, and also I don't know how to make them stop when clicking on the hud again, any help?

    Thanks in advance.

    Quote

    key uuid_ON = "e293f57f-100a-14e7-8937-858988119c10";
    key uuid_OFF = "370b36b4-4b89-0f3d-ce17-a61ca9281676";
    key Owner;
    integer chanel = 989898;
    reset_script()
    {
        llOwnerSay("Restarting the Animation Hud.");
        llResetScript();
    }
    texture_change_hud_on()
    {
        string texture = uuid_ON;
        llSetTexture(texture, ALL_SIDES);
    }
    texture_change_hud_off()
    {
        string texture = uuid_OFF;
        llSetTexture(texture, ALL_SIDES);
    }
    default
    {
        state_entry()
        {
        Owner = llGetOwner();
        llRequestPermissions(Owner, PERMISSION_TRIGGER_ANIMATION);
       texture_change_hud_off();
        llStopAnimation("Animation test 01");
        llStopAnimation("Animation test 02");
    }
    touch_start (integer total_number)
    {
        state on;
        }
        
        attach(key id)
        {
     if (id)
     { 
            reset_script();
         }
      }
    }
    state on
    {
        state_entry()
        {
            texture_change_hud_on();
            Owner = llGetOwner();
            llRequestPermissions(Owner, PERMISSION_TRIGGER_ANIMATION);
            llListen(chanel, "","","");
        }
        attach(key id)
        {
            if (id)
            {
                reset_script();
    }
    }
    touch_start(integer detected)
    {
        state default;
        }
        
        run_time_permissions(integer perm)
        {
            if (perm & PERMISSION_TRIGGER_ANIMATION)
            {
                llStartAnimation("Animation test 01");
                llSleep(48.125);
                llStartAnimation("Animation test 02");
                llSleep(48.125);
                llResetScript();
                }
                }
                }

     

  9. Ok thanks for the reply :)  

    I just saw this post is now on Wanted so I will wait for someone who wants to do this paid job for me as I bought some Scripts and posed stands in the market, and none of these works as I need.

  10. Hello everyone :)

    I'm searching for a pose stand for some animations, no vendor, and no hover text, I just need the animations to pass from one to the other with a Next and Back button for example. is there something like that done?

    Thanks in advance.

  11. 39 minutes ago, Moira Timmerman said:

    I saw on Marketplace that there are couples dance animations being sold that say they are compatible with Intan, so it looks like it is possible.  Assuming that what you are selling are dance animations, I would suggest contacting Intan to see what the requirements are for making them Intan-compatible.

    Ok I will do that, thank you.

  12. Hello.

    I'm selling couple dance balls, and a customer told me that she can't add them to her intan, there is a way to make them compatible with it?

     

    Thanks in advance.

  13. hello everyone :)

    I'm trying to do couple dances, and my question is this, should I upload the animations, from their place of origin? Or should I place the Animation_Skeleton so that it is in X and Y in zero value?

    Thanks in advance.

  14. Hola a todos. 

    Tengo algunas dudas con referencia a la tienda de Marketplace,

    ¿Como de largo puede ser el hombre del producto? ¿Debe el nombre añadir toda la descripción posible? Si es bento o no, el tipo de baile, la duración de este?

    ¿de cuánto es el máximo de pixeles que puede o debe ser la imagen del producto?

    ¿La que pongo en la página de producto es la misma que se verá en la vista general o son imágenes diferentes?

    Si fueran dos diferentes, ¿está segunda imagen tiene tambien unas dimensiones determinadas?

    Mi tienda será de bailes, ¿Donde puedo comprar una base de esas que se usan para poder probar los bailes? ¿O la tengo que hacer yo?

    ¿Donde puedo comprar el trozo de tierra que te dan gratis por ser residente?

    Gracias de antemano.

     

  15. Hello again, and sorry for so many post, but I'm allways trying as many ways to do the things as I can, until I can't anymore hehe 😢

    I am trying to do a retargeting in Mayastar of a .bvh file.
    I open a new scene, Up Axis Z.
    Mayastar Female Bento, and create character definition with MyAniMATE LT, I select .anim.
    I import the bvh file, put everything in zero rotation and create character definition.
    Retargeting and Bake to skeleton.
    I export to .anim file, and this is what I have, the avatar rotated in 90 degrees, how can I solve this?

    Thanks in advance.

    Screen Shot 01-06-20 at 06.28 PM.PNG

  16. Hello everyone.

    I am trying to make motion transfer of some motion capture files to the avatar of second life in Avastar, but I have some problems like this one, when I reset all the skeletal bone rotations, the arms point up, and not there is a way, not even putting them in pose T, or leaving them pointing up, if I make an animation layer, and try to rotate the arms in the second life avatar, there is still a problem of rotation that I can't fix, someone would have a solution for this?

    Thanks in advance.

    blender.jpg

  17. Hello😊

     Can I use the extra mspine bones to do a transfer motion in avastar? Or it only work with torso and chest? If it can be possible, do I have to unfold them? Can I repositioned either way or in a determined way?

    Thanks in advance.

  18. 35 minutes ago, Wulfie Reanimator said:

    Did you also change the animation names to match the animations you actually put into the script?

    It's not supposed to do anything when you click on the prim the script is in. As soon as the script starts, you should get a dialog that asks for permission to animate your avatar (if the prim is not attached to you).

    If you don't get that, and no animations play, are you sure the script is set to running? You can check by opening the script and looking at the checkboxes on the bottom of the script editor.

    Hello.

    Do the names of the two animations go after llStartAnimation and in quotes? 

  19. 13 hours ago, Wulfie Reanimator said:

    You can definitely play two animations at the same time even if they animate the same bone(s)... that's the whole reason we have the animation priority system and other quirks.

    Proper example: You play a full-body idle-stand animation which animates all bones of the avatar's skeleton, priority 3. Then you play a holding animation which animates the whole left arm, priority 4. Now your avatar has two overlapping animations trying to animate the same bones, but because the holding animation has higher priority, it will be the one that controls the left arm.

    Common example: You play an idle-stand animation, priority 4. Then you play a holding animation, also priority 4. In this case, when both animations have the same priority, the animation that started last has control of all bones it would animate. The left arm of the idle-stand are overridden. Realistically, this isn't very practical because if the avatar moves, the idle-stand animation will eventually restart and take over the left arm because now it has started after the holding animation. (Workarounds exist, but I won't go into them right now.)

    Anyway, now that the theory part is over, here's a practical example for starting two animations at the same time:

    
    default
    {
        state_entry()
        {
            llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
        }
    
        run_time_permissions(integer perm)
        {
            if (perm)
            {
                llStartAnimation("idle-stand");
                llStartAnimation("holding");
            }
        }
    }

     

    Hello.

    Yes, this is the first script I tried, and the one I'm still playing with, because it doesn't work for me, I have a fingerless body animation in one file, and the finger animation in another file, I put them inside a prim, I created a new script from content, copied that code and pasted it in the script and saved it, but when you touch it it does nothing, even if I put the prim in the avatar, any suggestions?

×
×
  • Create New...