Modelado de sólidos

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

El modelado sólido es el proceso de unir partes de formas únicas para formar formas más complejas conocidas como uniones o intersecciones . Puede realizar cuatro operaciones de modelado sólido utilizando las herramientas dentro de la pestaña Modelo.

Studio's Model tab with the Solid Modeling tools highlighted.
HerramientaAtajoDescripción
UniónShiftCtrlG (Windows)
ShiftG (Mac)
Une dos o más partes para formar una sola unión sólida.
IntersecciónShiftCtrlI (Windows)
ShiftI (Mac)
Intersección de partes superpuestas en una única intersección sólida.
NegarShiftCtrlN (Windows)
ShiftN (Mac)
Negar partes, útil para hacer agujeros e indentaciones.
SepararShiftCtrlU (Windows)
ShiftU (Mac)
Separa la unión o intersección en sus partes individuales.

Piezas de Unión

La herramienta Unión une dos o más partes para formar un solo sólido UnionOperation . Por defecto, una nueva unión respeta la Color propiedad de cada una de sus partes, aunque puede habilitar su UsePartColor propiedad para cambiar la unión completa a un color específico.

Block and cylinder parts overlapping

Para combinar partes en una unión:

  1. Selecciona todas las partes para unirlas.

  2. Haga clic en el botón Unión . Todas las partes se combinan en un sólido UnionOperation con el nombre Unión .

    Union tool indicated in Model tab

Partes de intersección

La herramienta Intersección interseca partes superpuestas en un solo sólido IntersectOperation . Por defecto, los colores de la cara de la intersección resultante se toman prestados de la propiedad Color de las partes originales, aunque puede habilitar su propiedad UsePartColor para cambiar la intersección completa a un color específico.

Block and cylinder parts overlapping

Para interseccionar partes superpuestas:

  1. Selecciona todas las partes para interseccionar.

  2. Haga clic en el botón Intersección . Todas las partes se combinan en un sólido IntersectOperation con el nombre Intersección .

    Intersect tool indicated in Model tab

Negando Partes

La herramienta Negar niega una parte para que cuando esté unida a otra parte, la forma de la parte negada sea restada de la otra parte.

Negated block overlapping a cylinder

Para restar una parte de otras partes superpuestas:

  1. Selecciona la parte que te gustaría anular de otras partes.

  2. Haga clic en Negar . La parte se convierte en NegateOperation con el nombre NegativePart y se vuelve rosa y translúcida para indicar su estado.

    Negate tool indicated in Model tab
  3. Seleccione tanto la parte negativa como las partes de las que desea restarla.

  4. Haga clic en Unión . La parte negativa se corta de las partes superpuestas incluidas.

    Union tool indicated in Model tab

Separando uniones o intersecciones

La herramienta Separate separa a un UnionOperation en sus partes individuales, esencialmente sirviendo como una herramienta de "deshacer" para uniones e intersecciones.

Para separar una unión o intersección en partes individuales:

  1. Selecciona un UnionOperation .

  2. Haga clic en Separar . Las partes se separan de nuevo en su forma original.

    Separate tool indicated in Model tab

Rendimiento de fidelidad

De forma predeterminada, las partes modeladas de sólidos siempre se mostrarán en fidelidad precisa , sin importar lo lejos que estén de la cámara. Esto mejora su apariencia cuando se ve desde cualquier distancia, pero si un lugar tiene un gran número de partes modeladas de sólidos detalladas, puede reducir el ejecucióngeneral.

Puede controlar dinámicamente el nivel de detalle de una parte modelada sólida a través de su propiedad RenderFidelity. Cuando se establece en Automático , la parte se renderizará a un nivel de detalle diferente dependiendo de su distancia de la cámara.

Distancia de la cámaraRendimiento de fidelidad
Menos de 250 pernosMás alto
250-500 pernosMedio
500 o más pernosMás bajo

Angulo de suavizado

La propiedad SmoothingAngle de una parte sólida modelada suaviza los ángulos entre las superficies adyacentes del mismo color o material. Un valor más alto produce una apariencia más suave, mientras que un valor más bajo produce una apariencia más rugosa con bordes más afilados.

Si bien un valor entre 30 y 70 grados generalmente produce un buen resultado, no se recomiendan valores entre 90 y 180, ya que pueden causar un efecto de "sombra" en las uniones e intersecciones con bordes afilados.

Modelado de sólidos en la experiencia

Además de las herramientas Union , Intersect y Negate en Studio, puedes permitir a los jugadores usar operaciones de modelado sólido mientras están dentro de una experiencia a través de UnionAsync() , IntersectAsync() y SubtractAsync() . Todos estos métodos deben ser llamados en un BasePart y todos requieren un conjunto de una o más partes para unirse, intersecar o restar de la parte que llama.

UniónAsincrona ()

Para demostrar UnionAsync(), el siguiente Script usa el Part1 BasePart del espacio de trabajo, lo une con el Part2 , Part3 y Part4 BaseParts , luego guarda el UnionOperation resultante en el espacio de trabajo en la posición original de Part1 .


local mainPart = workspace.Part1
local otherParts = {workspace.Part2, workspace.Part3, workspace.Part4}
-- Realiza la operación de unión
local success, newUnion = pcall(function()
return mainPart:UnionAsync(otherParts)
end)
-- Si la operación tiene éxito, colóquela en la misma ubicación y apártala al espacio de trabajo
if success and newUnion then
newUnion.Position = mainPart.Position
newUnion.Parent = workspace
end
-- Destruye las partes originales que permanecen intactas después de la operación
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end

Intersección Asíncrona ()

Para demostrar IntersectAsync(), el siguiente Script usa el Part1 BasePart del espacio de trabajo, lo interseca con el Part2 y Part3 BaseParts, luego guarda el IntersectOperation resultante en el espacio de trabajo en la posición original de Part1 .


local mainPart = workspace.Part1
local otherParts = {workspace.Part2, workspace.Part3}
-- Realiza la operación de intersección
local success, newIntersect = pcall(function()
return mainPart:IntersectAsync(otherParts)
end)
-- Si la operación tiene éxito, colóquela en la misma ubicación y apártala al espacio de trabajo
if success and newIntersect then
newIntersect.Position = mainPart.Position
newIntersect.Parent = workspace
end
-- Destruye las partes originales que permanecen intactas después de la operación
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end

SubtractAsync ()

Para demostrar SubtractAsync(), el siguiente Script usa el Part1 BasePart del espacio de trabajo, niega el Part2 , Part3 y Part4 BaseParts de él, luego guarda el UnionOperation en el espacio de trabajo en la posición original de Part1 .


local mainPart = workspace.Part1
local otherParts = {workspace.Part2, workspace.Part3, workspace.Part4}
-- Realiza la operación de restar
local success, newSubtract = pcall(function()
return mainPart:SubtractAsync(otherParts)
end)
-- Si la operación tiene éxito, colóquela en la misma ubicación y apártala al espacio de trabajo
if success and newSubtract then
newSubtract.Position = mainPart.Position
newSubtract.Parent = workspace
end
-- Destruye las partes originales que permanecen intactas después de la operación
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end