Beam

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Un objet poutre connecte deux Attachments en dessinant une texture entre elles.

Pour afficher, un rayon doit être un descendant du Workspace avec ses propriétés Attachment0 et Attachment1 définies à Attachments descendant également du Workspace .

L'apparence du rayon peut être personnalisée en utilisant la gamme de propriétés définies ci-dessous. Voir également le guide rayons pour des exemples visuels.

Courbure du rayon

Les faisceaux 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 du rayon peut être modifiée en modifiant CurveSize0, CurveSize1 et l'orientation du rayon Attachments.

Beam curvature diagram

Échantillons de code

This code sample demonstrates how a Beam effect can be created from scratch by creating a Beam, setting all of its properties and configuring it's Attachments.

Creating a Beam From Scratch

-- 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

Méthodes

Propriétés

Attachment0

Lecture parallèle

La Attachment d'où la poutre provient.Cette pièce jointe est le premier point de contrôle sur la courbe Bézier cubique 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 poutres pour plus de détails.

Pour le Attachment où la poutre se termine, voir Attachment1 .

Attachment1

Lecture parallèle

Le Attachment à partir duquel la poutre se termine.Cette pièce jointe est le quatrième et dernier point de contrôle sur la courbe Bézier cubique du faisceau ; son orientation, aux côtés de la propriété CurveSize1, détermine la position du troisième point de contrôle.Voir poutres pour plus de détails.

Pour le Attachment où la poutre provient, voir Attachment0 .

Brightness

Lecture parallèle

É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 définie à n'importe quel nombre se situant dans la plage de 0 à 10 000.L'augmentation de la valeur de LightInfluence diminue l'effet de la valeur de cette propriété.

Lecture parallèle

Détermine la couleur du rayon à travers ses Segments .Si Texture est configurer, cette couleur sera appliquée à la texture du rayon.Si aucun Texture n'est configurer, le Beam apparaîtra comme une ligne solide colorée selon cette propriété.

Cette propriété est un ColorSequence , ce qui permet de configurer la couleur pour qu'elle varie le long de la longueur du rayon.Considérez la suivante ColorSequence qui, lorsqu'appliquée à un rayon, donnerait le resultatspeint.


local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- Rouge
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Bleu vert
ColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Violet
}
)

Remarquez que la coloration du rayon dépend également du nombre de Segments que le Beam a.Chaque segment du faisceau ne peut montrer qu'une transition entre deux couleurs.Il sera donc nécessaire qu'un Beam ait au moins n-1 segments pour que la couleur s'affiche correctement, où n est le nombre de ColorSequenceKeypoints dans le ColorSequence .

CurveSize0

Lecture parallèle

Détermine, avec Attachment0, la position du deuxième point de contrôle dans la courbe Bézier du faisceau. Voir Rayons 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

Lecture parallèle

Détermine, avec Attachment1, la position du troisième point de contrôle dans la courbe Bézier du faisceau. Voir Rayons 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

Lecture parallèle

Détermine si le rayon est visible ou non.

Lorsque cette propriété est définie sur false, le Segments de la poutre ne sera pas affiché.

FaceCamera

Lecture parallèle

Un Beam est une projection 2D existante dans l'espace 3D, ce qui signifie qu'elle peut ne pas être visible de tous les angles.La propriété Caméra de visage , lorsqu'elle est définie sur true, garantit que le rayon toujours face à la CurrentCamera, quelle que soit son orientation.

LightEmission

Lecture parallèle

Détermine dans quelle mesure les couleurs du rayon sont mélangées aux couleurs derrière lui.Il devrait être défini dans la plage de 0 à 1.Une valeur de 0 utilise les modes de mélange normaux et une valeur de 1 utilise le mélange additif.

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 pas que la poutre éclaire l'environnement.

LightInfluence

Lecture parallèle

Détermine le degré dans lequel le rayon est influencé par l'éclairage de l'environnement, comprise entre 0 et 1.Lorsque 0, le rayon sera insensible à l'éclairage de l'environnement.Lorsque 1, il sera entièrement affecté par l'éclairage comme un BasePart le serait.

Voir aussi LightEmission qui spécifie dans quelle mesure les couleurs du faisceau sont mélangées avec les couleurs derrière lui.

LocalTransparencyModifier

Caché
Non répliqué
Lecture parallèle

Segments

Lecture parallèle

Plutôt que 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 dont la poutre est composée, avec une valeur par défaut de 10.

