Fire
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Le feu est l'une des plusieurs Classesémettrices de particules prédéfinies.Comme d'autres objets émettant des particules, un feu émet des particules lorsqu'il est parenté à un BasePart et Attachment et pendant que Enabled .Cet objet est utile pour créer un effet visuel rapide en détresse ; pour un travail plus détaillé, il est préférable d'utiliser un ParticleEmitter à la place.
Les particules de feu émettent du centre de BasePart vers lequel elles sont parentées.Les particules sont émises vers le haut (+Y) ; cependant, un négatif Fire.Heat peut être utilisé pour émettre dans la direction du bas (-Y).L'utilisation d'un Attachment comme parent permet plutôt de modifier la position/dirrection d'émission en modifiant les propriétés Attachment.CFrame ou apparentées.
Lorsque Enabled est off, les particules existantes se rendent jusqu'à expiration.Cependant, si la flamme Parent est réglée sur nil toutes les particules existantes disparaissent immédiatement, semblable au comportement de ParticleEmitter:Clear() .Il est possible de définir le Parent à nil et de revenir à l'objet original exact pour obtenir le même effet.Si la disparition immédiate n'est pas souhaitée, essayez de déplacer le parent du feu à une position éloignée, puis Destroy le feu après quelques secondes en utilisant Debris:AddItem() .Cela donnera aux particules existantes le temps d'expirer.
Les objets de feu ne diffusent pas de lumière par posséder.Pour aider à créer un environnement cohérent autour d'un objet brûlant, essayez d'ajouter un PointLight avec un orange Color .Cela peut aider votre feu à paraître plus réaliste.
L'objet de feu se compose de deux émetteurs.Les deux sont affectés de différentes manières par le feu de Size, Heat, Color et SecondaryColor.Les particules émises par l'émetteur secondaire plus petit ont une durée de vie significativement plus longue (et montent plus haut) que celles émises par l'émetteur principal.Dans la vidéo à droite, vous pouvez voir les deux émetteurs avec les couleurs distinctes.
Contrairement aux flammes réelles, l'objet Fire ne se propage pas de lui-même .Si vous remarquez ce comportement dans votre jeu, cela se produit à cause d'un Script .
Échantillons de code
This code sample adds Fire to all BasePart in the Workspace named "Torch".
for _, child in pairs(workspace:GetChildren()) do
if child.Name == "Torch" and child:IsA("BasePart") then
local fire = Instance.new("Fire")
fire.Heat = 10
fire.Color = child.Color
fire.SecondaryColor = Color3.new(1, 1, 1) -- White
fire.Size = math.max(child.Size.X, child.Size.Z) -- Pick the larger of the two dimensions
fire.Parent = child
end
end
Résumé
Propriétés
Détermine la couleur des particules de flamme primaires (extérieures).
Détermine si les particules de flamme sont émises.
Détermine la vitesse à laquelle les particules sont émises.
Détermine la couleur des particules de flamme secondaire (intérieure).
Détermine la taille des particules de flamme.
Valeur comprise entre 0-1 qui contrôle la vitesse de l'effet de particule.
Propriétés
Color
La propriété Couleur détermine la couleur des plus grandes particules émises par un objet Fire >.C'est essentiellement la couleur de la partie extérieure de la flamme.
En général, les flammes plus fraîches sont à l'extérieur d'un lancer.Par conséquent, le feu paraît plus réaliste si les parties externes sont rouges ou orange-jaunes.Un feu qui est brillant tout au long ne semble pas très réaliste, évitez donc de définir cette propriété sur jaune.Essayez d'ajouter un PointLight avec le PointLight.Color comme frère du Fire .Cela fournira de la lumière à l'environnement environnant et le rendra plus cohérent avec les particules de flamme.
Échantillons de code
This code sample adds Fire to all BasePart in the Workspace named "Torch".
for _, child in pairs(workspace:GetChildren()) do
if child.Name == "Torch" and child:IsA("BasePart") then
local fire = Instance.new("Fire")
fire.Heat = 10
fire.Color = child.Color
fire.SecondaryColor = Color3.new(1, 1, 1) -- White
fire.Size = math.max(child.Size.X, child.Size.Z) -- Pick the larger of the two dimensions
fire.Parent = child
end
end
Enabled
La propriété activée, tout comme ParticleEmitter.Enabled, détermine si les particules de flamme sont émises.Toutes les particules déjà émises continueront à rendre jusqu'à ce que leur durée de vie expire.Cette propriété est utile pour garder les effets de feu préfabriqués désactivés jusqu'à ce qu'ils soient nécessaires plus tard.Puisque les particules de flamme sont détruites lorsque la propriété Fire de l'objet Instance.Parent est réglée sur nil, cette propriété est utile pour permettre aux particules existantes d'expirer avant de détruire complètement l'objet de feu.Voir la fonction ci-dessous.
local Debris = game:GetService("Debris")
local part = script.Parent
function douseFlames(fire)
fire.Enabled = false -- No more new particles
Debris:AddItem(fire, 2) -- Remove the object after a delay (after existing particles have expired)
end
douseFlames(part.Fire)
Échantillons de code
This code sample allows a player to click the parent BasePart to toggle a fire effect.
local part = script.Parent
local clickDetector = Instance.new("ClickDetector")
clickDetector.Parent = part
local fire = Instance.new("Fire")
fire.Parent = part
local light = Instance.new("PointLight")
light.Parent = part
local function onClick()
fire.Enabled = not fire.Enabled
light.Enabled = fire.Enabled
end
clickDetector.MouseClick:Connect(onClick)
Heat
La propriété chaleur détermine la vitesse à laquelle les particules sont émises de l'objet Fire.Il est limité à la plage [-25, 25].Les valeurs positives sont dans la direction supérieure (+Y) du parent BasePart ou Attachment .Il affecte également le ParticleEmitter.Acceleration des particules internes.Ci-dessous, vous pouvez voir les effets de la chaleur plus élevée sur la vitesse/accélération des particules de flamme (à gauche, la chaleur = 9, à droite, la chaleur = 18).
Échantillons de code
This code sample adds Fire to all BasePart in the Workspace named "Torch".
for _, child in pairs(workspace:GetChildren()) do
if child.Name == "Torch" and child:IsA("BasePart") then
local fire = Instance.new("Fire")
fire.Heat = 10
fire.Color = child.Color
fire.SecondaryColor = Color3.new(1, 1, 1) -- White
fire.Size = math.max(child.Size.X, child.Size.Z) -- Pick the larger of the two dimensions
fire.Parent = child
end
end
LocalTransparencyModifier
SecondaryColor
La propriété SecondaryColor détermine la couleur des particules plus petites émises par un objet Fire .C'est essentiellement la couleur de la partie intérieure de la flamme.Ci-dessous, vous pouvez voir que la couleur secondaire de la flamme est réglée sur blanc pour se distinguer des particules externes plus grandes qui ont Fire.Color réglé sur bleu.Il est à noter que les particules internes utilisent un ParticleEmitter.LightEmission de 1, donc les couleurs plus sombres provoqueront plutôt l'apparition des particules transparentes (et donc le noir arrêtera de rendre les particules internes du tout).
Échantillons de code
This code sample adds Fire to all BasePart in the Workspace named "Torch".
for _, child in pairs(workspace:GetChildren()) do
if child.Name == "Torch" and child:IsA("BasePart") then
local fire = Instance.new("Fire")
fire.Heat = 10
fire.Color = child.Color
fire.SecondaryColor = Color3.new(1, 1, 1) -- White
fire.Size = math.max(child.Size.X, child.Size.Z) -- Pick the larger of the two dimensions
fire.Parent = child
end
end
Size
Cette propriété détermine la taille des particules de flamme.Il doit être dans la plage de 2 à 30.Contrairement à ParticleEmitter.Size, la taille réelle des flammes ne correspondra pas 1:1 à la taille équivalente en studs ; elle est un peu plus petite.
Pour rendre votre environnement plus cohérent, essayez d'ajouter un PointLight comme frère à l'objet Fire.Définissez le PointLight.Brightness et le PointLight.Range proportionnel à cette propriété afin que les flammes plus grandes produisent plus de lumière.
Échantillons de code
This code sample adds Fire to all BasePart in the Workspace named "Torch".
for _, child in pairs(workspace:GetChildren()) do
if child.Name == "Torch" and child:IsA("BasePart") then
local fire = Instance.new("Fire")
fire.Heat = 10
fire.Color = child.Color
fire.SecondaryColor = Color3.new(1, 1, 1) -- White
fire.Size = math.max(child.Size.X, child.Size.Z) -- Pick the larger of the two dimensions
fire.Parent = child
end
end
TimeScale
Une valeur entre 0-1 contrôle la vitesse de l'effet de particule.À 1, il fonctionne à une vitesse normale, à 0,5 il fonctionne à moitié vitesse, et à 0, il gèle le temps.