Как мне сделать стационарное изображение из частиц в LSL? - PullRequest
3 голосов
/ 20 июня 2009

LSL (язык сценариев Linden) позволяет использовать различные эффекты частиц с помощью функции llParticleSystem. Каковы правильные параметры для этой функции, чтобы неподвижное изображение на основе частиц зависло над примом?

(Этот вопрос был задан сегодня в дискуссионной группе «Академия сценариев». Я публикую этот вопрос и мой ответ здесь, чтобы помочь привлечь больше пользователей LSL в переполнение стека.)

1 Ответ

4 голосов
/ 20 июня 2009

Следующий скрипт создаст неподвижное изображение зависания из частиц, используя первую текстуру, найденную в содержимом прима.

ParticleImage(string tex, vector scale)
{
   list params;
   //set texture and size
   params += [PSYS_SRC_TEXTURE, tex];
   params += [PSYS_PART_START_SCALE, scale];
   //make particles follow source
   params += [PSYS_PART_FLAGS, PSYS_PART_FOLLOW_SRC_MASK];
   //use drop pattern, which has no velocity
   params += [PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP];
   llParticleSystem(params);
}

default
{
   state_entry()
   {
       //make the prim invisible
       llSetAlpha(0.0, ALL_SIDES);
       if (llGetInventoryNumber(INVENTORY_TEXTURE))
       {
           string tex = llGetInventoryName(INVENTORY_TEXTURE, 0);
           ParticleImage(tex, <1.0, 1.0, 0.0>);
       }
   }
}
...