LlMakeFire/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
![]() |
廃止済み |
(この関数は廃止されています。代わりに llParticleSystem を使用してください。) |
要約
関数: llMakeFire( integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset );警告
- この関数は 0.1 秒間、スクリプトを停止します。
- この関数は廃止されています。代わりに llParticleSystem を使用してください。
サンプル
注意点
バージョン 1.14 以降、それまでの llMakeFire によるパーティクルと同等の表現が可能な llParticleSystem が用意されました。
llMakeFire(integer particle_count,
float particle_scale,
float particle_speed,
float particle_lifetime,
float source_cone,
string source_texture_id,
vector local_offset);
fakeMakeFire(integer particle_count, float particle_scale, float particle_speed,
float particle_lifetime, float source_cone, string source_texture_id,
vector local_offset)
{
// local_offset is ignored
llParticleSystem([
PSYS_PART_FLAGS, PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_WIND_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,
PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,
PSYS_PART_START_ALPHA, 0.50,
PSYS_PART_END_ALPHA, 0.10,
PSYS_PART_START_SCALE, <particle_scale/2, particle_scale/2, 0.0>,
PSYS_PART_END_SCALE, <particle_scale, particle_scale, 0.0>,
PSYS_PART_MAX_AGE, 0.5,
PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>,
PSYS_SRC_TEXTURE, source_texture_id,
PSYS_SRC_BURST_RATE, 5 / particle_count,
PSYS_SRC_ANGLE_BEGIN, 0.0,
PSYS_SRC_ANGLE_END, source_cone * PI,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RADIUS, 0.0,
PSYS_SRC_BURST_SPEED_MIN, particle_speed,
PSYS_SRC_BURST_SPEED_MAX, particle_speed,
PSYS_SRC_MAX_AGE, particle_lifetime / 2,
PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>
]);
}
// 既知の相違点
// 1) llMakeFire ではパーティクルの表示持続時間はランダムでした。
// これは llParticleSystem では、それ単体では実現できません。
// 2) llMakeFire ではパーティクルはその表示中、大きくなり続けました。
// 表示持続時間が長い場合、llParticleSystem の限界である 4m よりもさらに大きくなりました。
// 3) llMakeFire ではいくつかの値が語義どおりの意味を持っていませんでした。
// (例えば '''vel''' は秒速でなく、'''particles''' は本来のパーティクル数からかけ離れていました。)
// ここで示した例では、近似の表現になるよう一定の比率をあてはめましたが、
// 場合によっては期待通りの表現になっていないかもしれません。
// 4) llMakeFire の設定と llParticleSystem の設定の差分を求めることはできません。
// 5) llMakeFire で使えた 'ポンプ' という手法は llParticleSystem では使えません。
// すなわち、引数を設定して関数を 10 回呼び出すとパーティクルを 10 倍放出できるという手法は
// llParticleSystem では使えなくなりました。
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。