Beam

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Một đối tượng Bức xạ kết nối hai Attachments bằng cách vẽ một kết cấu giữa chúng.

Để hiển thị, một chùm phải là con cháu của Workspace với các thuộc tính Attachment0Attachment1 của nó được đặt thành Attachments cũng giảm từ Workspace .

Sự xuất hiện của tia có thể được tùy chỉnh bằng cách sử dụng phạm vi các thuộc tính được mô tả dưới đây. Xem thêm hướng dẫn Tia để có ví dụ hình ảnh.

Hình cong của tia

Các chùm được cấu hình để sử dụng một đường cong Bézier khối dạng hình bốn điểm điều khiển.Điều này có nghĩa là chúng không bị giới hạn bởi các đường thẳng và cong của chùm tia có thể được thay đổi bằng cách thay đổi CurveSize0, CurveSize1 và hướng của chùm tia Attachments.

Beam curvature diagram

Mẫu mã

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

Tóm Tắt

Thuộc Tính

Phương Pháp

  • Đặt chênh lệch hiện tại của chu kỳ kết cấu của chùm tia.

Thuộc Tính

Attachment0

Đọc Song Song

Cột Attachment nguồn phát từ.Phần kèm này là điểm kiểm soát đầu tiên trên đường cong Bézier khối của chùm; vị trí của nó, cùng với thuộc tính CurveSize0, xác định vị trí của điểm kiểm soát thứ hai.Xem Chùm tia để biết thêm chi tiết.

Đối với Attachment nơi chùm tia kết thúc, xem Attachment1 .

Attachment1

Đọc Song Song

Cột Attachment mà chùm tia kết thúc tại.Phần kèm này là điểm kiểm soát thứ tư và cuối cùng trên đường cong Bézier khối trục của chùm; vị trí của nó, cùng với thuộc tính CurveSize1 , xác định vị trí của điểm kiểm soát thứ ba.Xem Chùm tia để biết thêm chi tiết.

Đối với Attachment nơi chùm tia xuất phát, xem Attachment0 .

Brightness

Đọc Song Song

Tăng mức ánh sáng phát ra từ chùm khi LightInfluence nhỏ hơn 1.Thuộc tính này là 1 mặc định và có thể đặt thành bất kỳ số nào trong phạm vi từ 0 đến 10000.Tăng giá trị của LightInfluence giảm hiệu ứng của giá trị của tính năng này.

Đọc Song Song

Xác định màu của chùm tia trên toàn bộ Segments của nó.Nếu Texture được cài đặt, màu này sẽ được áp dụng cho bề mặt của tia.Nếu không có Texture được cài đặt, Beam sẽ xuất hiện như một dòng rắn có màu theo thuộc tính này.

Thuộc tính này là ColorSequence, cho phép màu được cấu hình để thay đổi theo chiều dài của chùm tia.Hãy xem xét các điều sau ColorSequence mà khi áp dụng cho một chùm sẽ cho ra kết quả được vẽ.


local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- Đỏ
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Xanh lam
ColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Tím
}
)

Lưu ý màu sắc của chùm cũng phụ thuộc vào số lượng Segments của Beam có.Mỗi phần của chùm chỉ có thể hiển thị một sự chuyển đổi giữa hai màu.Do đó, một Beam sẽ cần phải có ít nhất n-1 phân đoạn để màu hiển thị đúng, nơi n là số lượng ColorSequenceKeypoints trong ColorSequence .

CurveSize0

Đọc Song Song

Xác định, cùng với Attachment0 , vị trí của điểm kiểm soát thứ hai trong đường cong Bézier của chùm tia. Xem Chùm tia để biết thêm chi tiết.

Vị trí của điểm này có thể được xác định bởi công thức sau:


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

CurveSize1

Đọc Song Song

Xác định, cùng với Attachment1 , vị trí điểm kiểm soát thứ ba trong đường cong Bézier của chùm tia. Xem Chùm tia để biết thêm chi tiết.

Vị trí của điểm này có thể được xác định bởi công thức sau:


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

Enabled

Đọc Song Song

Xác định xem chùm tia có hiển thị hay không.

Khi thuộc tính này được đặt thành false, chùm Segments của chùm sẽ không được hiển thị.

FaceCamera

Đọc Song Song

A Beam là một dự án 2D tồn tại trong không gian 3D, có nghĩa là nó có thể không thể nhìn thấy từ mọi góc độ.Thuộc tính FaceCamera , khi được đặt thành true, đảm bảo chùm tia luôn hướng về phía CurrentCamera, bất kể hướng của nó.

LightEmission

Đọc Song Song

Xác định đến mức độ màu của chùm tia được pha trộn với màu phía sau nó.Nó nên được đặt trong phạm vi từ 0 đến 1.Một giá trị là 0 sử dụng các chế độ pha trộn bình thường và một giá trị là 1 sử dụng pha trộn thêm.

Tính chất này không nên nhầm lẫn với LightInfluence mà xác định cách chùm tia bị ảnh hưởng bởi ánh sáng môi trường.

Tính chất này không gây ra chùm tia chiếu sáng môi trường.

LightInfluence

Đọc Song Song

Xác định độ mà chùm tia bị ảnh hưởng bởi ánh sáng của môi trường, giữa 0 và 1.Khi 0, chùm sẽ không bị ảnh hưởng bởi ánh sáng của môi trường.Khi 1, nó sẽ bị ảnh hưởng hoàn toàn bởi ánh sáng như một BasePart sẽ là.

Xem thêm LightEmission được xác định đến mức độ mà màu sắc của chùm tia được trộn với màu sắc phía sau nó.

LocalTransparencyModifier

Ẩn
Không Sao Chép
Đọc Song Song

Segments

Đọc Song Song

