Поле | Тип поля | Допустимые значения | Что делает? | Пример |
shpType_s | enum | POINT, LINE, BOX, CIRCLE, SPHERE, MESH | Устанавливает поверхность, на которой будут появляться частицы | SPHERE |
shpFor_s | enum | WORLD / OBJECT | Фактически задает возможность поворота эффекта в пространстве относительно главного воба, к которому прикреплен эффект, если выбрано OBJECT. А если выбрано WORLD, то при поворота воба эффект не будет поворачиваться вместе с вобом. | OBJECT |
shpOffsetVec_s | string | 0 0 0 или 0 25 0 | Смещение центра появления эффекта (3-х мерный вектор) относительно главного воба, к которому прикреплен объект (то есть локальные координаты) | 0 50 0 (на 50 единиц выше) |
shpDistribType_s |
enum | RAND, UNI, WALK | Распределение частиц по поверхности, видимо будут ли они появляться в случайных местах или более равномерно (UNI) | RAND |
shpDistribWalkSpeed | float | 1, 2.5, 10 или любое положительное число | Если активен shpDistribType_s WALK то это число умножается на время кадра
REAL delta = emitter->shpDistribWalkSpeed * localFrameTimeF;
emitterVars.uniformValue += delta;
if (emitterVars.uniformValue>1) emitterVars.uniformValue -= zFloor(emitterVars.uniformValue);
emitterVars.uniformDelta = delta / zREAL(numTotal);
uniformValue = emitterVars.uniformValue;
uniformDelta = emitterVars.uniformDelta; | 10 |
shpIsVolume | bool | TRUE / FALSE | Частицы появляются лишь на поверхности или внутри тоже. Например, если стоит CIRCLE, будут ли частицы появляются внутри круга (TRUE), или же они будут появляться только на внешнем радиусе (FALSE) | TRUE |
shpDim_s | string | 1...3000 | Размер поверхности где будут появляться частицы. Для типа BOX задается 3-мя числами | 50 или 50 500 120 (для типа BOX) |
shpMesh_s | string | VISUAL_NAME | Имя модели, если частицы должны появляться на 3д модели (только если включен режим shpType_s MESH) | SKULL.3DS |
shpMeshRender_b | enum | NONE, DEFAULT, ADD, MULT, BLEND | Режим смешивания для 3д модели (только если включен режим shpType_s MESH) | ADD |
shpScaleKeys_s | string | 1 или 1.0 2.0 3.0 или любая строка из чисел через пробел | Задает изменение размера поверхности, т.е. если shpDim_s будет 75, то это число будет домножаться на числа в строке, т.е. на 1 2 3 4.0 5.0 (как в примере) | 1 2 3 2.0 1.1 1.0 |
shpScaleIsLooping | bool | TRUE / FALSE | Бесконечен ли эффект анимации изменения размера поверхности | FALSE |
shpScaleIsSmooth | bool | TRUE / FALSE | Сглаживание эффекта анимации изменения размера поверхности | TRUE |
shpScaleFPS | float | 1...120 (примерно 120) | Скорость эффекта анимации изменения размера поверхности | 5 |
dirMode_s | enum | NONE, DIR, TARGET, MESH | Режим полета частиц,
- DIR - значит они летят по заданному направлению в полях них (dirAngleHead, dirAngleElev),
- TARGET - частицы летят в цель, фактически в центр эффекта.
- MESH - по нормалям меша (перпендикулярно поверности модели)
Режим TARGET (летят в центр)
Режим DIR (ледят куда-то по направлению, в зав. от заданных углов) | TARGET |
dirFor_s | enum | OBJECT, WORLD, FRAME | Система координат для направления | OBJECT |
dirModeTargetFor_s | enum | OBJECT, WORLD | Цель для направления, мир или объект | OBJECT |
dirModeTargetPos_s | string | 0 0 0 | Цель полета частиц по коодинатам (3-х мерный вектор) | 0 0 0 |
dirAngleHead | float | Дробное число от 0 до 360 | Направление горизонтального движения в градусах | 180 |
dirAngleHeadVar | float | Число от 0 до 360? | Отклонение частиц от dirAngleHead в градусах, т.е. например если dirAngleHead = 0, и dirAngleHeadVar 5, то частицы будут лететь вперед и отклоняться на 5 градусов | 10 |
dirAngleElev | float | Дробное число от 0 до 360 | Направление вертикального движения в градусах | 35 |
dirAngleElevVar | float | Число от 0 до 360? | Отклонение частиц от dirAngleElev в градусах, т.е. например если dirAngleElev= 0, и dirAngleElevVar5, то частицы будут лететь вверх и отклоняться на 5 градусов | 5 |
velAvg | float | Число от 0 до 10 (примерно). Может быть < 0 | Модуль скорости полета частиц. Обычно это 0.1-0.5. Чем выше, тем быстрее летит.
Скорость может быть < 0, например чтобы частицы летели не к центру, а от него | 0.5 |
velVar | float | Число от 0 до 100 | Разнообразие скорости velAvg, т.е. на сколько скорость конкретной частицы может отличаться от velAvg | 0.01 |
lspPartAvg | float | Число от 0 до 10000 | Время жизни конкретной частицы в миллисекундах, обычно это 500-1000 | 750 |
lspPartVar | float | Число о 0 до 100 | Разнообразие времени жизни lspPartAvg, т.е. на сколько время конкретной частицы может отличаться от lspPartAvg | 50 |
flyGravity_s | string | Вектор (0 0 0) | Как влияет гравитация на полет частиц. К примеру, если поставить 0 -0.001 0 то гравитация будет сильно влиять на полет частиц. Они будут стремиться к полу. Если поменять знак на "+" то наоборот, стремиться улетать от поверхности | 0 -0.00001 0 |
flyCollDet_b | enum | NONE, SLOWER_REFLECT, FASTER_REFLECT, FREEZE, REMOVE | Что делать когда частица сталкивается с поверхностью рельефа?
NONE - ничего, SLOWER_REFLECT - отразиться от поверхности и уменьшить скорость полета, FASTER_REFLECT - отразиться от поверхности и увеличить скорость полета, FREEZE - замереть на мгновение, REMOVE - мгновенно исчезнуть" | NONE |