Texture는 part 또는 union의 모든 면에 배치할 수 있는 이미지로, 표면의 크기에 따라 수평 및 수직으로 반복됩니다. 반면에 Decal은 part 또는 union의 표면 영역에 맞게 늘어나는 이미지입니다. Texture 또는 Decal 객체를 part 또는 union에 추가한 후에는 다음을 수행할 수 있습니다:
텍스처 또는 데칼의 Color3 속성을 변경하여 RGB 색상 코드를 사용하여 색조를 설정합니다.
텍스처 또는 데칼의 Transparency 속성을 기본값 0(완전히 보임)과 1(보이지 않음) 사이의 값으로 변경합니다.




텍스처 또는 데칼 만들기
텍스처 또는 데칼을 만들려면 Texture 또는 Decal 객체를 part 또는 union에 추가해야 합니다. 텍스처와 데칼 이미지를 가져와서 스튜디오에서 게임 간에 사용하고, 배포하여 Creator Store에 올릴 수 있습니다. 이미지를 가져오면 스튜디오는 고유한 자산 ID를 부여합니다.
part 또는 union에 텍스처 또는 데칼을 추가하려면:
ColorMapContent 속성을 선택하고 다음 방법 중 하나로 이미지를 적용합니다:
- 이전에 업로드한 텍스처 또는 데칼을 선택합니다.
- 필드에 자산 ID를 입력합니다.
텍스처 사용자 정의
데칼과 달리 텍스처는 원본 이미지를 스케일, 오프셋 및 애니메이션할 수 있는 추가 기능을 제공합니다.
텍스처 크기 조정
part의 크기는 텍스처에 영향을 미치지 않습니다. 대신, part의 크기를 조정하면 텍스처가 반복되는 횟수만 증가하거나 감소합니다.
StudsPerTileU 및 StudsPerTileV 속성은 각 "타일"의 크기를 스터드 단위로 결정합니다. StudsPerTileU는 텍스처의 수평 크기를 결정하고 StudsPerTileV는 텍스처의 수직 크기를 결정합니다.

텍스처 오프셋
텍스처의 위치를 보다 세밀하게 제어하고 싶다면 OffsetStudsU(수평) 및 OffsetStudsV(수직) 속성을 조정하여 텍스처를 오프셋합니다. 이는 애니메이션에도 유용합니다.

텍스처 애니메이션
TweenService를 사용하여 OffsetStudsU 및 StudsPerTileV와 같은 텍스처 속성을 트윈하여 애니메이션 효과를 얻을 수 있습니다. 예를 들어, 두 개의 안개 텍스처를 하나의 컨테이너에 적용하고 다음 스크립트로 애니메이션을 적용하면 겹쳐지는 움직이는 안개의 효과를 얻을 수 있습니다.
local TweenService = game:GetService("TweenService")
local texture1 = script.Parent.Texture1
local texture2 = script.Parent.Texture2
local tweenInfo1 = TweenInfo.new(8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1)
local tween1 = TweenService:Create(texture1, tweenInfo1, {OffsetStudsV=50})
local tweenInfo2 = TweenInfo.new(7, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true)
local tween2 = TweenService:Create(texture2, tweenInfo2, {OffsetStudsU=50, StudsPerTileU=55, StudsPerTileV=45})
tween1:Play()
tween2:Play()텍스처 스트리밍
텍스처 스트리밍은 거리와 카메라 뷰에 따라 텍스처를 동적으로 로드하여 더 많은 자유롭게 텍스처를 사용할 수 있게 해주며, 디바이스에 맞춰 스케일링하는 걱정을 덜어줍니다. 엔진은 먼저 기본 품질의 텍스처를 중요도 순으로 로드한 다음 디바이스의 가용 메모리까지 각 텍스처의 품질을 점진적으로 높입니다. 텍스처 스트리밍은 자동으로 활성화되므로 이를 통해 혜택을 받기 위해 별도의 작업을 수행할 필요가 없습니다.

이점
- 더 빠른 지연 시간과 더 작은 다운로드: 텍스처는 기본 품질로 거의 즉시 나타나고, 엔진은 필요한 세부 사항만 다운로드하여 전송 중 및 로컬 디스크 캐시에 압축합니다.
- 중요한 곳에서 더 높은 품질: 엔진은 각 객체가 차지하는 화면 크기와 같은 중요성을 지속적으로 추정하고, 이러한 텍스처에서 메모리 예산을 사용하여 가장 두드러진 객체가 높은 세부 정보를 얻도록 합니다.
- 메모리 부족으로 인한 충돌 감소: 엔진이 메모리 예산을 초과하지 않도록 유지하고 메모리 부족 시 텍스처 품질을 낮출 수 있기 때문에, 플레이어가 텍스처 메모리 급증으로 충돌할 가능성이 훨씬 줄어듭니다.
텍스처 스트리밍은 MeshPart(스킨과 비스킨), SurfaceAppearance, Texture, Decal, MaterialVariant, Beam, ParticleEmitter 및 PartOperation과 BasePart 인스턴스에 적용된 기본 재료와 함께 작동합니다.
모범 사례
- 배치 가능 파트에 적용된 아틀라스를 제외하고는 텍스처 아틀라스보다 고유하고 개별적인 텍스처를 선호합니다. 아틀라스의 한 텍스처에 대해 높은 해상도를 요청하면 전체 아틀라스가 해당 해상도로 스트리밍됩니다.
- UV 맵핑된 메시에서 거의 균일한 텍셀 밀도를 사용하여 엔진이 각 텍스처에 대해 최적의 해상도를 선택할 수 있도록 합니다.
- 텍스처 스트리밍을 아직 지원하지 않는 인스턴스 유형에 대해서는 여전히 텍스처 메모리를 주의 깊게 관리해야 합니다.




