Пятница, 18.07.2025, 23:17

Мой блог

Главная | Регистрация | Вход
Приветствую Вас Гость
RSS
Форма входа
Календарь
«  Декабрь 2008  »
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
293031
Поиск
Друзья сайта
Статистика

Дневник


Главная » 2008 » Декабрь » 19 » Эффекты с Particl-лами (часть 1)
Эффекты с Particl-лами (часть 1)
16:29

Создаем объект, добавляем скрипт (можно добавить прозрачную текстуру на объект, добавить вращение):

integer glow = TRUE; // Make the particles glow
integer bounce = FALSE; // Make particles bounce on Z plan of object
integer interpColor = TRUE; // Go from start to end color
integer interpSize = TRUE; // Go from start to end size
integer wind = FALSE; // Particles effected by wind
integer followSource = FALSE; // Particles follow the source
integer followVel = TRUE; // Particles turn to velocity direction

// Choose a pattern from the following:
// PSYS_SRC_PATTERN_EXPLODE
// PSYS_SRC_PATTERN_DROP
// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
// PSYS_SRC_PATTERN_ANGLE_CONE
// PSYS_SRC_PATTERN_ANGLE
integer pattern = PSYS_SRC_PATTERN_ANGLE;

// Select a target for particles to go towards
// "" for no target, "owner" will follow object owner 
// and "self" will target this object
// or put the key of an object for particles to go to
key target = "";

// Particle paramaters
float age = 1.5; // Life of each particle
float maxSpeed = .2; // Max speed each particle is spit out at
float minSpeed = .1; // Min speed each particle is spit out at
string texture; // Texture used for particles, default used if blank
float startAlpha = 10; // Start alpha (transparency) value
float endAlpha = 10; // End alpha (transparency) value
vector startColor = <0,25,0>; // Start color of particles <R,G,B>
vector endColor = <0,75,0>; // End color of particles <R,G,B> (if interpColor == TRUE)
vector startSize = <.5,.5,.5>; // Start size of particles 
vector endSize = <.1,.1,.1>; // End size of particles (if interpSize == TRUE)
vector push = <0,0,1>; // Force pushed on particles

// System paramaters
float rate = .1; // How fast (rate) to emit particles
float radius = 0; // Radius to emit particles for BURST pattern
integer count = 10; // How many particles to emit per BURST 
float outerAngle = 1.54; // Outer angle for all ANGLE patterns
float innerAngle = 1.55; // Inner angle for all ANGLE patterns
vector omega = <0,0,10>; // Rotation of ANGLE patterns around the source
float life = 0; // Life in seconds for the system to make particles

// Script variables
integer flags; 

updateParticles()
{
  flags = 0;
  if (target == "owner") target = llGetOwner();
  if (target == "self") target = llGetKey();
  if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
  if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
  if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
  if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
  if (wind) flags = flags | PSYS_PART_WIND_MASK;
  if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
  if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
  if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;

  llParticleSystem([ PSYS_PART_MAX_AGE,age,
  PSYS_PART_FLAGS,flags,
  PSYS_PART_START_COLOR, startColor,
  PSYS_PART_END_COLOR, endColor,
  PSYS_PART_START_SCALE,startSize,
  PSYS_PART_END_SCALE,endSize, 
  PSYS_SRC_PATTERN, pattern,
  PSYS_SRC_BURST_RATE,rate,
  PSYS_SRC_ACCEL, push,
  PSYS_SRC_BURST_PART_COUNT,count,
  PSYS_SRC_BURST_RADIUS,radius,
  PSYS_SRC_BURST_SPEED_MIN,minSpeed,
  PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
  PSYS_SRC_TARGET_KEY,target,
  PSYS_SRC_INNERANGLE,innerAngle, 
  PSYS_SRC_OUTERANGLE,outerAngle,
  PSYS_SRC_OMEGA, omega,
  PSYS_SRC_MAX_AGE, life,
  PSYS_SRC_TEXTURE, texture,
  PSYS_PART_START_ALPHA, startAlpha,
  PSYS_PART_END_ALPHA, endAlpha
  ]);
}

default
{
  state_entry()
  {
  updateParticles();
  }
}


Можно менять цвет,  радиус разброса частиц, интенсивность. Смотрится очень эффектно!

Просмотров: 799 | Добавил: volldemar | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright MyCorp © 2025
Сайт управляется системой uCoz