Beam

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Ein A Strahl -Objekt verbindet zwei Attachments durch eine Textur zwischen ihnen.

Um angezeigt zu werden, muss ein Strahl ein Nachkomme des Workspace mit seinen Attachment0 und Attachment1 Eigenschaften sein, die auf Attachments auch von der Workspace absteigen.

Das Aussehen des Beams kann mit der Reihe von Eigenschaften angepasst werden, die unten beschrieben werden. Siehe auch den Beams-Leitfaden für visuelle Beispiele.

Strahl-Kurvatur

Strahlen werden konfiguriert, um eine kubische Bézier-Kurve zu verwenden, die aus vier Kontrollpunkten besteht.Das bedeutet, dass sie nicht an geraden Linien gebunden sind und die Kurve des Strahls durch Ändern von CurveSize0 , CurveSize1 und der Ausrichtung des Strahls von Attachments modifiziert werden kann.

Beam curvature diagram

Code-Beispiele

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

Zusammenfassung

Eigenschaften

Methoden

Eigenschaften

Attachment0

Parallel lesen

Die Attachment der Strahl stammt von.Diese Anlage ist der erste Kontrollpunkt auf der kubischen Bézier-Kurve des Beams; seine Ausrichtung, neben der CurveSize0 Eigenschaften, bestimmt die Position des zweiten Kontrollpunkts.Siehe Strahlen für weitere Details.

Für die Attachment, wo der Strahl endet, siehe Attachment1.

Attachment1

Parallel lesen

Die Attachment der Strahl endet bei.Diese Anlage ist der vierte und letzte Kontrollpunkt auf der kubischen Bézier-Kurve des Beams; ihre Orientierung, neben der CurveSize1 Eigenschaften, bestimmt die Position des dritten Kontrollpunkts.Siehe Strahlen für weitere Details.

Für die Attachment, von wo der Strahl stammt, siehe Attachment0.

Brightness

Parallel lesen

Skaliert das Licht, das vom Strahl ausgegeben wird, wenn LightInfluence weniger als 1 ist.Diese Eigenschaft ist standardmäßig 1 und kann auf eine beliebige Zahl innerhalb des Bereichs von 0 bis 10000 gesetzt werden.Die Erhöhung des Werts von LightInfluence verringert den Effekt des Werts dieser Eigenschaften.

Parallel lesen

Bestimmt die Farbe des Strahls über seine Segments .Wenn Texture festlegenist, wird diese Farbe auf die Textur des Beams angewendet.Wenn keine Texture festlegenist, wird die Beam als feste Linie erscheinen, die entsprechend dieser Eigenschaftengefärbt ist.

Diese Eigenschaft ist ein ColorSequence, wodurch die Farbe konfiguriert werden kann, um sich über die Länge des Strahls zu verändern.Betrachte die folgenden ColorSequence, die, wenn sie auf einen Strahl angewendet werden, das dargestellte Ergebnis ergeben würden.


local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- Rot
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Türkis
ColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Lila
}
)

Beachten Sie, dass die Farbgebung des Beams auch von der Anzahl der Segments abhängt, die der Beam hat.Jedes Segment des Strahls kann nur einen Übergang zwischen zwei Farben zeigen.Daher muss ein Beam mindestens n-1 Segmente haben, damit die Farbe richtig angezeigt wird, wo n die Anzahl von ColorSequenceKeypoints im ColorSequence ist.

CurveSize0

Parallel lesen

Bestimmt zusammen mit Attachment0 die Position des zweiten Kontrollpunkts in der Bézier-Kurve des Beams. Siehe Beams für weitere Details.

Die Position dieses Punkts kann durch die folgende Gleichung bestimmt werden:


local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)

CurveSize1

Parallel lesen

Bestimmt zusammen mit Attachment1 die Position des dritten Kontrollpunkts in der Bézier-Kurve des Beams. Siehe Beams für weitere Details.

Die Position dieses Punkts kann durch die folgende Gleichung bestimmt werden:


local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)

Enabled

Parallel lesen

Bestimmt, ob der Strahl sichtbar ist oder nicht.

Wenn diese Eigenschaft auf false gesetzt ist, wird die Segments des Strahls nicht angezeigt.

FaceCamera

Parallel lesen

Ein Beam ist eine 2D-Projektion, die im Platzexistiert, was bedeutet, dass sie von jedem Winkel nicht sichtbar sein kann.Die EigenschaftenFaceCamera , wenn sie auf gesetzt wird, sorgt dafür, dass der Strahl immer in Richtung geht, unabhängig von seiner Ausrichtung.

LightEmission

Parallel lesen

Bestimmt, inwieweit die Farben des Strahls mit den Farben hinter ihm gemischt sind.Es sollte in der Reichweite von 0 bis 1 festgelegt werden.Ein Wert von 0 verwendet normale Mischmodi und ein Wert von 1 verwendet additives Mischen.

Diese Eigenschaft sollte nicht mit LightInfluence, die bestimmt, wie sich der Strahl durch Umgebungslicht beeinflusst wird, verwechselt werden.

Diese Eigenschaft verursacht nicht den Strahl, die Umgebung zu beleuchten .

LightInfluence

Parallel lesen

Bestimmt den Grad, in dem der Strahl durch die Beleuchtung der Umgebung beeinflusst wird, zwischen 0 und 1 eingeklemmt.Wenn 0, wird der Strahl von der Beleuchtung der Umgebung nicht beeinträchtigt.Wenn 1, wird es vollständig von der Beleuchtung betroffen sein, wie es bei einer BasePart wäre.

Siehe auch LightEmission, der angibt, inwieweit die Farben des Beams mit den Farben hinter ihm gemischt sind.

