Aprender
Clase de motor
Terrain
No creable

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


Resumen
Métodos
AutowedgeCells(region: Region3int16):()
Obsoleto
Clear():()
ConvertToSmooth():()
Obsoleto
FillBall(center: Vector3,radius: number,material: Enum.Material):()
FillBlock(cframe: CFrame,size: Vector3,material: Enum.Material):()
FillCylinder(cframe: CFrame,height: number,radius: number,material: Enum.Material):()
FillRegion(region: Region3,resolution: number,material: Enum.Material):()
FillWedge(cframe: CFrame,size: Vector3,material: Enum.Material):()
GetCell(x: number,y: number,z: number):Tuple
Obsoleto
PasteRegion(region: TerrainRegion,corner: Vector3int16,pasteEmptyCells: boolean):()
ReadVoxelChannels(region: Region3,resolution: number,channelIds: {any}):Dictionary
ReadVoxels(region: Region3,resolution: number):Tuple
ReplaceMaterial(region: Region3,resolution: number,sourceMaterial: Enum.Material,targetMaterial: Enum.Material):()
SetCell(x: number,y: number,z: number,material: Enum.CellMaterial,block: Enum.CellBlock,orientation: Enum.CellOrientation):()
Obsoleto
SetCells(region: Region3int16,material: Enum.CellMaterial,block: Enum.CellBlock,orientation: Enum.CellOrientation):()
Obsoleto
SetWaterCell(x: number,y: number,z: number,force: Enum.WaterForce,direction: Enum.WaterDirection):()
Obsoleto
WriteVoxelChannels(region: Region3,resolution: number,channels: Dictionary):()
WriteVoxels(region: Region3,resolution: number,materials: {any},occupancy: {any}):()
Miembros heredados

Referencia API
Propiedades
Decoration
No programable
Leer paralelo
Capacidades: Environment
Terrain.Decoration:boolean

GrassLength
No programable
Leer paralelo
Capacidades: Environment
Terrain.GrassLength:number

IsSmooth
Obsoleto

MaterialColors
No programable
Leer paralelo
Capacidades: Environment
Terrain.MaterialColors:BinaryString

MaxExtents
Solo lectura
No replicado
Leer paralelo
Capacidades: Environment
Terrain.MaxExtents:Region3int16

WaterColor
Leer paralelo
Capacidades: Environment
Terrain.WaterColor:Color3

WaterReflectance
Leer paralelo
Capacidades: Environment
Terrain.WaterReflectance:number

WaterTransparency
Leer paralelo
Capacidades: Environment
Terrain.WaterTransparency:number

WaterWaveSize
Leer paralelo
Capacidades: Environment
Terrain.WaterWaveSize:number

WaterWaveSpeed
Leer paralelo
Capacidades: Environment
Terrain.WaterWaveSpeed:number

Métodos
AutowedgeCell
Obsoleto

AutowedgeCells
Obsoleto

