écouteur walkman (flex)

Répondre
Partager Rechercher
Ben non c'est pas possible. Donc pas de flexi sur tes fils de walkman. faut juste les poser sur le corps mais attacher aux oreilles quand la tete va tourner, ca va pas etre simple...
un truc, c'est d'utiliser les particules et l'option target.

mais c'est assez pointu à cause d'un certains nombres de soucis sur les keys des objets...

et ça peut donner des résultats intéressants et surprenants...
alors les llSay() permet d'avoir la key d'un objet, qu'ensuite tu utilises pour envoyer des particules, simple non?

ton oreillette envoie sur un canal privé un llsay(), ton baladeur récupère ainsi la key des écouteurs, et envoie les particules.

c'est simple, mais à faire, faut une bonne maîtrise du LSL, des états, des llListen(), llSay(), et du pourquoi les keys changent constamment sur les objets portés.

ha, et les timers aident aussi pas mal.
à mettre dans le walkman:
Code:
key cible = NULL_KEY;

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

    state_entry() {
        llParticleSystem([]);
        llSetTimerEvent(5);
        llListen(-12439, "", NULL_KEY, ""); }

    timer () {
        llSay(-12439, "Walky"); }

    listen(integer canal, string code, key id, string mess) {
        llOwnerSay(mess);
        if (llGetAgentSize(id) == ZERO_VECTOR)
            if ((llGetOwnerKey(id) == llGetOwner()) && (mess == "Casquy")) {
                cible = id;
                state run; } } }

state run {
    on_rez (integer num) {
        llResetScript(); } 

    state_entry() {
        llOwnerSay((string)cible);
        integer flags = PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_SRC_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK;
        llParticleSystem([ PSYS_PART_FLAGS, flags, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
                        PSYS_PART_START_COLOR, <1.0,1.0,1.0>, PSYS_PART_START_SCALE, <0.05,0.1,0>, PSYS_PART_START_ALPHA, 1.0,
                        PSYS_SRC_BURST_RADIUS, 1.0, PSYS_SRC_BURST_RATE, 0.01, PSYS_PART_MAX_AGE, 5.0, PSYS_SRC_MAX_AGE, 0.0,
                        PSYS_SRC_BURST_PART_COUNT, 500, PSYS_SRC_BURST_SPEED_MIN, 0.0,PSYS_SRC_BURST_SPEED_MAX, 1.0,
                        PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>, PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>,
                        PSYS_SRC_TARGET_KEY, cible ]); } }
Et dans le casque:
Code:
default {
    on_rez (integer num) {
        llResetScript(); }

    state_entry() {
        llListen(-12439, "", NULL_KEY, ""); }

    listen(integer canal, string code, key id, string mess) {
        llOwnerSay(mess);
        if (llGetAgentSize(id) == ZERO_VECTOR)
            if ((llGetOwnerKey(id) == llGetOwner()) && (mess == "Walky")) state run; } }

state run  {
    on_rez (integer num) {
        llResetScript(); }

    state_entry() {
        llSleep(5);
        llSay(-12439, "Casquy"); } }
pour faire un fil plus petit, il faut une texture, parce que la taille dans le script est la plus petite chez moi, en dessous on ne les voit plus.
En théorie, on rez le casque avant le walkman.

l'effet est... très intéressant lors des animations.
Génial comme tout ce que j'ai pu voir déjà de ta part ...

Bon, me reste à mettre la texture ...

autrement, quand je mets l'écouteur à l'oreille et l'ipod à ma hanche,
l'avatar est fantôme et tout le traverse, donc la ligne droite heu bof ...

Une autre idée ?
Les particules sont fantômes, donc passent à travers tout, tout comme les objets flexibles.

Tu peux faire joujou avec le vecteur suivant PSYS_SRC_ACCEL pour lancer les particules dans la direction qui t'intéresse, garde à l'esprit que ce vecteur est relatif au prim contenant le script...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés