Beam

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

A 광선 개체는 텍스처를 그려서 그 사이에 두 개의 Attachments를 연결합니다.

표시하려면 빔이 Workspace 와 그 속성 Attachment0Attachment1 을 설정하여 Attachments 에서 내려오고 또한 Workspace 에서 내려오는 조상인 것이어야 합니다.

빔의 모양은 아래에 설명된 속성 범위를 사용하여 사용자 지정할 수 있습니다. 또한 시각적 예제에 대한 가이드도 참조하십시오.

광선 곡선

광선은 4개의 제어 지점으로 형성된 큐빅 Bézier 곡선을 사용하도록 구성됩니다.즉, 직선에 제한되지 않고 빔의 곡선은 CurveSize0 , CurveSize1 및 빔의 방향 Attachments 을 변경하여 수정할 수 있습니다.

Beam curvature diagram

코드 샘플

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

요약

속성

메서드

속성

Attachment0

병렬 읽기

Attachment 광선이 발생하는 원천.이 부착물은 빔의 큐베리 곡선의 첫 번째 제어점이며, 해당 속성과 함께 CurveSize0 속성은 두 번째 제어점의 위치를 결정합니다.자세한 내용은 광선을 참조하십시오.

광선이 끝나는 곳의 Attachment에 대해서는 Attachment1를 참조하십시오.

Attachment1

병렬 읽기

Attachment 광선이 끝나는 곳.이 부착물은 빔의 큐빅 베지어 곡선의 네 번째이자 마지막 제어 지점입니다; 그 방향은 CurveSize1 속성과 함께 세 번째 제어 지점의 위치를 결정합니다.자세한 내용은 광선을 참조하십시오.

광선이 발생하는 위치인 Attachment에 대해서는 Attachment0를 참조하십시오.

Brightness

병렬 읽기

LightInfluence)가 1보다 작을 때 발광되는 빔의 크기를 확장합니다. Scales the light emitted from the beam when is less than 1.이 속성은 기본적으로 1이며 0에서 10000 범위 내의 모든 숫자로 설정할 수 있습니다.LightInfluence의 값을 증가시키면 이 속성의 값의 영향이 줄어듭니다.

병렬 읽기

그 내에서 빔의 색상을 결정합니다 Segments.Texture가 설정되면 이 색상이 빔의 텍스처에 적용됩니다.Texture 가 설정되지 않으면, Beam 는 이 속성에 따라 색상이 지정된 단단한 선으로 나타납니다.

이 속성은 ColorSequence , 색상이 빔의 길이에 따라 변경되도록 구성할 수 있습니다.다음 ColorSequence를 고려하십시오, 이는 빔에 적용되면 그림에 표시된 결과를 얻을 수 있습니다.


local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- 빨강
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- 시안
ColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- 보라
}
)

빔의 색상은 또한 Segments의 수에 따라 달라집니다.The beam's coloration also depends on the number of Beam the 가지고 있는지.빔의 각 세그먼트는 두 색상 사이의 전환만 표시할 수 있습니다.따라서 색상이 올바르게 표시되려면 에 최소 개의 세그먼트가 있어야 하며, 는 에서의 개의 수입니다.

CurveSize0

병렬 읽기

함께 Attachment0 , 광선의 베지어 곡선에서 두 번째 제어점의 위치를 결정합니다. 자세한 내용은 광선 을 참조하십시오.

이 점의 위치는 다음 방정식으로 결정할 수 있습니다:


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

CurveSize1

병렬 읽기

함께 Attachment1 , 광선의 베지어 곡선에서 세 번째 제어점의 위치를 결정합니다. 자세한 내용은 광선 을 참조하십시오.

이 점의 위치는 다음 방정식으로 결정할 수 있습니다:


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

Enabled

병렬 읽기

비빔이 보이는지 여부를 결정합니다.

이 속성이 false로 설정되면 빔의 Segments가 표시되지 않습니다.

FaceCamera

병렬 읽기

A Beam 는 3D 공간에 존재하는 2D 프로젝션으로, 모든 각도에서 볼 수 없을 수 있습니다. 얼굴 카메라 속성, 설정되면 true , 방향에 관계없이 항상 광선이 CurrentCamera 에 향하도록 합니다.

LightEmission

병렬 읽기

빔의 색이 뒤에 있는 색과 어느 정도 섞여 있는지 결정합니다.범위는 0에서 1 사이여야 합니다.0의 값은 일반 블렌딩 모드를 사용하고 1의 값은 더하기 블렌딩을 사용합니다.

이 속성은 환경 조명에 의해 빔이 영향을 받는 방식을 결정하는 LightInfluence와 혼동되어서는 안됩니다.

이 속성은 환경을 조명하도록 광선을 발생시키지 않습니다.

LightInfluence

병렬 읽기

빔이 환경의 조명에 영향을 받는 정도를 0과 1 사이에서 결정합니다.0일 때 빔은 환경의 조명에 영향을 받지 않습니다.1일 때, 조명으로 인해 완전히 영향을 받을 것입니다. BasePart처럼.

또한 보기 LightEmission 광선의 색이 뒤에 있는 색과 어느 정도 혼합되는지 지정하는 것을 참조하십시오.

LocalTransparencyModifier