Notez que les propriétés Color et Transparency nécessitent un certain nombre de segments pour s'afficher correctement.C'est parce que chaque segment ne peut montrer qu'une transition entre deux couleurs ou transparences.Il est donc nécessaire qu'un Beam requiert au moins n-1 segments pour s'afficher correctement, où n est le nombre de point clé associé au rayon de Color et Transparency .

Texture

ContentId
Lecture parallèle

L'ID du contenu de la texture à afficher sur le faisceau.Si cette propriété n'est pas configurer, le rayon sera affiché comme une ligne solide ; cela se produit également lorsque la texture est définie sur un ID de contenu non valide 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 rayon, y compris Color et Transparency.

L'ajustement de la texture est déterminé par les propriétés TextureMode, TextureLength, Width0 et Width1.

TextureLength

Lecture parallèle

Définit la longueur de la texture du rayon, dépendant de TextureMode.

TextureMode

Lecture parallèle

Cette propriété, aux côtés de TextureLength, détermine comment une poutre se répète Texture.

Lorsqu'elle est réglée sur Enum.TextureMode.Wrap ou Enum.TextureMode.Static, les répétitions de texture correspondront à la longueur globale du rayon (en studs) divisée par son TextureLength.

TextureMode diagram with Wrap mode

Lorsqu'elle est réglée sur Enum.TextureMode.Stretch, la texture se répétera TextureLength fois sur la longueur globale du rayon.

TextureMode diagram with Stretch mode

TextureSpeed

Lecture parallèle

Détermine la vitesse à laquelle l'image Texture se déplace le long du rayon.Lorsque cette propriété est une valeur positive, la texture du rayon se déplacera de Attachment0 à Attachment1 .Cette direction peut être inversée en définissant cette propriété sur un nombre négatif.

Transparency

Lecture parallèle

Détermine la transparence du rayon à travers ses segments.Cette propriété est un NumberSequence , ce qui permet de configurer la transparence pour varier au fil de la longueur du rayon.

Considérez la suivante NumberSequence qui, lorsqu'appliquée à un rayon, donnerait le resultatspeint.


local numberSequence = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0), -- Opaque
NumberSequenceKeypoint.new(0.5, 1), -- Transparent
NumberSequenceKeypoint.new(1, 0), -- Opaque
}
)

Notez que la transparence du rayon dépend également du nombre de Segments.Chaque segment du faisceau ne peut montrer qu'une transition entre deux transparences.Il est donc nécessaire qu'un rayon ait au moins n-1 segments pour s'afficher correctement, où n est le nombre de NumberSequenceKeypoints dans le NumberSequence .

Width0

Lecture parallèle

La largeur du rayon à son origine ( Attachment0 ), en studs. La largeur du rayon changera linéairement en Width1 studs à sa fin ( Attachment1 ).

Width1

Lecture parallèle

La largeur du rayon à sa fin ( Attachment1 ), en studs. La largeur du rayon changera linéairement de Width0 studs à son origine ( Attachment0 ).

ZOffset

Lecture parallèle

La distance, en studs, l'affichage du rayon est décalé par rapport au CurrentCamera .Lorsque 0, le rayon sera affiché dans sa position standard entre Attachment0 et Attachment1 . ZOffset peut être positif ou négatif.

Cette propriété est particulièrement utile pour éviter le « combat Z » lors de l'utilisation de plusieurs Beams entre le même Attachments.

Échantillons de code

This code sample uses the Beam.ZOffset property to layer multiple beams between the same attachments.

Layering Beams

-- 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'écart de la texture d'un cycle de rayon représente la progression de son animationsde texture.Cette méthode défini l'écart actuel du cycle de la texture du rayon ; donc, elle peut être utilisée pour réinitialiser le cycle en passant 0 comme paramètre offset.

Notations

  • Le paramètre donné offset est attendu pour être une valeur entre 0 et 1, mais des valeurs plus élevées peuvent être utilisées.
  • Le cycle de la texture se termine à 0 et 1, ce qui signifie que la texture est à la même position lorsque le décalage est à 0 ou 1.
  • Si la propriété Texture n'est pas configurer, cette méthode ne fait rien.
  • L'augmentation de la décalage agira dans le sens inverse de la propriété TextureSpeed, ce qui signifie qu'il déplacera la texture dans la direction opposée à celle dans laquelle la texture s'anime lorsque TextureSpeed est supérieure à 0.

Paramètres

offset: number

Le décalage souhaité du cycle de la texture.

Valeur par défaut : 0

Retours

()

Évènements