CellCenterToWorld
Capacidades: Environment
Terrain:CellCenterToWorld(
Parámetros
Devuelve

CellCornerToWorld
Capacidades: Environment
Terrain:CellCornerToWorld(
Parámetros
Devuelve

Clear
Capacidades: Environment
Terrain:Clear():()
Devuelve
()

ConvertToSmooth
Obsoleto

CopyRegion
Capacidades: Environment
Terrain:CopyRegion(region:Region3int16):TerrainRegion
Parámetros
Muestras de código
Terrain:CopyRegion()
local terrainRegion = workspace.Terrain:CopyRegion(workspace.Terrain.MaxExtents)
workspace.Terrain:Clear()
task.wait(5)
workspace.Terrain:PasteRegion(terrainRegion, workspace.Terrain.MaxExtents.Min, true)

CountCells
Capacidades: Environment
Terrain:CountCells():number
Devuelve

FillBall
Capacidades: Environment
Terrain:FillBall(
center:Vector3, radius:number, material:Enum.Material
):()
Parámetros
center:Vector3
radius:number
material:Enum.Material
Devuelve
()

FillBlock
Capacidades: Environment
Terrain:FillBlock(
cframe:CFrame, size:Vector3, material:Enum.Material
):()
Parámetros
cframe:CFrame
size:Vector3
material:Enum.Material
Devuelve
()

FillCylinder
Capacidades: Environment
Terrain:FillCylinder(
cframe:CFrame, height:number, radius:number, material:Enum.Material
):()
Parámetros
cframe:CFrame
height:number
radius:number
material:Enum.Material
Devuelve
()

FillRegion
Capacidades: Environment
Terrain:FillRegion(
region:Region3, resolution:number, material:Enum.Material
):()
Parámetros
region:Region3
resolution:number
material:Enum.Material
Devuelve
()

FillWedge
Capacidades: Environment
Terrain:FillWedge(
cframe:CFrame, size:Vector3, material:Enum.Material
):()
Parámetros
cframe:CFrame
size:Vector3
material:Enum.Material
Devuelve
()

GetCell
Obsoleto

GetMaterialColor
Escribir paralelo
Capacidades: Environment
Terrain:GetMaterialColor(material:Enum.Material):Color3
Parámetros
material:Enum.Material
Devuelve

GetWaterCell
Obsoleto

PasteRegion
Capacidades: Environment
Terrain:PasteRegion(
region:TerrainRegion, corner:Vector3int16, pasteEmptyCells:boolean
):()
Parámetros
pasteEmptyCells:boolean
Devuelve
()
Muestras de código
Crear, Copiar y Pegar Terreno
local Terrain = workspace.Terrain
-- Crea una región de terreno simple
local initialRegion = Region3.new(Vector3.zero, Vector3.one * 10)
Terrain:FillRegion(initialRegion, 4, Enum.Material.Grass)
-- Copia la región
local copyRegion = Region3int16.new(Vector3int16.new(0, 0, 0), Vector3int16.new(10, 10, 10))
local copiedRegion = Terrain:CopyRegion(copyRegion)
-- Define dónde pegar la región
local newRegionCorner = Vector3int16.new(5, 0, 0)
-- Pega la región
Terrain:PasteRegion(copiedRegion, newRegionCorner, true)

ReadVoxelChannels
Escribir paralelo
Capacidades: Environment
Terrain:ReadVoxelChannels(
region:Region3, resolution:number, channelIds:{any}
Parámetros
region:Region3
resolution:number
channelIds:{any}
Devuelve
Muestras de código
Terreno:LeerCanalesVoxeles()
local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local function printRegion(terrain, region)
local channelOutput = terrain:ReadVoxelChannels(region, 4, { "OcupaciónSólida", "MaterialSólido", "OcupaciónLíquida" })
local size = channelOutput.Size
for x = 1, size.X do
for y = 1, size.Y do
for z = 1, size.Z do
print(
("(%2i, %2i, %2i): %.2f %s %.2f"):format(
x,
y,
z,
channelOutput.SolidOccupancy[x][y][z],
channelOutput.SolidMaterial[x][y][z].Name,
channelOutput.LiquidOccupancy[x][y][z]
)
)
end
end
end
end
local region = Region3.new(REGION_START, REGION_END)
printRegion(workspace.Terrain, region)

ReadVoxels
Escribir paralelo
Capacidades: Environment
Terrain:ReadVoxels(
region:Region3, resolution:number
Parámetros
region:Region3
resolution:number
Devuelve
Muestras de código
Terreno:LeerVóxeles()
local REGION_START = Vector3.new(-20, -20, -20)
local REGION_END = Vector3.new(20, 20, 20)
local function printRegion(terrain, region)
local materials, occupancies = terrain:ReadVoxels(region, 4)
local size = materials.Size -- Igual que occupancies.Size
for x = 1, size.X, 1 do
for y = 1, size.Y, 1 do
for z = 1, size.Z, 1 do
print(("(%2i, %2i, %2i): %.2f %s"):format(x, y, z, occupancies[x][y][z], materials[x][y][z].Name))
end
end
end
end
local region = Region3.new(REGION_START, REGION_END)
printRegion(workspace.Terrain, region)

ReplaceMaterial
Capacidades: Environment
Terrain:ReplaceMaterial(
region:Region3, resolution:number, sourceMaterial:Enum.Material, targetMaterial:Enum.Material
):()
Parámetros
region:Region3
resolution:number
sourceMaterial:Enum.Material
targetMaterial:Enum.Material
Devuelve
()
Muestras de código
Terreno:ReemplazarMaterial
local terrain = workspace.Terrain
local region = Region3.new(Vector3.new(-20, -20, -20), Vector3.new(20, 20, 20))
local resolution = 4
local materialToReplace = Enum.Material.Grass
local replacementMaterial = Enum.Material.Asphalt
terrain:ReplaceMaterial(region, resolution, materialToReplace, replacementMaterial)

SetCell
Obsoleto

SetCells
Obsoleto

SetMaterialColor
Capacidades: Environment
Terrain:SetMaterialColor(
material:Enum.Material, value:Color3
):()
Parámetros
material:Enum.Material
value:Color3
Devuelve
()

SetWaterCell
Obsoleto

WorldToCell
Capacidades: Environment
Terrain:WorldToCell(position:Vector3):Vector3
Parámetros
position:Vector3
Devuelve

WorldToCellPreferEmpty
Capacidades: Environment
Terrain:WorldToCellPreferEmpty(position:Vector3):Vector3
Parámetros
position:Vector3
Devuelve

WorldToCellPreferSolid
Capacidades: Environment
Terrain:WorldToCellPreferSolid(position:Vector3):Vector3
Parámetros
position:Vector3
Devuelve

WriteVoxelChannels
Capacidades: Environment
Terrain:WriteVoxelChannels(
region:Region3, resolution:number, channels:Dictionary
):()
Parámetros
region:Region3
resolution:number
channels:Dictionary
Devuelve
()
Muestras de código
Terreno:EscribirCanalesDeVoxel()
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(64, 32, 64))
local RESOLUTION = 4
local OCC_EPSILON = 1 / 256
local function generateRandomTerrainInRegion(regionInput)
local region = regionInput:ExpandToGrid(4)
local size = region.Size / 4
local solidMaterials = {}
local solidOccupancies = {}
local waterOcc = {}
for x = 1, size.X do
table.insert(solidMaterials, {})
table.insert(solidOccupancies, {})
table.insert(waterOcc, {})
for y = 1, size.Y do
table.insert(solidMaterials[x], {})
table.insert(solidOccupancies[x], {})
table.insert(waterOcc[x], {})
for z = 1, size.Z do
local mat = if math.random() < 0.5 then Enum.Material.Air else Enum.Material.Sand
local occ = 0
local water = math.random()
if mat == Enum.Material.Sand then
occ = math.random() / 2 + 0.5
if occ > 1 - OCC_EPSILON then
water = 0 -- Los sólidos no pueden contener agua
end
else
occ = 0
end
table.insert(solidMaterials[x][y], mat)
table.insert(solidOccupancies[x][y], occ)
table.insert(waterOcc[x][y], water)
end
end
end
return { SolidMaterial = solidMaterials, SolidOccupancy = solidOccupancies, LiquidOccupancy = waterOcc }
end
local regionContent = generateRandomTerrainInRegion(region)
workspace.Terrain:WriteVoxelChannels(region, 4, regionContent)

WriteVoxels
Capacidades: Environment
Terrain:WriteVoxels(
region:Region3, resolution:number, materials:{any}, occupancy:{any}
):()
Parámetros
region:Region3
resolution:number
materials:{any}
occupancy:{any}
Devuelve
()
Muestras de código
Terreno:WriteVoxels()
local terrain = workspace.Terrain
local resolution = 4
local region = Region3.new(Vector3.new(0, 0, 0), Vector3.new(16, 28, 20)):ExpandToGrid(resolution)
local materials = {
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.Sand,
Enum.Material.Sand,
Enum.Material.Sand,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Snow, Enum.Material.Air },
},
{
{
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
Enum.Material.CrackedLava,
},
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock, Enum.Material.Rock },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand, Enum.Material.Sand },
{ Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud, Enum.Material.Mud },
{ Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air, Enum.Material.Air },
},
}
local occupancies = {
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 0.5, 0.5, 0.5, 0.5 },
{ 0, 0, 0, 0, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 1, 1, 1, 0.5 },
{ 0, 1, 1, 1, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 1, 1, 1, 0.5 },
{ 0, 1, 1, 1, 0 },
},
{
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 0.5, 0.5, 0.5, 0.5, 0.5 },
{ 0, 0, 0, 0, 0 },
},
}
terrain:WriteVoxels(region, resolution, materials, occupancies)

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.