ParticleEmitter

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ParticleEmitter は、世界にカスタマイズ可能な 2D パーティクルを発生させる特殊なオブジェクトです。パーティクルを発生させるには、 Class.BasePart または</

エミッターが Enabled で非ゼロの Rate を持っている場合、パーティクルは自動的にエミットされます。非ゼロの <

デフォルトでは、パーティクルはカメラに向きますが、Orientation はパーティクルの速度を尊重するように変更できます。

パーティクルの Lifetime

パーティクルエミッターの作成とカスタマイズについては、パーティクルエミッター を参照してください。

コードサンプル

This rather lengthy code sample shows how every property of a ParticleEmitter can be set, including NumberRange, NumberSequence and ColorSequence properties. Below is how the ParticleEmitter should look after every property is set. Try playing around with the different properties to customize how the effect looks!

Creating a Particle Emitter from Scratch

local emitter = Instance.new("ParticleEmitter")
-- Number of particles = Rate * Lifetime
emitter.Rate = 5 -- Particles per second
emitter.Lifetime = NumberRange.new(1, 1) -- How long the particles should be alive (min, max)
emitter.Enabled = true
-- Visual properties
emitter.Texture = "rbxassetid://1266170131" -- A transparent image of a white ring
-- For Color, build a ColorSequence using ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(time, color)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- At t=0, White
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- At t=.5, Orange
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- At t=1, Red
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(time, size, envelop)
NumberSequenceKeypoint.new(0, 1), -- At t=0, fully transparent
NumberSequenceKeypoint.new(0.1, 0), -- At t=.1, fully opaque
NumberSequenceKeypoint.new(0.5, 0.25), -- At t=.5, mostly opaque
NumberSequenceKeypoint.new(1, 1), -- At t=1, fully transparent
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- When particles overlap, multiply their color to be brighter
emitter.LightInfluence = 0 -- Don't be affected by world lighting
-- Speed properties
emitter.EmissionDirection = Enum.NormalId.Front -- Emit forwards
emitter.Speed = NumberRange.new(0, 0) -- Speed of zero
emitter.Drag = 0 -- Apply no drag to particle motion
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Don't inherit parent velocity
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Don't lock the particles to the parent
emitter.SpreadAngle = Vector2.new(0, 0) -- No spread angle on either axis
-- Simulation properties
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- At t=0, size of 0
NumberSequenceKeypoint.new(1, 10), -- At t=1, size of 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Render slightly behind the actual position
emitter.Rotation = NumberRange.new(0, 360) -- Start at random rotation
emitter.RotSpeed = NumberRange.new(0) -- Do not rotate during simulation
-- Create an attachment so particles emit from the exact same spot (concentric rings)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Move the attachment upwards a little
attachment.Parent = script.Parent
emitter.Parent = attachment

概要