숨김
복제되지 않음
병렬 읽기

Segments

병렬 읽기

완벽한 곡선이 아니라, 빔은 직선 세그먼트로 구성됩니다.세그먼트가 많을수록 곡선의 해상도가 높아집니다. 세그먼트 속성은 광선이 10의 기본값으로 구성된 얼마나 많은 직선 세그먼트로 구성되는지 설정합니다.

ColorTransparency 속성은 올바르게 표시하려면 특정 수의 세그먼트가 필요하다는 점에 유의하십시오.이는 각 세그먼트가 두 색상이나 투명도 간의 전환만 표시할 수 있기 때문입니다.따라서 최소 Beam 요소를 표시하려면 최소 n-1 세그먼트가 필요하며, n 는 빔의 ColorTransparency와 연결된 키포인트의 수입니다.

Texture

ContentId
병렬 읽기

광선에 표시될 텍스처의 콘텐츠 ID.이 속성이 설정되지 않으면 빔이 단단한 선으로 표시됩니다; 이는 텍스처에 유효하지 않은 콘텐츠 ID가 설정되거나 텍스처와 관련된 이미지가 아직 로드되지 않은 경우에도 발생합니다.

텍스처의 모양은 ColorTransparency와 같은 다른 빔 속성으로 더 수정할 수 있습니다.

텍스처의 크기 조정은 TextureMode, TextureLength, Width0Width1 속성에 의해 결정됩니다.

TextureLength

병렬 읽기

광선의 텍스처 길이를 TextureMode 설정합니다.

TextureMode

병렬 읽기

이 속성과 함께 TextureLength , 광선의 Texture 반복 방법을 결정합니다.

Enum.TextureMode.Wrap 또는 Enum.TextureMode.Static 로 설정되면 텍스처 반복이 빔의 전체 길이(스터드)를 나누어 그 길이가 됩니다(TextureLength ).

TextureMode diagram with Wrap mode

Enum.TextureMode.Stretch 로 설정되면 텍스처가 광선의 전체 길이에 걸쳐 TextureLength 번 반복됩니다.

TextureMode diagram with Stretch mode

TextureSpeed

병렬 읽기

Texture 이미지가 빔을 따라 이동하는 속도를 결정합니다.이 속성이 양의 값일 때 빔의 텍스처는 Attachment0 에서 Attachment1 로 이동합니다.이 방향은 이 속성을 음수로 설정하여 반전할 수 있습니다.

Transparency

병렬 읽기

세그먼트 전체에서 빔의 투명도를 결정합니다.이 속성은 NumberSequence , 빔의 길이에 따라 투명도를 구성할 수 있도록 허용합니다.

다음 NumberSequence를 고려하십시오, 이는 빔에 적용되면 그림에 표시된 결과를 얻을 수 있습니다.


local numberSequence = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0), -- 불투명
NumberSequenceKeypoint.new(0.5, 1), -- 투명
NumberSequenceKeypoint.new(1, 0), -- 불투명
}
)

빔의 투명도는 또한 Segments의 수에 따라 달라집니다.빔의 각 세그먼트는 두 투명도 간의 전환만 표시할 수 있습니다.따라서 빔에는 적어도 세그먼트가 있어야 올바르게 표시되고, 는 내부의 수입니다.

Width0

병렬 읽기

원점의 빔 너비(Attachment0), 스터드 단위입니다. 빔의 너비는 끝에서 선형적으로 Width1 스터드로 변경됩니다(Attachment1).

Width1

병렬 읽기

끝에 있는 빔의 너비( Attachment1 ), 스터드 단위입니다. 빔의 너비는 원점에서 Width0 스터드로 선형적으로 변경됩니다( Attachment0 ).

ZOffset

병렬 읽기

스터드 단위의 거리에서, 빔 디스플레이는 CurrentCamera에 대해 오프셋됩니다.0일 때 빔은 Attachment0Attachment1 사이의 표준 위치에 표시됩니다. ZOffset 는 양이나 음일 수 있습니다.

이 속성은 동일한 Attachments 사이에서 여러 개의 Beams를 사용할 때 "Z‑전투"를 피하는 데 특히 유용합니다.

코드 샘플

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

메서드

SetTextureOffset

()

빔의 텍스처 사이클 오프셋은 텍스처 애니메이션의 진행도를 나타냅니다.이 메서드는 빔의 텍스처 사이클의 현재 오프셋을 설정하므로, 를 파라미터로 전달하여 사이클을 재설정할 수 있습니다.

노트

  • 주어진 offset 매개 변수는 0과 1 사이의 값이 예상되지만 더 큰 값을 사용할 수 있습니다.
  • 텍스처 사이클은 0과 1에서 래핑되며, 오프셋이 0이나 1일 때 텍스처가 동일한 위치에 있음을 의미합니다.
  • Texture 속성이 설정되지 않으면 이 메서드는 아무 것도 하지 않습니다.
  • 오프셋을 증가하면 TextureSpeed 속성의 반대 방향으로 작동하여 텍스처가 TextureSpeed가 0보다 큰 경우 텍스처가 반대 방향으로 이동합니다.

매개 변수

offset: number

텍스처 사이클의 원하는 오프셋.

기본값: 0

반환

()

이벤트