Beam
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un objet Beam connecte deux Attachments en dessinant une texture entre eux.
Pour afficher, un rayon doit être un descendant du Workspace avec ses Attachment0 et Attachment1 propriétés définies sur 1> Class.Workspace1> également descendant du 4> Class.Workspace4> .
L'apparence du faisceau peut être personnalisée en utilisant la gamme de propriétés ci-dessous. Voir également le Beams guide pour des exemples visuels.
courbure de faisceau
Les rayons sont configurés pour utiliser une courbe Bézier cubique formée par quatre points de contrôle. Cela signifie qu'ils ne sont pas limités à des lignes droites et que la courbe de la partie peut être modifiée en changeant CurveSize0, CurveSize1 et l'orientation de la partie Class.Arrow|Att
- P0 — Début du faisceau ; position de Attachment0 .
- P1 — CurveSize0 studs loin de Attachment0, dans la direction positive 0> X0> de 3> Class.Beam.Attribut0 3>.
- P2 — CurveSize1 studs loin de Attachment1, dans la direction négative 0> X0> de 3> Class.Beam.Attribut1|Attribut1 ».
- P3 — La fin du faisceau ; position de Attachment1
Échantillons de code
-- create attachments
local att0 = Instance.new("Attachment")
local att1 = Instance.new("Attachment")
-- parent to terrain (can be part instead)
att0.Parent = workspace.Terrain
att1.Parent = workspace.Terrain
-- position attachments
att0.Position = Vector3.new(0, 10, 0)
att1.Position = Vector3.new(0, 10, 10)
-- create beam
local beam = Instance.new("Beam")
beam.Attachment0 = att0
beam.Attachment1 = att1
-- appearance properties
beam.Color = ColorSequence.new({ -- a color sequence shifting from white to blue
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 255, 255)),
})
beam.LightEmission = 1 -- use additive blending
beam.LightInfluence = 0 -- beam not influenced by light
beam.Texture = "rbxasset://textures/particles/sparkles_main.dds" -- a built in sparkle texture
beam.TextureMode = Enum.TextureMode.Wrap -- wrap so length can be set by TextureLength
beam.TextureLength = 1 -- repeating texture is 1 stud long
beam.TextureSpeed = 1 -- slow texture speed
beam.Transparency = NumberSequence.new({ -- beam fades out at the end
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.8, 0),
NumberSequenceKeypoint.new(1, 1),
})
beam.ZOffset = 0 -- render at the position of the beam without offset
-- shape properties
beam.CurveSize0 = 2 -- create a curved beam
beam.CurveSize1 = -2 -- create a curved beam
beam.FaceCamera = true -- beam is visible from every angle
beam.Segments = 10 -- default curve resolution
beam.Width0 = 0.2 -- starts small
beam.Width1 = 2 -- ends big
-- parent beam
beam.Enabled = true
beam.Parent = att0
Résumé
Propriétés
Le Attachment le faisceau vient d'où.
Le Attachment le faisceau se termine à.
Échelle la lumière émise par le faisceau lorsque LightInfluence est inférieure à 1.
Détermine la couleur du faisceau à travers ses Segments .
Détermine, avec Attachment0, la position du deuxième point de contrôle dans la courbe Bézier du rayon.
Détermine, avec Attachment1, la position du troisième point de contrôle dans la courbe Bézier du rayon.
Détermine si le rayon est visible ou non.
Détermine si le Segments du rayon sera toujours face à la caméra, indépendamment de son orientation.
Détermine dans quel degré les couleurs du faisceau sont mélangées avec les couleurs derrière lui.
Détermine la mesure dans laquelle le faisceau est affecté par l'éclairage de l'environnement.
Définit le nombre de segments droits dans lesquels le rayon est composé.
L'ID de contenu de la texture à afficher sur le faisceau.
Définit la longueur de la texture du rayon, en fonction de TextureMode .
Détermine la manière dont le Texture échelle et se répète.
Détermine la vitesse à laquelle l'image Texture se déplace le long du faisceau.
Détermine la transparence du rayon à travers ses segments.
La largeur du faisceau à son origine ( Attachment0), en studs.
La largeur du faisceau à sa fin ( Attachment1), en studs.
La distance, en studs, l'afficheur de faisceau est décalé par rapport à la CurrentCamera.
Méthodes
Définit l'écart actuel du cycle de texture de la balise.
Propriétés
Attachment0
Le faisceau Attachment dont l'origine est. Cette pièce de commande est le premier point de contrôle sur la courbe cubique de Bézier du faisceau ; son orientation, aux côtés de la propriété CurveSize0, détermine la position du deuxième point de contrôle. Voir Beams pour plus de détails.
Pour le Attachment où le faisceau se termine, voir Attachment1.
Attachment1
Le Attachment de ce faisceau se termine à. Ce faisceau est le quatrième et dernier point de contrôle sur la courbe cubique de Bézier ; son orientation, aux côtés de la propriété CurveSize1, détermine la position du troisième point de contrôle. Voir les rayons pour plus de détails.
Pour le Attachment où l'arc vient d'où, voir Attachment0 .
Brightness
Échelle la lumière émise par le faisceau lorsque LightInfluence est inférieure à 1. Cette propriété est 1 par défaut et peut être réglée sur n'importe quel nombre dans la tranche de 0 à 10000. Augmenter la valeur de LightInfluence diminue l'effet de la valeur de cette
Color
Détermine la couleur du faisceau à travers son Segments . Si Texture est configurer, cette couleur sera appliquée à la texture du faisceau. Si aucune couleur Texture n'est configurer, la 1> Class.Beam</
Cette propriété est un ColorSequence, ce qui permet à la couleur d'être configurée pour varier dans la longueur du faisceau. Considérez le suivant ColorSequence, qui, lorsqu'il est appliqué à un faisceau, produirait le resultatsimage.
local colorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- RougeColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- CyanColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Violet})
Notez que la couleur du faisceau dépend également du nombre de Segments que le Beam a. Chaque segment du fais
CurveSize0
Détermine, avec Attachment0, la position du deuxième point de contrôle dans la courbe de Bézier du rayon. Voir Beams pour plus de détails.
La position de ce point peut être déterminée par l'équation suivante :
local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)
CurveSize1
Détermine, avec Attachment1, la position du troisième point de contrôle dans la courbe de Bézier du rayon. Voir Beams pour plus de détails.
La position de ce point peut être déterminée par l'équation suivante :
local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)
Enabled
Détermine si le rayon est visible ou non.
Lorsque cette propriété est réglée sur false, le rayon Segments ne sera pas affiché.
FaceCamera
Un Beam est une 2D projection existant dans l'espace 3D, ce qui signifie qu'il peut ne pas être visible de tous les angles. La propriété FaceCamera , lorsqu'elle est réglée sur true, garantit que le faisceau est toujours face à la 1> Class.Workspace.CurrentCamera|CurrentCamera1>, indépendamment de son orientation.
LightEmission
Détermine à quel degré les couleurs du faisceau sont mélangées avec les couleurs derrière. Il doit être réglé dans la tranche de 0 à 1. Une valeur de 0 utilise les mélanges de couleurs normaux et une valeur de 1 utilise les mélanges de couleurs additives.
Cette propriété ne doit pas être confondue avec LightInfluence qui détermine comment le rayon est affecté par la lumière environnementale.
Cette propriété ne fait pas non pour que le faisceau éclaire l'environnement.
LightInfluence
Détermine à quel degré le faisceau est affecté par l'éclairage de l'environnement, scotché entre 0 et 1. Lorsque 0, le faisceau ne sera pas affecté par l'éclairage de l'environnement. Lorsque 1, il sera entièrement affecté par l'éclairage comme un BasePart serait.
Voir également LightEmission qui spécifie dans quelle mesure les couleurs du faisceau sont mélangées avec les couleurs derrière.
LocalTransparencyModifier
Segments
Au lieu d'être une courbe parfaite, un rayon est composé de segments droits. Plus il y a de segments, plus la résolution de la courbe est élevée. La propriété Segments définit le nombre de segments droits dans lesquels le rayon est composé, avec une valeur par défaut de 10.
Remarquez que les propriétés Color et Transparency nécessitent un certain nombre de segments pour s'
Texture
L'ID de contenu de la texture à afficher sur le faisceau. Si cette propriété n'est pas configurer, le faisceau sera affiché comme une ligne solide ; cela se produit également lorsque la texture est définie à un ID de contenu invalide ou que l'image associée à la texture n'a pas encore été chargée.
L'apparence de la texture peut être modifiée par d'autres propriétés de faisceau, y compris Color et Transparency.
L'échelle de la texture est déterminée par le TextureMode, TextureLength, Width0, et 2>Class.Beam.Width1|Width12> propriétés.
TextureMode
Cette propriété, ainsi que TextureLength, détermine la façon dont se répète le Texture d'un rayon.
Lorsqu'il est défini sur Enum.TextureMode.Wrap ou Enum.TextureMode.Static, les répétitions de texture correspondent à la longueur globale du faisceau (en studs) divisée par sa TextureLength.
Lorsqu'il est réglé sur Enum.TextureMode.Stretch, la texture se répétera TextureLength fois sur la longueur totale du faisceau.
TextureSpeed
Détermine la vitesse à laquelle l'image Texture déplace le long du faisceau. Lorsque cette propriété est une valeur positive, la texture du faisceau se déplace de Attachment0 à Attachment1. Cette direction peut être inversée en définissant cette propriété à un nombre négatif.
Transparency
Détermine la transparence du faisceau à travers ses segments. Cette propriété est un NumberSequence, ce qui permet de configurer la transparence pour varier dans la longueur du faisceau.
Considérez le suivant NumberSequence qui, lorsqu'il est appliqué à un faisceau, produirait le resultatsimage.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpaqueNumberSequenceKeypoint.new(0.5, 1), -- TransparentNumberSequenceKeypoint.new(1, 0), -- Opaque})
Remarquez que la transparence du faisceau dépend également du nombre de Segments. Chaque segment du faisceau ne peut montrer qu'une transition entre deux transparences. Ainsi, un faisceau aura besoin d'au moins n-1 segments pour s'aff
Width0
La largeur du faisceau à son origine ( Attachment0), en studs. La largeur du faisceau changera linéairement à Width1 studs à son extrémité ( Attachment1).
Width1
La largeur du faisceau à sa fin ( Attachment1), en studs. La largeur du faisceau changera linéairement à partir de Width0 studs à son origine ( Attachment0).
ZOffset
La distance, en studs, l'affichage du faisceau est décalé par rapport à la CurrentCamera . Lorsque 0, le faisceau sera affiché dans sa position standard entre Attachment0 et Attachment1 . 1> ZOffset1> peut être positif ou négatif.
Cette propriété est particulièrement utile pour éviter le « Z - Fighting » lors de l'utilisation de plusieurs Beams entre les mêmes Attachments.
Échantillons de code
-- Create beams
local beam1 = Instance.new("Beam")
beam1.Color = ColorSequence.new(Color3.new(1, 0, 0))
beam1.FaceCamera = true
beam1.Width0 = 3
beam1.Width1 = 3
local beam2 = Instance.new("Beam")
beam2.Color = ColorSequence.new(Color3.new(0, 1, 0))
beam2.FaceCamera = true
beam2.Width0 = 2
beam2.Width1 = 2
local beam3 = Instance.new("Beam")
beam3.Color = ColorSequence.new(Color3.new(0, 0, 1))
beam3.FaceCamera = true
beam3.Width0 = 1
beam3.Width1 = 1
-- Layer beams
beam1.ZOffset = 0
beam2.ZOffset = 0.01
beam3.ZOffset = 0.02
-- Create attachments
local attachment0 = Instance.new("Attachment")
attachment0.Position = Vector3.new(0, -10, 0)
attachment0.Parent = workspace.Terrain
local attachment1 = Instance.new("Attachment")
attachment1.Position = Vector3.new(0, 10, 0)
attachment1.Parent = workspace.Terrain
-- Connect beams
beam1.Attachment0 = attachment0
beam1.Attachment1 = attachment1
beam2.Attachment0 = attachment0
beam2.Attachment1 = attachment1
beam3.Attachment0 = attachment0
beam3.Attachment1 = attachment1
-- Parent beams
beam1.Parent = workspace
beam2.Parent = workspace
beam3.Parent = workspace
Méthodes
SetTextureOffset
L'Offset d'un cycle de texture représente la progression de son animationsde texture. Ce méthode défini l'Offset actuel du cycle de texture ; ainsi, il peut être utilisé pour réinitialiser le cycle en passant 0 en tant que paramètre offset.
Notes
- Le paramètre donné offset est attendu être une valeur entre 0 et 1, mais des valeurs plus grandes peuvent être utilisées.
- Le cycle de texte se termine par 0 et 1, ce qui signifie que le texte est dans la même position lorsque l'Offset est à 0 ou 1.
- Si la propriété Texture n'est pas configurer, cette méthode ne fait rien.
- Augmenter le décalage agira dans la direction inverse de la propriété TextureSpeed, ce qui signifie qu'il déplacera la texture dans la direction opposée à la direction dans laquelle l'animation de la texture se déplace lorsque TextureSpeed est supérieur à 0.
Paramètres
L'écart souhaité du cycle de texte.