Difference between revisions of "Template:LSL Function/ParticleSystem/ru"
m |
|||
(10 intermediate revisions by one other user not shown) | |||
Line 47: | Line 47: | ||
<includeonly> | <includeonly> | ||
{{#vardefine:header|{{#var:header}}{{LSLC|Effects}}{{LSLC|Light}}{{LSLC|Particles}}{{LSLC|Prim}}{{LSLC|Stop}}}} | {{#vardefine:header|{{#var:header}}{{LSLC/ru|Effects}}{{LSLC/ru|Light}}{{LSLC/ru|Particles}}{{LSLC/ru|Prim}}{{LSLC/ru|Stop}}}} | ||
</includeonly> | </includeonly> | ||
Line 53: | Line 53: | ||
{{LSL Function/alpha}} | {{LSL Function/alpha}} | ||
{{#vardefine:p_rules_desc| | {{#vardefine:p_rules_desc|Правила для системы испускания частиц в формате [ правило1, параметр1, правило2, параметр2 . . . правило '''n''', параметр '''n''' ]}} | ||
{{#vardefine:p_rules_hover| | {{#vardefine:p_rules_hover|Правила для системы испускания частиц в формате [ правило1, параметр1, правило2, параметр2 . . . правило n, параметр n ]}} | ||
}}<noinclude> | }}<noinclude> | ||
Line 61: | Line 61: | ||
{{#vardefine:spec| | {{#vardefine:spec| | ||
Определяет систему испускания частиц, которая устанавливает состояние испускателя ( | Определяет систему испускания частиц, которая устанавливает состояние испускателя (далее, эмиттер) внутри примитива, в котором содержится [[script|скрипт]]. Другие скрипты, находящиеся в данном примитиве и вызывающие эту функцию, будут '''изменять''' состояние этого эмиттера. По сути, система испускания частиц, определённая данной функцией, является [[primitive property|свойством примитива]], как, например, цвет, форма, размеры, и т.д. . В каждом примитиве может быть только '''один''' эмиттер, расположенный в [[geometric center|геометрическом центре]] и выровненный вдоль [[Viewer coordinate frames#Local|локальной]] оси Z в положительном направлении. | ||
Это одна из нескольких {{LSLGC|Particles|функций}}, которые изменяют состояние эмиттера в примитиве; так, если вы хотите изменить состояние эмиттера (поменять систему частиц или вовсе выключить эмиттер), достаточно вызвать эту функцию с параметрами новой системы. Задание пустого списка правил ( <code>{{{1}}}</code>; ) выключит эмиттер. | Это одна из нескольких {{LSLGC|Particles|функций}}, которые изменяют состояние эмиттера в примитиве; так, если вы хотите изменить состояние эмиттера (поменять систему частиц или вовсе выключить эмиттер), достаточно вызвать эту функцию с параметрами новой системы. Задание пустого списка правил ( <code>{{{1}}}</code>; ) выключит эмиттер. | ||
Line 137: | Line 137: | ||
{{!!}} Значение | {{!!}} Значение | ||
{{!}}- style="background-color:#ccffcc;" | {{!}}- style="background-color:#ccffcc;" | ||
{{!}} colspan="5" align="left"{{!}}''' | {{!}} colspan="5" align="left"{{!}}'''Поведение системы''' | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_PART_FLAGS | {{!}}colspan="2"{{!}}PSYS_PART_FLAGS | ||
Line 219: | Line 219: | ||
{{!}}- style="background-color:#ccffcc;" | {{!}}- style="background-color:#ccffcc;" | ||
{{!}} colspan="5" align="left"{{!}}''' | {{!}} colspan="5" align="left"{{!}}'''Вид системы''' | ||
{{!}}- | {{!}}- | ||
{{!}} colspan="2"{{!}}PSYS_SRC_PATTERN | {{!}} colspan="2"{{!}}PSYS_SRC_PATTERN | ||
Line 275: | Line 275: | ||
{{!}}colspan="2"{{!}}PSYS_SRC_TARGET_KEY | {{!}}colspan="2"{{!}}PSYS_SRC_TARGET_KEY | ||
{{!!}}[[key]] {{LSL Param|target}} | {{!!}}[[key]] {{LSL Param|target}} | ||
{{!!}}Обозначает ключ целевого объекта, примитива или аватара, в сторону которого двигаются частицы. Требует наличия флага PSYS_PART_TARGET_POS_MASK или PSYS_PART_TARGET_LINEAR_MASK. | {{!!}}Обозначает ключ целевого объекта, примитива или аватара, в сторону которого двигаются частицы. Требует наличия флага PSYS_PART_TARGET_POS_MASK или PSYS_PART_TARGET_LINEAR_MASK. ([[#Caveats|предостережение 4]]) | ||
{{!}}align="center"{{!}}20 | {{!}}align="center"{{!}}20 | ||
{{!}}- style="background-color:#ccffcc;" | {{!}}- style="background-color:#ccffcc;" | ||
{{!}}colspan="5" align="left"{{!}}''' | {{!}}colspan="5" align="left"{{!}}'''Внешний вид частиц''' | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_PART_START_COLOR | {{!}}colspan="2"{{!}}PSYS_PART_START_COLOR | ||
Line 303: | Line 302: | ||
{{!}}colspan="2"{{!}}PSYS_PART_START_SCALE | {{!}}colspan="2"{{!}}PSYS_PART_START_SCALE | ||
{{!!}}[[vector]] {{LSL Param|scale_start}} | {{!!}}[[vector]] {{LSL Param|scale_start}} | ||
{{!!}} | {{!!}}Вектор, обозначающий [[scale|размеры]] частиц в момент появления. Допустимые значения от 0.03125 до 4.0, в метрах. Реальный размер частиц всегда кратен 0.03125. Меньшие значения не дадут никакого эффекта. Поскольку частицы являются по сути двумерными спрайтами, компонент Z вектора игнорируется. | ||
{{!}}align="center"{{!}}5 | {{!}}align="center"{{!}}5 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_PART_END_SCALE | {{!}}colspan="2"{{!}}PSYS_PART_END_SCALE | ||
{{!!}}[[vector]] {{LSL Param|scale_end}} | {{!!}}[[vector]] {{LSL Param|scale_end}} | ||
{{!!}} | {{!!}}Вектор, обозначающий [[scale|размеры]] частиц, которые частицы приобретают в конце своей жизни. Игнорируется, если не установлен флаг PSYS_PART_INTERP_SCALE_MASK. Допустимые значения от 0.03125 до 4.0, в метрах. | ||
{{!}}align="center"{{!}}6 | {{!}}align="center"{{!}}6 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_TEXTURE | {{!}}colspan="2"{{!}}PSYS_SRC_TEXTURE | ||
{{!!}}[[string]] {{LSL Param|texture}} | {{!!}}[[string]] {{LSL Param|texture}} | ||
{{!!}} | {{!!}}Строка, соответствующая имени текстуры в инвентаре примитива с эмиттером, которая будет применена к частицам. Вместо имени можно задать [[UUID|уникальный ключ]] текстуры (тогда ее наличие в инвентаре примитива необязательно). | ||
{{!}}align="center"{{!}}12 | {{!}}align="center"{{!}}12 | ||
{{!}}- style="background-color:#ccffcc;" | {{!}}- style="background-color:#ccffcc;" | ||
{{!}}colspan="5" align="left"{{!}}''' | {{!}}colspan="5" align="left"{{!}}'''Образование частиц''' | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_MAX_AGE | {{!}}colspan="2"{{!}}PSYS_SRC_MAX_AGE | ||
{{!!}}[[float]] {{LSL Param|duration_system}} | {{!!}}[[float]] {{LSL Param|duration_system}} | ||
{{!!}} | {{!!}}Обозначает количество времени, в секундах, на протяжении которого эмиттер будет работать, с момента запуска системы или с момента появления эмиттера в радиусе видимости. По истечении этого срока частицы из данной системы не будут появляться (до тех пор пока не будет снова вызвана функция). Нулевое значение заставляет систему работать бесконечно. ([[#Caveats|предостережение 1]]) | ||
{{!}}align="center"{{!}}19 | {{!}}align="center"{{!}}19 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_PART_MAX_AGE | {{!}}colspan="2"{{!}}PSYS_PART_MAX_AGE | ||
{{!!}}[[float]] {{LSL Param|duration_particle}} | {{!!}}[[float]] {{LSL Param|duration_particle}} | ||
{{!!}} | {{!!}}Обозначает количество времени, в секундах, на протяжении которого существуют частицы. Максимальное значение 30.0 секунд. В течение этого времени частица появится, будет видоизменяться и двигаться согласно заданным правилам, и исчезнет. | ||
{{!}}align="center"{{!}}7 | {{!}}align="center"{{!}}7 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_BURST_RATE | {{!}}colspan="2"{{!}}PSYS_SRC_BURST_RATE | ||
{{!!}}[[float]] {{LSL Param|burst_sleep}} | {{!!}}[[float]] {{LSL Param|burst_sleep}} | ||
{{!!}} | {{!!}}Задает интервал, в секундах, между каждым образованием частиц. Нулевое значение наибольшую возможную частоту образования. | ||
{{!}}align="center"{{!}}13 | {{!}}align="center"{{!}}13 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_BURST_PART_COUNT | {{!}}colspan="2"{{!}}PSYS_SRC_BURST_PART_COUNT | ||
{{!!}}[[integer]] {{LSL Param|burst_particle_count}} | {{!!}}[[integer]] {{LSL Param|burst_particle_count}} | ||
{{!!}} | {{!!}}Обозначает число частиц при каждом "образовании". | ||
{{!}}align="center"{{!}}15 | {{!}}align="center"{{!}}15 | ||
{{!}}- style="background-color:#ccffcc;" | {{!}}- style="background-color:#ccffcc;" | ||
{{!}}colspan="5" align="left"{{!}}''' | {{!}}colspan="5" align="left"{{!}}'''Движение частиц''' | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_ACCEL | {{!}}colspan="2"{{!}}PSYS_SRC_ACCEL | ||
{{!!}}[[vector]] {{LSL Param|acceleration}} | {{!!}}[[vector]] {{LSL Param|acceleration}} | ||
{{!!}} | {{!!}}Вектор, обозначающий ускорение каждой частицы, в метрах в секунду (в квадрате? Ну, раз ускорение... -- вопрос пер.). Допустимые значения от -100.0 до 100.0 для каждого компонента вектора в [[Viewer coordinate frames#Region|региональных]] координатах. | ||
{{!}}align="center"{{!}}8 | {{!}}align="center"{{!}}8 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_OMEGA | {{!}}colspan="2"{{!}}PSYS_SRC_OMEGA | ||
{{!!}}[[vector]] {{LSL Param|omega}} | {{!!}}[[vector]] {{LSL Param|omega}} | ||
{{!!}} | {{!!}}Вектор, обозначающий вращение эмиттера в радианах в секунду вокруг каждой оси. Направление эмиттера перестаёт совпадать с осью Z примитива. Вращение примитива (посредством [[llTargetOmega]]) не оказывает влияние на вращение эмиттера. ([[#Caveats|предостережение 2]] и [[#Caveats|предостережение 3]]) | ||
{{!}}align="center"{{!}}21 | {{!}}align="center"{{!}}21 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_BURST_SPEED_MIN | {{!}}colspan="2"{{!}}PSYS_SRC_BURST_SPEED_MIN | ||
{{!!}}[[float]] {{LSL Param|speed_min}} | {{!!}}[[float]] {{LSL Param|speed_min}} | ||
{{!!}} | {{!!}}Минимальное значение диапазона случайных чисел, которые обозначают скорость частицы, которую она приобретает в момент появления, в метрах в секунду. Если данное значение больше значения при PSYS_SRC_BURST_SPEED_MAX, то они меняются местами. | ||
{{!}}align="center"{{!}}17 | {{!}}align="center"{{!}}17 | ||
{{!}}- | {{!}}- | ||
{{!}}colspan="2"{{!}}PSYS_SRC_BURST_SPEED_MAX | {{!}}colspan="2"{{!}}PSYS_SRC_BURST_SPEED_MAX | ||
{{!!}}[[float]] {{LSL Param|speed_max}} | {{!!}}[[float]] {{LSL Param|speed_max}} | ||
{{!!}} | {{!!}} | ||
Максимальное значение диапазона случайных чисел, которые обозначают скорость частицы, которую она приобретает в момент появления, в метрах в секунду. Если данное значение меньше значения при PSYS_SRC_BURST_SPEED_MIN, то они меняются местами. | |||
{{!}}align="center"{{!}}18 | {{!}}align="center"{{!}}18 | ||
{{!}}- | {{!}}- | ||
{{!}} style="font-size:80%" colspan="5" {{!}} LL_PART_* | {{!}} style="font-size:80%" colspan="5" {{!}} Константы типа LL_PART_* имеются только в {{SourceLink|indra/llmessage/llpartdata.h|rev=1681|line=99}}, флаги, обозначенные <span style="color:darkred;">красным</span> вычеркнуты из программы. | ||
{{!}}} }} | {{!}}} }} | ||
}}<noinclude> | }}<noinclude> | ||
Line 372: | Line 372: | ||
{{#vardefine:deepnotes| | {{#vardefine:deepnotes| | ||
===Missing 14=== | ===Missing 14=== | ||
Есть сведения о "пропавшей" константе со значением 14. Её роль исполняют другие правила. | |||
{{#var:deepnotes}}}} | {{#var:deepnotes}}}} | ||
}}<noinclude> | }}<noinclude> |
Latest revision as of 23:22, 17 July 2013
spec
Определяет систему испускания частиц, которая устанавливает состояние испускателя (далее, эмиттер) внутри примитива, в котором содержится скрипт. Другие скрипты, находящиеся в данном примитиве и вызывающие эту функцию, будут изменять состояние этого эмиттера. По сути, система испускания частиц, определённая данной функцией, является свойством примитива, как, например, цвет, форма, размеры, и т.д. . В каждом примитиве может быть только один эмиттер, расположенный в геометрическом центре и выровненный вдоль локальной оси Z в положительном направлении.
Это одна из нескольких функций, которые изменяют состояние эмиттера в примитиве; так, если вы хотите изменить состояние эмиттера (поменять систему частиц или вовсе выключить эмиттер), достаточно вызвать эту функцию с параметрами новой системы. Задание пустого списка правил ( {{{1}}}
; ) выключит эмиттер.
По существу, частицы являются двумерными спрайтами, они всегда направлены в сторону камеры.
Значения правил и данных описаны ниже.
caveats
- При использовании системы частиц с ненулевым значением срока жизни эмиттера (PSYS_SRC_MAX_AGE) можно заметить, что система частиц иногда перезапускается самовольно, без вызова из скрипта. Это связано с глюком, который заставляет эмиттер "перезапускаться", когда какое-то свойство примитива обновляется или как-либо еще передаётся программе-просмотрщику (вьюверу). Для обхода этой ошибки вы можете воспользоваться таймером или принудительным вызовом llSleep, а потом, по прошествии нужного времени, отключить эмиттер. Пользователь Debbie Trilling опубликовал метод обхода здесь: http://forums-archive.secondlife.com/54/fa/260031/1.html#post1996465
- Вращение, запущенное посредством PSYS_SRC_OMEGA осуществляется относительно региональных координат, а не локальных координат примитива.
- Когда эмиттер создан в примитиве, его угол поворота устанавливается на нулевое значение (ZERO_ROTATION). При использовании PSYS_SRC_OMEGA эмиттер поворачивается. Если вы измените значение вектора при PSYS_SRC_OMEGA, эмиттер не вернется к нулевому углу, а останется в том значении угла вращения, в котором он был при остановке/изменении. Это может привести к тому, что частицы в примитиве с повернутым эмиттером будут отображаться отлично от таковых в "свежем" примитиве со "свежим" эмиттером.
- Частицы, движущиеся в сторону гуманоидного аватара, обозначенного при правиле PSYS_SRC_TARGET_KEY (при условии наличия флага PSYS_PART_TARGET_POS_MASK), будут попадать в центр его граничной рамки, который, к сожалению, находится в области паха. Если вы хотите, чтобы они попадали в другую часть тела аватара, вам придется расположить целевой примитив в требуемом месте назначения и использовать ключ этого примитива при правиле PSYS_SRC_TARGET_KEY.
- Программа-просмотрщик (вьювер), для улучшения своей работы, выбрасывает маленькие объекты из поля зрения на некотором расстоянии. Если примитив с эмиттером достаточно мал, чтобы быть вырезанным из поля зрения таким образом, испускаемые им частицы также не будут отображаться.
notes
- По умолчанию, количество частиц выставлено на 4096. Это максимальное число частиц, которое будет отображено для всех активных систем испускания в радиусе зрения. При создании системы частиц желательно создавать их так, чтобы частиц было не слишком много и чтобы они не "захламляли" поле зрения, "вытесняя" другие испускатели. По существу, если вам не удается заставить свой эмиттер испускать столько частиц, сколько вам нужно, то возможно вас "вытесняют" другие эмиттеры в поле зрения. "Тормоза" программы-просмотрщика (малое число кадров в секунду) также могут послужить причиной этой неприятности, поскольку частицы визуализируются с относительно низким приоритетом. Наилучшее решение - при создании своей системы частиц найдите место, где мало других источников частиц, а также вещей, "тормозящих" ваш просмотрщик.
- Когда частица сгенерирована, направление ее движения можно контролировать только посредством правила PSYS_SRC_ACCEL и флагов PSYS_PART_TARGET_POS_MASK и PSYS_PART_FOLLOW_SRC_MASK. Соответственно, сделать эмиттер, который будет создавать эффект "водоворота" (который вы можете наблюдать когда какой-то объект удаляется или что-то произносит, или когда аватар покидает сим) не представляется возможным. Однако, его можно воссоздать, используя движущийся примитив с эмиттером.
helpers
Полезные функции для сохранения/извлечения значений цвета и прозрачности в/из целых чисел:
<lsl>integer ColorAlphatoRGBA(vector color, float alpha) {
return (((integer)(alpha * 255.0) & 0xFF) << 24)
constants_nb
Правило | Параметр правила | Описание | Значение | |
Поведение системы | ||||
PSYS_PART_FLAGS | integer flags | Различные флаги, контролирующие поведение системы частиц. Значения флагов могут быть представлены в виде целых чисел в десятичном или шестнадцатеричном формате, или посредством перечисления через оператор | (ИЛИ) одной или нескольких флаговых констант, приведенных ниже: | 0 | |
V a l u e s |
PSYS_PART_BOUNCE_MASK | Этот флаг заставляет частицы "отскакивать" от воображаемой горизонтальной плоскости, находящейся на высоте эмиттера. При "отскоке" частица поворачивает в противоположном направлении скорость и угол движения. Это работает только с частицами, находящимися над плоскостью и падающими на нее сверху. | 0x004 | |
PSYS_PART_EMISSIVE_MASK | Частицы становятся максимально освещенными и независящими от окружающего освещения. Без этого флага освещенность частиц будет зависеть от окружающего освещения, в том числе и от точечных источников света. | 0x100 | ||
PSYS_PART_FOLLOW_SRC_MASK | Частицы будут двигаться относительно позиции эмиттера. Без этого флага частицы не зависимы от расположения или движения самого эмиттера. Следует учесть, что этот флаг отключает правило PSYS_SRC_BURST_RADIUS. | 0x010 | ||
PSYS_PART_FOLLOW_VELOCITY_MASK | Частицы поворачиваются своим "верхом" по направлению движения. Без этого флага частицы показаны так, как выглядят их текстуры (верх смотрит вверх, левая сторона - влево). | 0x020 | ||
PSYS_PART_INTERP_COLOR_MASK | Частицы изменяют свой цвет и прозрачность на протяжении жизни от стартовых значений (обозначенных при правилах PSYS_PART_START_ALPHA и PSYS_PART_START_COLOR) к конечным значениям (при PSYS_PART_END_ALPHA и PSYS_PART_END_COLOR). Изменение цвета/прозрачности представляет собой плавную интерполяцию. (Без этого флага конечные значения игнорируются, и частица на протяжении всей жизни имеет один и тот же цвет и прозрачность, заданные стартовыми параметрами -- прим. пер.) | 0x001 | ||
PSYS_PART_INTERP_SCALE_MASK | Размеры частицы на протяжении ее жизни изменяются от стартового значения (при PSYS_PART_START_SCALE) к конечному (при PSYS_PART_END_SCALE). (Без этого флага конечные значения игнорируются, и частица на протяжении всей жизни имеет один и тот же размер, заданный стартовым параметром -- прим. пер.) | 0x002 | ||
PSYS_PART_TARGET_LINEAR_MASK | Частицы двигаются по прямой в сторону цели, обозначенной при правиле PSYS_SRC_TARGET_KEY. В этом режиме правила PSYS_SRC_ACCEL, PSYS_SRC_BURST_RADIUS и некоторые другие игнорируются. | 0x080 | ||
PSYS_PART_TARGET_POS_MASK | Частицы во время своей жизни изменяют направление движения в сторону цели, обозначенной при правиле PSYS_SRC_TARGET_KEY, стараясь достичь ее в момент гибели. Следует учитывать, что если цель не обозначена, обозначена неправильно или выходит из поля видимости эмиттера, то целью становится сам примитив, содержащий эмиттер. | 0x040 | ||
PSYS_PART_WIND_MASK | На движение частиц влияет ветер. Он применяется к ним как вторичная сила. | 0x008 | ||
(не введено) | 0x200 | |||
(устарело) | 0x40000000 | |||
(устарело) | 0x80000000 | |||
(не введено) | - | |||
(не введено) | - | |||
(не введено) | - | |||
Вид системы | ||||
PSYS_SRC_PATTERN | integer pattern | Обозначает общую модель испускания частиц. | 9 | |
V a l u e s |
PSYS_SRC_PATTERN_EXPLODE | Распыляет частицы вокруг эмиттера по сфере. Начальная скорость определяется правилами PSYS_SRC_BURST_SPEED_MIN и PSYS_SRC_BURST_SPEED_MAX. Угловые (ANGLE) параметры игнорируются. | 0x02 | |
PSYS_SRC_PATTERN_ANGLE_CONE | Распыляет частицы по сфере, полусфере, конусу, кольцу, в зависимости от параметров при правилах PSYS_SRC_ANGLE_BEGIN и PSYS_SRC_ANGLE_END. Данная модель может имитировать модель EXPLODE, если задать параметры при правилах PSYS_SRC_ANGLE_BEGIN на 0.00000 и PSYS_SRC_ANGLE_END на 3.14159 (или PI) (или наоборот). | 0x08 | ||
PSYS_SRC_PATTERN_ANGLE | Распыляет частицы по плоскому кругу, полукругу, сектору или линии, в зависимости от параметров при правилах PSYS_SRC_ANGLE_BEGIN и PSYS_SRC_ANGLE_END. Круговая модель распыляет частицы в плоскости, перпендикулярной локальной оси X примитива. | 0x04 | ||
PSYS_SRC_PATTERN_DROP | Создает частицы, не имеющие изначальной скорости. Данная модель не принимает во внимание параметры при правилах PSYS_SRC_BURST_RADIUS, PSYS_SRC_BURST_SPEED_MIN и PSYS_SRC_BURST_SPEED_MAX, делает их равными 0. (Любая другая модель может вести себя как эта, если выставить значения PSYS_SRC_BURST_SPEED_MIN и PSYS_SRC_BURST_SPEED_MAX на 0). | 0x01 | ||
PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY | (введено не полностью) | 0x10 | ||
PSYS_SRC_BURST_RADIUS | float radius | Обозначает расстояние от эмиттера, на котором происходит образование частиц. Это правило игнорируется, когда установлен флаг PSYS_PART_FOLLOW_SRC_MASK. Испытания (http://forums-archive.secondlife.com/327/f5/226722/1.html) показывают, что максимальное значение параметра равно 50.0 . | 16 | |
PSYS_SRC_ANGLE_BEGIN | float angle_begin | Обозначает полуугол (в радианах) кругового (для модели PSYS_SRC_PATTERN_ANGLE) или конического (PSYS_SRC_PATTERN_ANGLE_CONE или PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY) сектора (за ноль принято направление эмиттера), внутри которого частицы НЕ будут образовываться. Допустимые значения те же что и у PSYS_SRC_ANGLE_END. Следует учитывать, что если значение этого параметра больше значения PSYS_SRC_ANGLE_END, то они меняются местами. | 22 | |
PSYS_SRC_ANGLE_END | float angle_end | Обозначает полуугол (в радианах) кругового (для модели PSYS_SRC_PATTERN_ANGLE) или конического (PSYS_SRC_PATTERN_ANGLE_CONE или PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY) сектора (за ноль принято направление эмиттера),внутри которого частицы БУДУТ образовываться. Допустимые значения от 0.0 (тогда частицы будут двигаться вдоль прямой направления эмиттера) до PI (тогда частицы будут распыляться по кругу или сфере вокруг эмиттера, не считая сектор, обозначенный PSYS_SRC_ANGLE_BEGIN). Следует учитывать, что если значение этого параметра меньше значения PSYS_SRC_ANGLE_START, то они меняются местами. | 23 | |
float angle_inner | УСТАРЕЛО: Используйте PSYS_SRC_ANGLE_BEGIN. | 10 | ||
float angle_outer | УСТАРЕЛО: Используйте PSYS_SRC_ANGLE_END | 11 | ||
PSYS_SRC_TARGET_KEY | key target | Обозначает ключ целевого объекта, примитива или аватара, в сторону которого двигаются частицы. Требует наличия флага PSYS_PART_TARGET_POS_MASK или PSYS_PART_TARGET_LINEAR_MASK. (предостережение 4) | 20 | |
Внешний вид частиц | ||||
PSYS_PART_START_COLOR | vector color_start | Вектор, обозначающий цвет частиц в момент появления. | 1 | |
PSYS_PART_END_COLOR | vector color_end | Вектор, обозначающий цвет, который частицы приобретают в конце своей жизни. Игнорируется, если не установлен флаг PSYS_PART_INTERP_COLOR_MASK. | 3 | |
PSYS_PART_START_ALPHA | float alpha_start | Число, обозначающее прозрачность частиц в момент появления. Допустимые значения от 0.0 до 1.0. Чем ниже значение, тем прозрачнее частица. | 2 | |
PSYS_PART_END_ALPHA | float alpha_end | Число, обозначающее прозрачность, которую частицы приобретают в конце своей жизни. Игнорируется, если не установлен флаг PSYS_PART_INTERP_COLOR_MASK. Допустимые значения от 0.0 до 1.0. | 4 | |
PSYS_PART_START_SCALE | vector scale_start | Вектор, обозначающий размеры частиц в момент появления. Допустимые значения от 0.03125 до 4.0, в метрах. Реальный размер частиц всегда кратен 0.03125. Меньшие значения не дадут никакого эффекта. Поскольку частицы являются по сути двумерными спрайтами, компонент Z вектора игнорируется. | 5 | |
PSYS_PART_END_SCALE | vector scale_end | Вектор, обозначающий размеры частиц, которые частицы приобретают в конце своей жизни. Игнорируется, если не установлен флаг PSYS_PART_INTERP_SCALE_MASK. Допустимые значения от 0.03125 до 4.0, в метрах. | 6 | |
PSYS_SRC_TEXTURE | string texture | Строка, соответствующая имени текстуры в инвентаре примитива с эмиттером, которая будет применена к частицам. Вместо имени можно задать уникальный ключ текстуры (тогда ее наличие в инвентаре примитива необязательно). | 12 | |
Образование частиц | ||||
PSYS_SRC_MAX_AGE | float duration_system | Обозначает количество времени, в секундах, на протяжении которого эмиттер будет работать, с момента запуска системы или с момента появления эмиттера в радиусе видимости. По истечении этого срока частицы из данной системы не будут появляться (до тех пор пока не будет снова вызвана функция). Нулевое значение заставляет систему работать бесконечно. (предостережение 1) | 19 | |
PSYS_PART_MAX_AGE | float duration_particle | Обозначает количество времени, в секундах, на протяжении которого существуют частицы. Максимальное значение 30.0 секунд. В течение этого времени частица появится, будет видоизменяться и двигаться согласно заданным правилам, и исчезнет. | 7 | |
PSYS_SRC_BURST_RATE | float burst_sleep | Задает интервал, в секундах, между каждым образованием частиц. Нулевое значение наибольшую возможную частоту образования. | 13 | |
PSYS_SRC_BURST_PART_COUNT | integer burst_particle_count | Обозначает число частиц при каждом "образовании". | 15 | |
Движение частиц | ||||
PSYS_SRC_ACCEL | vector acceleration | Вектор, обозначающий ускорение каждой частицы, в метрах в секунду (в квадрате? Ну, раз ускорение... -- вопрос пер.). Допустимые значения от -100.0 до 100.0 для каждого компонента вектора в региональных координатах. | 8 | |
PSYS_SRC_OMEGA | vector omega | Вектор, обозначающий вращение эмиттера в радианах в секунду вокруг каждой оси. Направление эмиттера перестаёт совпадать с осью Z примитива. Вращение примитива (посредством llTargetOmega) не оказывает влияние на вращение эмиттера. (предостережение 2 и предостережение 3) | 21 | |
PSYS_SRC_BURST_SPEED_MIN | float speed_min | Минимальное значение диапазона случайных чисел, которые обозначают скорость частицы, которую она приобретает в момент появления, в метрах в секунду. Если данное значение больше значения при PSYS_SRC_BURST_SPEED_MAX, то они меняются местами. | 17 | |
PSYS_SRC_BURST_SPEED_MAX | float speed_max |
Максимальное значение диапазона случайных чисел, которые обозначают скорость частицы, которую она приобретает в момент появления, в метрах в секунду. Если данное значение меньше значения при PSYS_SRC_BURST_SPEED_MIN, то они меняются местами. |
18 | |
Константы типа LL_PART_* имеются только в viewer - indra/llmessage/llpartdata.h , флаги, обозначенные красным вычеркнуты из программы. |
deepnotes
Missing 14
Есть сведения о "пропавшей" константе со значением 14. Её роль исполняют другие правила.
Signature
integer PSYS_PART_FLAGS = 0; integer PSYS_PART_BOUNCE_MASK = 0x004; integer PSYS_PART_EMISSIVE_MASK = 0x100; integer PSYS_PART_FOLLOW_SRC_MASK = 0x010; integer PSYS_PART_FOLLOW_VELOCITY_MASK = 0x020; integer PSYS_PART_INTERP_COLOR_MASK = 0x001; integer PSYS_PART_INTERP_SCALE_MASK = 0x002; integer PSYS_PART_TARGET_LINEAR_MASK = 0x080; integer PSYS_PART_TARGET_POS_MASK = 0x040; integer PSYS_PART_WIND_MASK = 0x008; integer PSYS_SRC_PATTERN = 9; integer PSYS_SRC_PATTERN_EXPLODE = 0x02; integer PSYS_SRC_PATTERN_ANGLE_CONE = 0x08; integer PSYS_SRC_PATTERN_ANGLE = 0x04; integer PSYS_SRC_PATTERN_DROP = 0x01; integer PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY = 0x10; integer PSYS_SRC_BURST_RADIUS = 16; integer PSYS_SRC_ANGLE_BEGIN = 22; integer PSYS_SRC_ANGLE_END = 23; integer PSYS_SRC_INNERANGLE = 10;//deprecated integer PSYS_SRC_OUTERANGLE = 11;//deprecated integer PSYS_SRC_TARGET_KEY = 20; integer PSYS_PART_START_COLOR = 1; integer PSYS_PART_END_COLOR = 3; integer PSYS_PART_START_ALPHA = 2; integer PSYS_PART_END_ALPHA = 4; integer PSYS_PART_START_SCALE = 5; integer PSYS_PART_END_SCALE = 6; integer PSYS_SRC_TEXTURE = 12; integer PSYS_SRC_MAX_AGE = 19; integer PSYS_PART_MAX_AGE = 7; integer PSYS_SRC_BURST_RATE = 13; integer PSYS_SRC_BURST_PART_COUNT = 15; integer PSYS_SRC_ACCEL = 8; integer PSYS_SRC_OMEGA = 21; integer PSYS_SRC_BURST_SPEED_MIN = 17; integer PSYS_SRC_BURST_SPEED_MAX = 18;