LlGetAnimation/nl

From Second Life Wiki
Revision as of 05:57, 25 August 2025 by San Diavolo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Functie: string llGetAnimation( key id );

Levert een a string op met de naam van de huidige bewegingsanimatie van avatar id. Zie de tabel hieronder.

• key id UUID van een avatar in dezelfde sim.


llGetAgentInfo geeft informatie over sommige animatie-statussen (typen, afwezig, bezig), die niet door deze functie worden gedekt. llGetAnimationList geeft meer details over de lopende animaties, maar is niet zo precies als llGetAnimation over de status van de avatar.

Complete lijst met mogelijke waarden op 15 Augustus 2011.[1]
Overschrijfbare animaties
Value Type Description Default
"Crouching" State crouch
"CrouchWalking" State crouchwalk
"Falling Down" State falldown
"Flying" State fly
"FlyingSlow" State Transition between hovering and forward flight. flyslow
"Hovering" State hover
"Hovering Down" State hover_down
"Hovering Up" State hover_up
"Jumping" State While still in the air during a jump. jump
"Landing" Transition When landing from a jump. land
"PreJumping" Transition At the beginning of a jump. prejump
"Running" State run
"Sitting" State Sitting on an object (and linked to it). sit
"Sitting on Ground" State Sitting, but not linked to an object.[2] sit_ground_constrained
"Standing" State stand
"Standing Up" Transition After falling a great distance. Sometimes referred to as Hard Landing. standup
"Striding" State When the avatar is stuck on the edge of an object or on top of another avatar. stride
"Soft Landing" Transition After falling a small distance. soft_land
"Taking Off" State hover_up
"Turning Left" State turnleft
"Turning Right" State turnright
"Walking" State walk
Andere gebruikelijke animaties
Animatie Omschrijving
"" Tijdens het uitloggen
"Init" Bij het inloggen en na een teleport
Ongebruikelijke animaties
Value Description
"Crouch"
"Epsilon"
"Fall Down Land"
"Finish Animation"
"Fly"
"FlySlow"
"Hard Land"
"Hover Down"
"Hover Up"
"Hover"
"Medium Land"
"PreFlying"
"PreJump"
"Prep For Teleport"
"Run"
"Sit on Ground"
"Sit"
"Soft Land"
"Stand"
"Stride"
"Take Off"
"Turn Done"
"Turn Left"
"Turn Right"
"Uncrouch"
"Walk"

Kanttekeningen

  • Deze functie kan een lege string opleveren als de avayar net aan het uitloggen is.
  • Er kunnen nieuwe waarden worden toegevoegd, waardoor deze lijst niet langer compleet is. Scripts moeten er rekening mee houden, dat ze een onbekende waarde kunnen terugkrijgen.

Voorbeelden

// Een simpel voorbeeld van het overschrijven van een animatie
// Laat de avatar door de lucht rennen tijdens het springen

key eigenaar;    // de ID van de eigenaar
string vorige;   // vorige waarde van llGetAnimation


opstarten(key id) {
    if (id) {
        // wordt aangetrokken of gedragen tijdens reset
        llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
        eigenaar = id;
    } else {
        llSetTimerEvent(0.0); // stop de timer
    }
}


default {
    state_entry() {
        // als het script wordt gereset tijdens het dragen
        if (llGetAttached()) {
            opstarten(llGetOwner());
        }
    }

    attach(key id) {
        opstarten(id);
    }

    run_time_permissions(integer perm) {
        if (perm & PERMISSION_TRIGGER_ANIMATION) {
            llSetTimerEvent(0.25); // start de timer
        }
    }

    timer() {
        string anim = llGetAnimation(gOwner);

        if (vorige != anim) { 
            // alleen als de animatie is veranderd
            if (anim == "Jumping") {

                // Je kunt de ingebouwde animatie stoppen als je wilt, maar
                // dit kan een nadelig effect hebben: de avatar kan vast 
                // komen te zitten en het resultaat van llGetAgentInfo kan
                // onbetrouwbaar worden. Test het altijd even.

                // llStopAnimation("jump");
                llStartAnimation("run");
            }
            else if (vorige == "Jumping")  { // net klaar met springen
                // "run" is een doorlopende animatie
                // We moeten hem dus handmatig stoppen
                llStopAnimation("run");
            }
            
            vorige = anim; // onthouden voor de volgende vergelijking
        }
    }
}

Zie ook

Functies

•  llGetAgentInfo
•  llGetAnimationList