Beam

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Sebuah objek Balok terhubungkan dua Attachments dengan menggambar teksur di antara mereka.

Untuk ditampilkan, sebuah balok harus menjadi keturunan dari Workspace dengan properti Attachment0 dan Attachment1 yang diatur ke Attachments juga turun dari Workspace .

Penampilan balok dapat disesuaikan menggunakan rentang properti yang diuraikan di bawah ini. Lihat juga panduan Balok untuk contoh visual.

Kelengkungan Balok

Balok dikonfigurasi untuk menggunakan kurva Bézier kubus yang terbentuk oleh empat titik kontrol.Ini berarti mereka tidak dibatasi pada garis lurus dan lengkungan balok dapat dimodifikasi dengan mengubah CurveSize0 , CurveSize1 , dan orientasi balok Attachments.

  • P0 — Mulai dari balok; posisi Attachment0.
  • P1 — stud jauh dari , dalam arah positif X .
  • P2 — stud jauh dari , dalam arah negatif X .
  • P3 — Akhir dari balok; posisi Attachment1
Beam curvature diagram

Contoh Kode

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

Rangkuman

Properti

Metode

Properti

Attachment0

Baca Paralel

The Attachment beam berasal dari.Lampiran ini adalah titik kontrol pertama pada kurva Bézier kubus balok; orientasinya, bersama dengan properti CurveSize0, menentukan posisi titik kontrol kedua.Lihat Balok untuk lebih banyak rincian.

Untuk Attachment di mana balok berakhir, lihat Attachment1 .

Attachment1

Baca Paralel

The Attachment beam berakhir di.Lampiran ini adalah titik kontrol keempat dan terakhir pada kurva Bézier kubus balok; orientasinya, bersama dengan properti CurveSize1, menentukan posisi titik kontrol ketiga.Lihat Balok untuk lebih banyak rincian.

Untuk Attachment di mana beam berasal, lihat Attachment0 .

Brightness

Baca Paralel

Skala cahaya yang dipancarkan dari balok ketika LightInfluence kurang dari 1.Properti ini adalah 1 secara default dan dapat disetel ke nomor apa pun dalam rentang 0 hingga 10000.Meningkatkan nilai LightInfluence menurunkan efek nilai properti ini.

Baca Paralel

Menentukan warna balok melintasi Segments.Jika Texture diatur, warna ini akan diterapkan ke tekstur balok.Jika tidak ada Texture yang ditetapkan, Beam akan muncul sebagai garis solid berwarna sesuai dengan properti ini.

Properti ini adalah ColorSequence , memungkinkan warna dikonfigurasi untuk bervariasi di sepanjang panjang balok.Pertimbangkan berikut ColorSequence yang, ketika diterapkan ke sebuah balok, akan menghasilkan hasil yang digambarkan.


local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- Merah
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Biru Muda
ColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Ungu
}
)

Perhatikan warna balok juga tergantung pada jumlah Segments yang dimiliki Beam.Setiap segmen dari balok hanya dapat menunjukkan transisi antara dua warna.Oleh karena itu, Beam akan perlu memiliki setidaknya n-1 segmen agar warna dapat ditampilkan dengan benar, di mana n adalah jumlah ColorSequenceKeypoints di ColorSequence.

CurveSize0

Baca Paralel

Menentukan, bersama dengan Attachment0, posisi titik kontrol kedua di kurva Bézier balok. Lihat Beams untuk lebih banyak rincian.

Posisi titik ini dapat ditentukan oleh persamaan berikut:


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

CurveSize1

Baca Paralel

Menentukan, bersama dengan Attachment1, posisi titik kontrol ketiga di kurva Bézier balok. Lihat Beams untuk lebih banyak rincian.

Posisi titik ini dapat ditentukan oleh persamaan berikut:


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

Enabled

Baca Paralel

Menentukan apakah beam terlihat atau tidak.

Ketika properti ini diatur ke false, Segments balok tidak akan ditampilkan.

FaceCamera

Baca Paralel

A Beam adalah proyeksi 2D yang ada di ruang 3D, artinya mungkin tidak terlihat dari setiap sudut.Properti Kamera Wajah saat diatur ke true memastikan bahwa balok selalu menghadap CurrentCamera , terlepas dari orientasinya.

LightEmission

Baca Paralel

Menentukan sejauh mana warna balok tercampur dengan warna di belakangnya.Ini harus diatur dalam rentang 0 hingga 1.Nilai 0 menggunakan mode blending normal dan nilai 1 menggunakan blending tambahan.

Properti ini tidak boleh dikacaukan dengan LightInfluence yang menentukan bagaimana balok dipengaruhi oleh cahaya lingkungan.

Properti ini tidak tidak menyebabkan balok menyalaikan lingkungan.

LightInfluence

Baca Paralel

Menentukan tingkat di mana beam dipengaruhi oleh pencahayaan lingkungan, dikunci antara 0 dan 1.Ketika 0, beam tidak akan terpengaruh oleh pencahayaan lingkungan.Ketika 1, itu akan sepenuhnya terpengaruh oleh pencahayaan sebagai BasePart akan.

Lihat juga LightEmission yang menentukan sejauh mana warna balok tercampur dengan warna di belakangnya.