プロパティ

  • 並列読み取り

    すべてのアクティブパーティクルのグローバル軸加速度を、1秒あたりのスタッドで測定します。

  • 並列読み取り

    エミッターの ParticleEmitter.LightInfluence が 0 のとき、エミッターから放出される光をスケールします。

  • 並列読み取り

    個々のライフタイムですべてのアクティブパーティクルの色を決めます。

  • 並列読み取り

    パーティクルの減速速度を幾何学的に減速させる速度を決めます。

  • パーティクルが放出するオブジェクトの顔を決める。

  • 並列読み取り

    エミッターからパーティクルが放出されるかどうかを決定します。

  • 並列読み取り

    フレームごとにフリップブックのテクスチャアニメーションの速度を決めます。

  • 並列読み取り

    フリップブックに Texture が互換性がない場合の表示エラーメッセージ。

  • フリップブックのテクスチャのレイアウトを決定します。None、Grid2x2、Grid4x4、または Grid8x8 である必要があります。

  • フリップブックアニメーションのタイプを決定します。Loop、OneShot、PingPong 、または Random が必要です。

  • 並列読み取り

    パーティクルのランダムなフレームを選択したランダムなフレームでアニメーションを開始するか、常にフレームゼロで開始するかを決定します。

  • 並列読み取り

    最新のパーティクルにランダムな年齢を定義します。

  • 並列読み取り

    パーティクルの色を背後の色とどれくらい混ぜるかを決めます。

  • 並列読み取り

    環境光によってパーティクルがどれくらい影響されるかを決めます。

  • 非表示
    複製されていません
    並列読み取り
  • 並列読み取り

    放出されているパーツと一緒にパーティクルが堅く移動するかどうかを決めます。

  • パーティクルのオリエントierung を指定します。

  • 並列読み取り

    秒あたりに放出されるパーティクル数を決めます。

  • 並列読み取り

    秒あたりの度数で表される角度速度の範囲を決めます。

  • 並列読み取り

    新しくエミットされたパーティクルの範囲を度数で決定します。

  • エミッターの形状を「ボックス」、「球」、「円筒」 、または「ディスク」に設定します。

  • パーティクルが外にのみ、または両方の方向にしか出ていないかを設定します。

  • 並列読み取り

    シリンダー、ディスク、スフィア、ボックス形式のパーティクルエミッションに影響を与える。

  • パーティクルエミッションを「ボリューム」または「表面」のみに設定します。

  • 並列読み取り

    個々のパーティクルの寿命にわたって世界のサイズを決める。

  • 並列読み取り

    スタッド 毎秒で表される新しいパーティクルのエミット速度のランダムな範囲を決定します。

  • 並列読み取り

    パーティクルがランダムに放出される角度を度数で決めます。

  • 並列読み取り

    パーティクルの非一致スケーリングを許可し、寿命全体に曲線をコントロールします。

  • Texture:ContentId
    並列読み取り

    パーティクルのレンダリング画像を決定します。

  • 並列読み取り

    パーティクルエフェクトの速度を制御する値が 0 から 1 の間です。

  • 並列読み取り

    個々のライフタイムのパーティクルの透明度を決める。

  • 並列読み取り

    パーティクルが放出されるときに、親の速度のどれくらいがパーティクルに継承されるかを決めます。

  • 並列読み取り

    エミットされたパーティクルが Workspace.GlobalWind ベクトルに従っていますか。

  • 並列読み取り

    パーティクルの前方/後方レンダリングポジションを決定します。用于して、パーティクルがトップ/ボトムでレンダリングされるかどうかを制御します。

方法

  • Clear():void

    放出されたすべてのパーティクルをクリアします。

  • Emit(particleCount : number):void

    特定のパーティクルを発します。

プロパティ

Acceleration

並列読み取り

アクセラレーション プロパティは、パーティクルの Class.ParticleEmitter.Speed|Speed が生命時間全体にどのように変化するかを決定します。これは、Speed を使用して、アクセラレーション

加速度は、EmissionDirection の中のベクトルポイントが反対方向にある場合、パーティクルを下げることができます。そうでない場合、速度を上げます。

Brightness

並列読み取り

エミッターの ParticleEmitter.LightInfluence が 0 のとき、エミッターから放出される光をスケールします。

並列読み取り

色 プロパティは、個々のライフタイムのすべての有効なパーティクルの色を決定します。色は、Class.ParticleEmitter.Texture|テクスチャ のレンダリング時に、エミッターの Class.ParticleEmitter.Transparency|Transparency

このプロパティを変更すると、エミッターが発するすべてのパーティクルに影響します。現在および将来の両方です。

このプロパティがグラデーションを使用すると、パーティクルの現在の色は、パーティクルの年齢とその総寿命を使用してラインでインターポリングされます。たとえば、パーティクルが 2 秒前にスポーンし、 4 秒の寿命を持っている場合、色は、パーティクルの

Drag

並列読み取り

プロパティ ドラッグ は、個々のパーティクルが速度の半分を喪失する速度の減速率を決定します。Speed と親から継承された速度をスケールするなど、このプロパティをネガティブに設定すると

EmissionDirection

並列読み取り

EmissionDirection プロパティは、パーティクルが放出する親オブジェクトの顔 ( Class.ParticleEmitter.Speed|Speed) を決定します。 Class.ParticleEmitter.SpreadAngle|SpreadAngle は、パーティクルが向きを変えて放出されることを意味します。1> Class.ParticleEmitter.SpreadAngle|SpreadAngle</

Class.ParticleEmitter を Attachment に追加し、方向がある場合は、このプロパティを使用せずにアタッチメント自体を回転できます (Attachment.Orientation) 。

Enabled

並列読み取り

このプロパティは、エミッターからパーティクルが放出されているかどうかを決定します。これを force に設定すると、パーティクルの生成を停止できますが、既存のパーティクルは有効になります。このプロパティは、パーティクルエフェクトをプレイスホルダーに保持したままにしたい場合に便利です。