LocalTransparencyModifier

Verborgen
Nicht repliziert
Parallel lesen

Segments

Parallel lesen

Anstatt eine perfekte Kurve zu sein, besteht ein Strahl aus geraden Segmenten.Je mehr Segmente, desto höher die Auflösung der Kurve.Die Eigenschaft Segmente legt fest, aus wie vielen geraden Segmenten der Strahl besteht, mit einem Standardwert von 10.

Beachten Sie, dass die Eigenschaften Color und Transparency eine bestimmte Anzahl von Segmenten erfordern, um richtig angezeigt zu werden.Das liegt daran, dass jedes Segment nur eine Übergangs zwischen zwei Farben oder Transparenzen zeigen kann.Daher benötigt ein Beam mindestens n-1 Segmente, um richtig angezeigt zu werden, wo n die Anzahl der Schlüsselpunkte ist, die mit dem Strahl verbunden sind Color und Transparency.

Texture

ContentId
Parallel lesen

Die Inhalts-ID der Textur, die auf dem Strahl angezeigt werden soll.Wenn diese Eigenschaft nicht festlegenist, wird der Strahl als eine solide Linie angezeigt; dies geschieht auch, wenn die Textur mit einer ungültigen Inhalts-ID oder das Bild, das mit der Textur verbunden ist, noch nicht geladen wurde.

Das Aussehen der Textur kann durch andere Strahlereigenschaften modifiziert werden, einschließlich Color und Transparency.

Die Skalierung der Textur wird durch die Eigenschaften TextureMode, TextureLength, Width0 und Width1 bestimmt.

TextureLength

Parallel lesen

Legt die Länge der Textur des Beams fest, abhängig von TextureMode.

TextureMode

Parallel lesen

Diese Eigenschaften, zusammen mit TextureLength, bestimmt, wie sich ein Strahls Texture wiederholt.

Wenn auf Enum.TextureMode.Wrap oder Enum.TextureMode.Static eingestellt, werden die Texturwiederholungen der Gesamtlänge des Strahls gleich (in Studs) geteilt durch seine TextureLength.

TextureMode diagram with Wrap mode

Wenn auf Enum.TextureMode.Stretch festgelegt, wiederholt sich die Textur TextureLength mal über die gesamte Länge des Strahls.

TextureMode diagram with Stretch mode

TextureSpeed

Parallel lesen

Bestimmt die Geschwindigkeit, mit der das Texture Bild entlang des Beams bewegt wird.Wenn diese Eigenschaft einen positiven Wert hat, bewegt sich die Textur des Beams von Attachment0 zu Attachment1.Diese Richtung kann durch Festlegen dieser Eigenschaft auf eine negative Zahl umgekehrt werden.

Transparency

Parallel lesen

Bestimmt die Transparenz des Beams über seine Segmente hinweg.Diese Eigenschaft ist ein NumberSequence, wodurch die Transparenz so konfiguriert werden kann, dass sie sich über die Länge des Strahls verändert.

Betrachte die folgenden NumberSequence, die, wenn sie auf einen Strahl angewendet werden, das dargestellte Ergebnis ergeben würden.


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

Beachten Sie, dass die Transparenz des Beams auch von der Anzahl von Segments abhängt.Jedes Segment des Beams kann nur einen Übergang zwischen zwei Transparenzen zeigen.Daher muss ein Strahl mindestens n-1 Segmente haben, um richtig angezeigt zu werden, wo n die Anzahl von NumberSequenceKeypoints im NumberSequence ist.

Width0

Parallel lesen

Die Breite des Beams an seiner Herkunft ( Attachment0 ), in Klötzen. Die Breite des Beams ändert sich lineär auf Width1 Klötze am Ende ( Attachment1 ).

Width1

Parallel lesen

Die Breite des Beams am Ende ( Attachment1 ), in Stollen. Die Breite des Beams ändert sich lineär von Width0 Stollen an seiner Herkunft ( Attachment0 ).

ZOffset

Parallel lesen

Die Entfernung, in Studs, ist das Beam-Display relativ zum CurrentCamera verschoben.Wenn 0, wird der Strahl in seiner Standardposition zwischen Attachment0 und Attachment1 angezeigt. ZOffset kann positiv oder negativ sein.

Diese Eigenschaft ist besonders nützlich, um "Z‑Kämpfe" zu vermeiden, wenn mehrere Beams zwischen den gleichen Attachments verwendet werden.

Code-Beispiele

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

Methoden

SetTextureOffset

()

Der Versatz des Texturzyklus eines Beams repräsentiert den Fortschritt seiner Animationen.Diese Methode legt den aktuellen Versatz des Texturzyklus des Beams fest; daher kann sie verwendet werden, um den Zyklus zurückzusetzen, indem 0 als offset -Parameter übergeben wird.

Anmerkungen

  • Der angegebene offset -Parameter wird erwartet, ein Wert zwischen 0 und 1 zu sein, aber größere Werte können verwendet werden.
  • Der Texturzyklus endet bei 0 und 1, was bedeutet, dass die Textur in derselben Position ist, wenn der Versatz bei 0 oder 1 ist.
  • Wenn die Texture-Eigenschaft nicht festlegenist, tut diese Methode nichts.
  • Die Erhöhung des Offsets wird in die umgekehrte Richtung auf die EigenschaftenTextureSpeed wirken, was bedeutet, dass es die Textur in die entgegengesetzte Richtung bewegt, in die die Textur sich bewegt, wenn TextureSpeed größer als 0 ist.

Parameter

offset: number

Der gewünschte Versatz des Texturzyklus.

Standardwert: 0

Rückgaben

()

Ereignisse