LlMakeFire/ja

From Second Life Wiki
Jump to navigation Jump to search

Emblem-important.png 廃止済み
(この関数は廃止されています。代わりに llParticleSystem を使用してください。)

要約

関数: llMakeFire( integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset );

パーティクル状の炎を表現します。

• 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 では使えなくなりました。

特記事項

Search JIRA for related Issues

Signature

function void llMakeFire( integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。