無効なエミッターからすべてのパーティクルをクリアするには、Clear() を呼び出します。その後、必要に応じて、Emit() エミッターによってパーティクルをエミットし、レンダリングします。

FlipbookFramerate

並列読み取り

フリップブックフレームレート プロパティは、フレームごとの秒でフリップブックのテクスチャアニメーションがどれくらい速いかを決定します。Lifetime のように、最小限と最大限の範囲を設定して、フリップブックのフレームレートをランダム化できます。最大 30

FlipbookIncompatible

並列読み取り

フリップブックに Texture が互換性がない場合、表示エラーメッセージは Class.ParticleEmitter.Texture|Texture です。フリップブックのテクスチャは 8×8、16×16、32×32、64×64、128×128、256×256、512×

並列読み取り

プロパティ FlipbookLayout は、テクスチャのレイアウトを決定します。 Enum.ParticleFlipbookLayout の任意の値であることができます:

  • なし – フリップブックの機能を無効にし、テクスチャをパーティクルのライフタイムにわたって単一の静的テクスチャとして使用します。
  • Grid2x2 – 4-フレームアニメーション用の 2×2 フレーム。
  • Grid4x4 – 16フレームのアニメーション用の 4×4 フレーム。
  • Grid8x8 – 64フレームのアニメーション用のグリッドフレーム。
並列読み取り

フリップブックモード プロパティは、フリップブックアニメーションの種類を決定します。Enum.ParticleFlipbookMode の任意の値であることができます:

  • ループ – 最後のフレームをプレイした後、最初のフレームから再びプレイします。
  • OneShot – アニメーションのみを通過する 1 回のみのアプリケーションでプレイ。この設定では、 Class.ParticleEmitter.FlipbookFramerate|FlipbookFramerate
  • PingPong – 最初のフレームから最後のフレームまで、および最後のフレームから最初のフレームまで、パーティクルの Lifetime 全体を通して、再びプレイします。
  • ランダム – フレームをランダムな順序でプレイし、1つのフレームから次のフレームにブレンド/クロスフェードします。これは、スライスごとに遅くなっている星のようなオーガニックパーティクルテクスチャに有用です。

FlipbookStartRandom

並列読み取り

The FlipbookStartRandom プロパティは、各パーティクルが最初のフレームで始まるのではなく、ランダムなフレームで始まるかどうかを決定します。一つの使用例は、このプロパティを有効にし、また FlipbookFramerate をゼロに設定することです

Lifetime

並列読み取り

ライフタイム プロパティは、新しく発生したパーティクルの最大および最小年齢を定義します。ライフタイムは、パーティクルごとに保存されるため、この値を変更すると、既存のパーティクルがランダムに選択されたライフタイムの終了まで有効になります。0 のライフタイムは、パーティクルが発生するのを防止します。

LightEmission

並列読み取り

LightEmission プロパティは、Class.ParticleEmitter.Texture|Texture の色と、その背後の色をブレンドすることを決定します。0 の値は、通常のブレンドモードを使用しますが、1 の値は、追加のブレンドモードを使用します。変更すると、エミッター所有のすべてのパーティクルに影響します。

このプロパティは、LightInfluence と混同してはなりません、これはパーティクルが環境光にどのように影響されるかを決定します。

このプロパティは、パーティクルが環境を照らすようにします パーティクルをライトします。そのためには、PointLight を使用してください。

LightInfluence

並列読み取り

LightInfluence プロパティは、 レンダリング時に個々のパーティクルの色に影響を与える環境光 の量を決定します。これは、0-1の範囲にある必要があります。この範囲の外の値の動作は、パーティクルではなく、光です。0 では、パーティクルは

デフォルトでは、この値は Studio ツールで挿入された場合、1です。Instance.new() を使用して挿入された場合は、0です。

LocalTransparencyModifier

非表示
複製されていません
並列読み取り

LockedToPart

並列読み取り

The ロックされたパーツ プロパティは、Attachment にパーティクルが "スティック" するかどうかを決定します。BasePart は、親オブジェクトが移動すると、ロックステップで移動します。如

あるいは、VelocityInheritance プロパティを使用して、値 1 を持つ値があり、いくつかのエフェクトに最適な場合があります。

並列読み取り

オリエンテーション プロパティは、エミッターのパーティクルのジオメトリに使用するオリエンテーションモードを決定します。