Thay vì là một đường cong hoàn hảo, một chùm được tạo bởi các phần thẳng.Càng nhiều phân đoạn, càng cao độ phân giải của đường cong.Thuộc tính Segments xác định số lượng phân đoạn thẳng mà chùm được tạo ra, với giá trị mặc định là 10.

Lưu ý rằng các thuộc tính ColorTransparency yêu cầu một số phần nhất định để hiển thị đúng cách.Điều này là do mỗi phân đoạn chỉ có thể hiển thị một sự chuyển tiếp giữa hai màu hoặc độ trong suốt.Do đó, một Beam yêu cầu ít nhất n-1 phân đoạn để hiển thị đúng, nơi n là số keypoint liên quan đến điểm ánh sáng của chùm ColorTransparency .

Texture

ContentId
Đọc Song Song

ID nội dung của kết cấu được hiển thị trên chùm tia.Nếu thuộc tính này không được cài đặt, chùm sẽ được hiển thị dưới dạng một dòng rắn; điều này cũng xảy ra khi texture được đặt vào một ID nội dung không hợp lệ hoặc hình ảnh liên quan đến texture chưa được tải.

Sự xuất hiện của kết cấu có thể được thay đổi thêm bởi các thuộc tính chùm tia khác bao gồm ColorTransparency .

Kích thước của kết cấu được xác định bởi TextureMode , TextureLength , Width0 , và Width1 tính chất.

TextureLength

Đọc Song Song

Đặt chiều dài của kết cấu của chùm, phụ thuộc vào TextureMode .

TextureMode

Đọc Song Song

Tính chất này, cùng với TextureLength , xác định cách lặp lại của một chùm Texture.

Khi được đặt thành Enum.TextureMode.Wrap hoặc Enum.TextureMode.Static, lặp lại kết cấu sẽ bằng tổng chiều dài của chùm tia (bằng studs) chia cho chiều dài của nó TextureLength.

TextureMode diagram with Wrap mode

Khi được đặt thành Enum.TextureMode.Stretch , kết cấu sẽ lặp lại TextureLength lần trên tổng chiều dài của chùm tia.

TextureMode diagram with Stretch mode

TextureSpeed

Đọc Song Song

Xác định tốc độ mà hình ảnh Texture di chuyển dọc theo chùm tia.Khi thuộc tính này là giá trị dương, kết cấu của chùm sẽ di chuyển từ Attachment0 sang Attachment1 .Hướng này có thể đảo ngược bằng cách đặt thuộc tính này thành số âm.

Transparency

Đọc Song Song

Xác định độ trong suốt của chùm trên các phần của nó.Thuộc tính này là NumberSequence, cho phép minh bạch được cấu hình để thay đổi theo chiều dài của chùm tia.

Hãy xem xét các điều sau NumberSequence mà khi áp dụng cho một chùm sẽ cho ra kết quả được vẽ.


local numberSequence = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0), -- Mờ nhạt
NumberSequenceKeypoint.new(0.5, 1), -- Trong suốt
NumberSequenceKeypoint.new(1, 0), -- Mờ nhạt
}
)

Lưu ý rằng độ trong suốt của chùm cũng phụ thuộc vào số Segments .Mỗi phần của chùm chỉ có thể hiển thị một sự chuyển tiếp giữa hai sự minh bạch.Do đó, một chùm sẽ cần có ít nhất n-1 các phần để hiển thị đúng, nơi n là số lượng NumberSequenceKeypoints trong NumberSequence .

Width0

Đọc Song Song

Chiều rộng của chùm tia tại nguồn gốc của nó ( Attachment0 ), bằng studs. Chiều rộng của chùm tia sẽ thay đổi theo hình học thành Width1 studs tại đầu cuối của nó ( Attachment1 ).

Width1

Đọc Song Song

Chiều rộng của chùm tia ở cuối nó ( Attachment1 ), bằng studs. Chiều rộng của chùm tia sẽ thay đổi theo hình học từ Width0 studs ở nguồn gốc của nó ( Attachment0 ).

ZOffset

Đọc Song Song

Khoảng cách, bằng đinh tán, hiển thị chùm là bị lệch so với CurrentCamera .Khi 0, chùm sẽ được hiển thị ở vị trí tiêu chuẩn giữa Attachment0Attachment1 . ZOffset có thể là dương hoặc âm.

Tính năng này đặc biệt hữu ích để tránh "Z‑fighting" khi sử dụng nhiều Beams giữa cùng một Attachments .

Mẫu mã

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

Phương Pháp

SetTextureOffset

()

Sự chênh lệch của chu kỳ kết cấu của một chùm đại diện cho tiến trình hoạt hiệu ứng độngkết cấu của nó.Phương pháp này đặt chênh lệch hiện tại của chu kỳ kết cấu của chùm; do đó, nó có thể được sử dụng để đặt lại chu kỳ bằng cách truyền 0 như là tham số offset.

Ghi chú

  • Tham số được cung cấp offset dự kiến sẽ là một giá trị nằm giữa 0 và 1, nhưng các giá trị lớn hơn có thể được sử dụng.
  • Vòng lặp kết cấu kết thúc tại 0 và 1, có nghĩa là kết cấu ở cùng một vị trí khi offset là 0 hoặc 1.
  • Nếu thuộc tính Texture không được cài đặt, phương pháp này không làm gì cả.
  • Tăng độ trừ sẽ hoạt động theo chiều ngược lại với thuộc tính TextureSpeed, có nghĩa là nó sẽ di chuyển kết cấu theo hướng ngược lại với hướng kết cấu di chuyển khi TextureSpeed lớn hơn 0.

Tham Số

offset: number

Offset mong muốn của chu kỳ kết cấu.

Giá Trị Mặc Định: 0

Lợi Nhuận

()

Sự Kiện