LocalTransparencyModifier

Tersembunyi
Tidak Direplikasi
Baca Paralel

Segments

Baca Paralel

Daripada menjadi kurva sempurna, sebuah balok terdiri dari segmen lurus.Semakin banyak segmen, semakin tinggi resolusi kurva.Properti Segmen menentukan berapa banyak segmen lurus yang terdiri dari beam, dengan nilai default 10.

Perhatikan bahwa properti Color dan Transparency memerlukan jumlah segmen tertentu untuk ditampilkan dengan benar.Ini karena setiap segmen hanya dapat menunjukkan transisi antara dua warna atau transparansi.Oleh karena itu, Beam memerlukan setidaknya n-1 segmen untuk ditampilkan dengan benar, di mana n adalah jumlah titik kunci yang terkait dengan beam Color dan Transparency.

Texture

ContentId
Baca Paralel

ID konten dari tekstur yang akan ditampilkan di balok.Jika properti ini tidak ditetapkan, balok akan ditampilkan sebagai garis solid; ini juga terjadi ketika teksur diatur ke ID konten yang tidak valid atau gambar yang terkait dengan teksur belum dimuat.

Penampilan tekstur dapat diubah lebih lanjut oleh properti balok lain termasuk Color dan Transparency .

Skala tekstur ditentukan oleh TextureMode , TextureLength , Width0 , dan Width1 properti.

TextureLength

Baca Paralel

Mengatur panjang tekstur balok, tergantung pada TextureMode.

TextureMode

Baca Paralel

Properti ini, bersama dengan TextureLength , menentukan bagaimana sebuah balok Texture diulang.

Ketika diatur ke Enum.TextureMode.Wrap atau Enum.TextureMode.Static , ulangan tekstur akan sama dengan panjang keseluruhan balok (dalam stud) dibagi dengan TextureLength nya.

TextureMode diagram with Wrap mode

Ketika diatur ke Enum.TextureMode.Stretch , tekstur akan diulang TextureLength kali di seluruh panjang balok.

TextureMode diagram with Stretch mode

TextureSpeed

Baca Paralel

Menentukan kecepatan di mana gambar Texture bergerak di sepanjang balok.Ketika properti ini adalah nilai positif, tekstur balok akan bergerak dari Attachment0 ke Attachment1 .Arah ini dapat dbalik dengan mengatur properti ini ke angka negatif.

Transparency

Baca Paralel

Menentukan transparansi balok melintasi segmennya.Properti ini adalah NumberSequence , memungkinkan transparansi dikonfigurasi untuk bervariasi di sepanjang panjang balok.

Pertimbangkan berikut NumberSequence yang, saat diterapkan ke sebuah balok, akan menghasilkan hasil yang digambarkan.


local numberSequence = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0), -- Tak Terlihat
NumberSequenceKeypoint.new(0.5, 1), -- Transparan
NumberSequenceKeypoint.new(1, 0), -- Tak Terlihat
}
)

Perhatikan bahwa transparansi balok juga tergantung pada jumlah Segments .Setiap segmen dari balok hanya dapat menunjukkan transisi antara dua transparansi.Oleh karena itu, sebuah balok perlu memiliki setidaknya n-1 segmen untuk ditampilkan dengan benar, di mana n adalah jumlah NumberSequenceKeypoints di NumberSequence .

Width0

Baca Paralel

Lebar balok pada asalnya ( Attachment0 ), dalam stud. Lebar balok akan berubah secara lineer menjadi Width1 stud di akhirnya ( Attachment1 ).

Width1

Baca Paralel

Lebar balok di ujungnya ( Attachment1 ), dalam stud. Lebar balok akan berubah secara lineer dari Width0 stud di asalnya ( Attachment0 ).

ZOffset

Baca Paralel

Jarak, dalam stud, tampilan beam diimbangkan relatif terhadap CurrentCamera .Ketika 0, balok akan ditampilkan di posisi standarnya antara Attachment0 dan Attachment1. ZOffset bisa positif atau negatif.

Properti ini sangat berguna untuk menghindari "Z‑fighting" saat menggunakan beberapa Beams antara yang sama Attachments.

Contoh Kode

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

Metode

SetTextureOffset

()

Offset dari siklus tekstur balok mewakili kemajuan animasi teksturnya.Metode ini menetapkan offset saat ini dari siklus tekstur balok; oleh karena itu, dapat digunakan untuk mengatur ulang siklus dengan melewati 0 sebagai parameter offset.

Catatan

  • Parameter yang diberikan offset diharapkan menjadi nilai antara 0 dan 1, tetapi nilai yang lebih besar dapat digunakan.
  • Siklus tekstur berakhir pada 0 dan 1, artinya tekstur berada di posisi yang sama saat offset berada pada 0 atau 1.
  • Jika properti Texture tidak atur, metode ini tidak melakukan apa-apa.
  • Meningkatkan offset akan bertindak dalam arah terbalik ke properti TextureSpeed, yang berarti akan memindahkan tekstur ke arah yang berlawanan dengan tekstur yang dianimasikan saat TextureSpeed lebih besar dari 0.

Parameter

offset: number

Offset yang diinginkan dari siklus tekstur.

Nilai Default: 0

Memberikan nilai

()

Acara