<tbody>
<tr>
<td><b>フェイシングカメラ</b></td>
<td>スタンダードなカメラフェイシングのビルボード四角形; デフォルトの動作。</td>
</tr>
<tr>
<td><b>FacingCameraWorldUp</b></td>
<td>カメラに直面していますが、垂直向上の世界のみ回転します <b>Y</b> 軸。</td>
</tr>
<tr>
<td><b>VelocityParallel</b></td>
<td>移動方向に沿って並べられています。</td>
</tr>
<tr>
<td><b>VelocityPerpendicular</b></td>
<td>彼らの方向に沿って斜めになっています。</td>
</tr>
</tbody>
オリエンテーションパーティクル動作

Rate

並列読み取り

レート プロパティは、エミッターが Enabled であると、毎秒にエミットされるパーティクルの数を決定します。これは、周波数の反対であり、パーティクルのレートが 5 毎0.2秒になります。変更すると、このプロパティはアクティブなパーティクルに影響しませ

RotSpeed

並列読み取り

RotSpeed プロパティは、新しくエミットされたパーティクルのランダムな角度の速度を決定します。このプロパティは、秒あたりの度数で表される新しくエミットされたパーティクルのランダムな角度の速度を決定します。このプロパティは、Rotation と、RotSpeed の��

非常に高い角度速度のパーティクルは、角度の同期により、回転速度が低下するか、まったく回転しないように見えるかもしれません。たとえば、パーティクルが 360 度ずつ回転すると、回転には明らかな変更がありません。

Rotation

並列読み取り

ローテーション プロパティは、[0, 360] ローテーションの範囲を決定します。正の値は、RotSpeed。このプロパティは、新しいパーティクルに完全に

この値に対する変更は、新しいパーティクルにのみ適用されます。既存のパーティクルは、元の回転を維持します。

並列読み取り

Class.ParticleEmitter.ShapeStyle|ShapeStyle プロパティは、エミッターの形状を「ShapeStyleShapeInOut、1>シリンダー1>、または4>ディスク4>に設定します。選択した後、

並列読み取り

パーティクルが外にのみ、内にのみ、または両方の方向にだけ出力するかどうかを設定します。視覚的な例は、ここを参照してください。

ShapePartial

並列読み取り

このプロパティは、Shape 値により、異なるアクションを実行します:

  • シリンダーの場合、上限の角度比率が指定されます。0 の値は、シリンダーの上部がゼロの範囲を持つことを意味し、コーンになります。1 の値は、シリンダーが歪みなしです。

  • For discs, it specifies the inner radius proportion. A value of 0 means the disc is fully closed ( circle/ellipse), while a value of 1 means emission only occurs on the outermost rim of the disc. Values between 0 and 1 emit from an annulus with a certain thickness.

  • 球の場合、エミットするパーティクルの角度は球の半球で指定されます。1 の値は、パーティクルが球全体から放出される角度を指定します。0.5 の値は、パーティクルが半球から放出される角度を指定します。0 の値は、パーティクルが北極の単一のポイントから放出されるだけです。

視覚的な例については、ここを参照してください。

並列読み取り

パーティクルエミッションを「音量」または「表面」のみに設定します。視覚的な例は、ここ を参照してください。

並列読み取り

サイズ プロパティは、個々のライフタイムのすべてのアクティブパーティクルの世界サイズを決定します。このプロパティは、パーティクルの各サイズを表示するスクエア Texture を代表します。これは、 Class.ParticleEmitter.Transparency|Transparency </

パーティクルの現在のサイズは、パーティクルの年齢とその総ライフタイムを使用して、このシーケンスで直接交差することにより確定します。たとえば、パーティクルが 2 秒前にスポーンし、 4 秒のライフタ

並列読み取り

速度 プロパティは、スタッドあたりの秒ごとに新しいパーティクルが放出するランダムな速度範囲 (最小値から最大値) を決定します。各パーティクルの速度は、エミッション時に選択され、EmissionDirection に適用されます。ネガティブ値は、パーティクルが<

Class.ParticleEmitter.Speed|Speed を変更すると、アクティブなパーティクルは影響を受けず、彼らは既存の速度を維持します。しかし、AccelerationDrag

SpreadAngle

並列読み取り

