パーティクル


Game Maker Language リファレンス > 組み込み関数 用途別 > パーティクル

パーティクル

あらかじめ定義されている映像表現(花火、立ち上る煙、爆発など)で充分な場合は、より簡単な「エフェクト」が使用できる。 より複雑な映像表現が必要な場合は、パーティクルの振る舞いを「パーティクルタイプ」として定義し「パーティクルシステム」の下で動作させる。 パーティクルの表示開始は「パーティクルシステム」に対して指示するが、 「エミッタ」を利用すると、ある領域に多数のパーティクルを出現させる、定常的に出現させる、といった表現の実装が容易になる。

「エフェクト」は自由度が低いが実装が容易であり、「パーティクル」は実装が複雑であるが自由度の高い演出が可能となる。

エフェクト

シンプルなエフェクトの制御

パーティクルタイプ

生成・破棄・存在チェック

  • part_type_create():パーティクルタイプの生成
  • part_type_destroy()?:パーティクルタイプの破棄
  • part_type_exists()?:パーティクルタイプの存在チェック
  • part_type_clear()?:パーティクルタイプの消去

形状の指定

  • part_type_shape():組み込みの形状を指定する
  • part_type_sprite()?:スプライト(画像)で描画する

サイズ・スケール

スタイル

  • part_type_color1():色を設定
  • part_type_color2()?:色を設定(開始値と終了値、の2値指定版)
  • part_type_color3()?:色を設定(開始値と中間値と終了値、の3値指定版)
  • part_type_color_mix()?:色を設定
  • part_type_color_rgb()?:色を設定
  • part_type_color_hsv()?:色を設定
  • part_type_alpha1()?:アルファ値を設定
  • part_type_alpha2()?:アルファ値を設定(開始値と終了値、の2値指定版)
  • part_type_alpha3()?:アルファ値を設定(開始値と中間値と終了値、の3値指定版)
  • part_type_blend():ブレンドモードを設定

生存期間

  • part_type_life():生存ステップ数を設定
  • part_type_step()?:指定ステップ間隔で他のパーティクルを生み出す設定。(負数の場合は符号を取って逆数が生成確率として適用される)
  • part_type_death()?:描画深度を設定

動き

パーティクルシステム


パーティクルシステムの生成・破棄

  • part_system_create():生成
  • part_system_destroy()?:破棄
  • part_system_exists()?:存在チェック
  • part_system_clear()?:削除

各種設定

  • part_system_depth()?:depth値の設定
  • part_system_position()?:座標を設定

更新・描画

  • part_system_automatic_update()?:自動更新の設定(※OFFにすることでまとめて動きを止められる)
  • part_system_automatic_draw()?:自動描画の設定(※OFFにすることでまとめて非表示にできる)
  • part_system_update()?:パーティクルを強制更新する
  • part_system_drawit()?:パーティクルの強制描画する
  • part_system_draw_order()?:パーティクルシステム内でのパーティクルの描画順の設定

パーティクルの生成・消去

  • part_particles_create():エミッタを使わずにパーティクルを生成
  • part_particles_create_color()?:エミッタを使わずにパーティクルを生成(色指定)
  • part_particles_clear()?:パーティクルの消去
  • part_particles_count()?:パーティクルの生存数を取得する

エミッタ

  • part_emitter_create()?
  • part_emitter_destroy()?
  • part_emitter_destroy_all()?
  • part_emitter_exists()?
  • part_emitter_clear()?
  • part_emitter_region()?
  • part_emitter_burst()?
  • part_emitter_stream()?

廃止された関数

パーティクルの生成後に変化を与える以下の関数は廃止された。 実行速度の速いグラフィック効果(graphical effects)を実現するというパーティクルの目的に反して、 速度低下をもたらすためである。

アトラクタ

  • part_attractor_create()?
  • part_attractor_destroy()?
  • part_attractor_destroy_all()?
  • part_attractor_exists()?
  • part_attractor_clear()?
  • part_attractor_position()?
  • part_attractor_force()?

デストロイヤ

  • part_destroyer_create()?
  • part_destroyer_destroy()?
  • part_destroyer_destroy_all()?
  • part_destroyer_exists()?
  • part_destroyer_clear()?
  • part_destroyer_region()?

デフレクタ

  • part_deflector_create()?
  • part_deflector_destroy()?
  • part_deflector_destroy_all()?
  • part_deflector_exists()?
  • part_deflector_clear()?
  • part_deflector_region()?
  • part_deflector_kind()?
  • part_deflector_friction()?

チェンジャ

  • part_changer_create()?
  • part_changer_destroy()?
  • part_changer_destroy_all()?
  • part_changer_exists()?
  • part_changer_clear()?
  • part_changer_region()?
  • part_changer_types()?
  • part_changer_kind()?

サンプル

エフェクト

緑色の円が広がるエフェクトを生成する

effect_create_above(ef_ring, x, y, 1, c_lime);

パーティクル

破片が飛び散り重力で落下するパーティクルを生成する (秒間ステップ数60で検証)

// 生成
particle = part_system_create(); // パーティクルシステムを生成
part1    = part_type_create();   // パーティクルタイプを生成

// タイプを設定
part_type_shape    (part1, pt_shape_pixel        ); // 形状をピクセルに指定
part_type_size     (part1, 4,      4, -0.1,     1); // サイズを「4」に。少しずつ小さくなる
part_type_direction(part1, 0,    359,    0,     0); // 0〜359度にランダムで発生
part_type_life     (part1, 30,    40             ); // 生存ステップ数は30〜40
part_type_gravity  (part1, 0.25, 270             ); // 重力は0.3
part_type_speed    (part1, 4,      8, -0.30, 0.01); // 初速は4〜8で少しずつ減速

// パーティクル生成
part_particles_create(particle, x, y, part1, 10); // 10個生成する

特定方向に飛び散る破片

particle = part_system_create(); // パーティクルシステムを生成
part1    = part_type_create();   // パーティクルタイプを生成

range = 60
dir_min = direction - 180 - range;
dir_max = direction - 180 + range;

// タイプを設定
part_type_shape    (part1, pt_shape_pixel        ); // 形状をピクセルに指定
part_type_size     (part1, 1,      1, -0.1,     1); // サイズを「1」に。少しずつ小さくなる
part_type_direction(part1, dir_min, dir_max, 0, 0); // dir_min〜dir_maxにランダムで発生
part_type_life     (part1, 30,    40             ); // 生存ステップ数は30〜40
part_type_gravity  (part1, 0.25, 270             ); // 重力は0.25
part_type_speed    (part1, 2,      4, -0.30, 0.01); // 初速は2〜4で少しずつ減速
part_type_color1   (part1, c_aqua                ); // set color.

// パーティクル生成
part_particles_create(particle, x, y, part1, 4); // 4個生成する

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2024-03-07 2023-08-09 2023-05-21 2023-05-20 2023-05-04 2022-10-13 2022-07-21 2022-07-02 2022-04-06 2021-11-30 2021-11-26 2021-10-03 2021-09-23 2021-08-15 2021-06-02 2021-01-23 2021-01-21 2021-01-19 2021-01-18 2021-01-16 2021-01-15

人気の10件

今日の10件



これまでの訪問者: 6604
今日の訪問者: 1
昨日の訪問者: 1
閲覧者: 5