Class.ParticleEmitter.EmissionDirection|EmissionDirection プロパティは、パーティクルがエミットされるランダムな角度を決定します。たとえば、EmissionDirectionトップ (+ 1>Y

1つの軸を 360 に設定すると、パーティクルが サークル のすべての方向に発生します。両方を 360 に設定すると、パーティクルが のすべての方向に発生します。

並列読み取り

パーティクルの非一致スケーリングを許可し、寿命全体に曲線をコントロールします。パーティクルの値が 0 を超えると、パーティクルが横向きに縮み、縦向きに成長します。パーティクルの値が 0 未満では、パーティクルが横向きに縮み、縦向きに成長します。

Texture

ContentId
並列読み取り

テクスチャ プロパティは、パーティクルにレンダリングされる画像を決定します。この画像は Class.ParticleEmitter.Color|Color 、 Class.ParticleEmitter.Transparency|Transparency 、1> Class.ParticleEmitter.LightInfluence|LightInflu

TimeScale

並列読み取り

パーティクルエフェクトの速度を制御する値 0 から 1 の間です。1 では通常速度で実行されますが、0.5 では半速度で実行されます。0 では時間内に凍結します。

Transparency

並列読み取り

透明度 プロパティは、すべての有効なパーティクルの個々のライフタイムの透明度を決定します。これは、Class.ParticleEmitter.Size|Size のように、パーティクルに時間をかけると変化するのと同じように機能します。レンダリングの場合、0 は完全に不可視です (オペーク)、1 は完全に可視で

パーティクルのプレゼントの透明度は、パーティクルの年齢とその総ライフタイムを使用して、直接接近して決定します。たとえば、パーティクルが 2 秒前にスポーンし、4 秒のライフタイムを持っている場

VelocityInheritance

並列読み取り

VelocityInheritance プロパティは、<a href="/reference/engine/engine/">エンジン</a> のエミット時にパーティクルが継承する <a href="/reference/engine/engine/">Class.BasePart.Velocity|Velocity</a> の量を決定します。0 の値は、パーティクルが親パーツの <a href="/reference/engine/engine/">Class.BasePart</a> に持続する

Class.ParticleEmitter.Drag|Drag と Class.ParticleEmitter.Drag|Drag を組み合わせると、パーティクルエミッターが移動部分からパーティクルを「落ち着かせ」るかのように見える場合があります。

WindAffectsDrag

並列読み取り

Class.Workspace.GlobalWind ベクトルに従う。Drag プロパティが 0 以上の場合にのみ適用されます。

ZOffset

並列読み取り

ZOffset プロパティは、スタッドでパーティクルの前方-後方レンダリングポジションを決定します。このプロパティは、スクリーン上でパーティクルのサイズを変更せずに、スタッドでパーティクルの前方-後方レンダリングポジションを決定します。このプロパティは、GuiObject.ZIndex

ポジティブ値は、パーティクルをカメラに近づけ、ネガティブ値は、パーティクルを遠ざけます。十分にネガティブ値は、パーティクルを親パーツの中または後ろにレンダリングできます。

方法

Clear

void

Clear メソッドは、Class.ParticleEmitter が発生する通常のエミッション (non-zero Class.ParticleEmitter.Rate|Rate) を通じて、すべての既存のパーティクルを即座にクリアします。Class.ParticleEmitter:Emit()|Emitter() は、Class.ParticleEmitter:Enable|Enable のエ


戻り値

void

コードサンプル

This code sample causes a ParticleEmitter to ParticleEmitter:Emit() particles in bursts of 10 every 2 seconds. It ParticleEmitter:Clear()s any existing particles before doing so.

ParticleEmitter Burst

local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end

Emit

void

エミットメソッドは、Class.ParticleEmitter が、ParticleEmitter を即座にエミットすることを引き起こします。

パラメータ

particleCount: number

放出するパーティクル数。

既定値: 16

戻り値

void

コードサンプル

This code sample causes a parent ParticleEmitter to ParticleEmitter:Emit() particles based on how far the parent BasePart moves.

Emit Particles Over Distance

local RunService = game:GetService("RunService")
local emitter = script.Parent
local part = emitter.Parent
local PARTICLES_PER_STUD = 3
local lastPosition = part.Position
local distance = 0
local function onStep()
local displacement = part.Position - lastPosition
distance = distance + displacement.magnitude
local n = math.floor(distance * PARTICLES_PER_STUD)
emitter:Emit(n)
distance = distance - n / PARTICLES_PER_STUD
lastPosition = part.Position
end
RunService.Stepped:Connect(onStep)
emitter.Enabled = false

This code sample causes a ParticleEmitter to ParticleEmitter:Emit() particles in bursts of 10 every 2 seconds. It ParticleEmitter:Clear()s any existing particles before doing so.

ParticleEmitter Burst

local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end

イベント