솔리드 모델링 은 부품을 특별한 방식으로 결합하여 더 복잡한 모양인 연합 또는 교차점 으로 알려진 더 복잡한 모양을 형성하는 과정입니다.도구 모음의 모델 탭에서 도구를 사용하여 4개의 솔리드 모델링 작업을 수행할 수 있습니다.

도구 | 바로가기 | 설명 |
---|---|---|
연합 | ShiftCtrlG (Windows) Shift⌘G (Mac) | 두 개 이상의 부품을 함께 조인하여 단일 단단한 연합을 형성합니다. |
교차 | ShiftCtrlI (Windows) Shift⌘I (Mac) | 겹치는 부품을 단일 단단한 교차점으로 교차시킵니다. |
부정 | ShiftCtrlN (Windows) Shift⌘N (Mac) | 부품을 부정하여 구멍과 들여쓰기를 만드는 데 유용합니다. |
별도 | ShiftCtrlU (Windows) Shift⌘U (Mac) | 연합이나 교집합을 개별 부분으로 분리합니다. |
연합 부품
연합 도구는 두 개 이상의 부품을 결합하여 단일 고체 를 형성합니다.기본적으로 새 연합은 각 부분의 Color 속성을 준수하지만, 전체 연합을 특정 색으로 변경하도록 UsePartColor 속성을 활성화할 수 있습니다.

부품을 결합하여 연합으로 만들려면:
- 함께 조인하려는 모든 부품을 선택합니다.
- 클릭하십시오 연합 버튼. 모든 부품이 이름 연합 으로 하나의 단단한 블록으로 결합됩니다.
부품 교차
교차 도구는 겹치는 부품을 단일 솔리드로 교차합니다 .기본적으로 결과 교차점의 얼굴 색상은 원래 부품의 Color 속성에서 빌려오지만, 전체 교차점을 특정 색상으로 변경하는 UsePartColor 속성을 활성화할 수 있습니다.

겹치는 부품을 함께 교차하려면:
- 교차하려는 모든 부품을 선택합니다.
- 클릭하십시오 겹치기 버튼. 모든 부품이 이름 IntersectOperation 로 하나의 단단한 **** 블록으로 결합됩니다.
부품 부정하기
부정 도구는 부분을 부정하여 다른 부분과 결합되었을 때 부정된 부분의 모양이 다른 부분에서 뺏겨집니다.The Negate tool negates a part so that when it's unioned with another part , the shape of the negated part is subtracted from the other part.

다른 겹치는 부품에서 부품을 뺄 경우:
- 다른 부품에서 부정하고 싶은 부품을 선택합니다.
- 부정 부분과 부분을 뺄 원하는 부분을 모두 선택합니다.
- 클릭하십시오 연합 . 부정 된 부분은 포함된 겹치는 부분에서 잘립니다.
별도의 연합 또는 교차점
분리 도구는 분리 도구는 개별 부품으로 다시 분리하여 본질적으로 연합과 교차에 대한 "실행 취소" 도구로 기능합니다.
연합이나 교집합을 개별 부품으로 다시 분리하려면:
- 연합 또는 교집합을 선택합니다.
- 클릭 분리 . 부품이 원래 형태로 다시 분리됩니다.
렌더링 정확도
기본적으로 새로운 솔리드 모델링 작업은 항상 Automatic 렌더링 품질에 표시되며, 부품의 세부 정보는 다음 표에 설명된 대로 카메라와의 거리에 따라 결정됩니다.
카메라에서의 거리 | 렌더링 정확도 |
---|---|
250스터드 미만 | 최고 |
250-500 스터드 | 중간 |
500개 이상의 스터드 | 최저 |
부드러움 각도
단단하게 모델링된 부품의 SmoothingAngle 속성은 같은 색상이나 재료의 인접 표면 사이의 각도를 부드럽게 합니다.더 높은 값은 더 부드러운 모양을 생성하지만 더 낮은 값은 더 많은 날카로운 가장자리를 가진 더 거친 모양을 생성합니다.
3070도 사이의 값은 일반적으로 좋은 결과를 생성하지만, 90180도 사이의 값은 날카로운 가장자리와 교합 및 교차에 "그림자" 효과를 일으킬 수 있으므로 권장되지 않습니다.


경험 내 솔리드 모델링
스튜디오의 연합 , 교차 , 및 부정 도구 외에도, 플레이어가 경험 내에서 솔리드 모델링 작업을 사용할 수 있도록 UnionAsync(), IntersectAsync(), 및 SubtractAsync()를 통해 허용할 수 있습니다.이 모든 메서드는 BasePart 에서 호출되어야 하며, 모두 호출 부품과 결합하거나, 교차하거나, 뺄 배열이 필요합니다.
유니온Async()
를 보여주기 위해 , 다음 는 작업 공간에서 파트1 을 사용하여 결합하고, 파트2 , 파트3 및 파트4 을 결합하여 결과 을 작업 공간에 원래 위치의 파트1 에 부모로 전달합니다.
local Workspace = game:GetService("Workspace")
local mainPart = Workspace.Part1
local otherParts = {Workspace.Part2, Workspace.Part3, Workspace.Part4}
-- 연합 작업 수행
local success, newUnion = pcall(function()
return mainPart:UnionAsync(otherParts)
end)
-- 작업이 성공하면 동일한 위치에 배치하고 작업 영역에 부모로 지정합니다.
if success and newUnion then
newUnion.Position = mainPart.Position
newUnion.Parent = Workspace
end
-- 작업 후에도 그대로 유지되는 원래 부품 삭제
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end
교차 취소()
를 보여주기 위해 , 다음 는 작업 공간에서 파트1 을 사용하고, 그것을 파트2 및 파트3 과 교차시킨 다음 결과 를 원래 위치의 파트1 에 부모로 지정합니다.
local Workspace = game:GetService("Workspace")
local mainPart = Workspace.Part1
local otherParts = {Workspace.Part2, Workspace.Part3}
-- 교차 작업 수행
local success, newIntersect = pcall(function()
return mainPart:IntersectAsync(otherParts)
end)
-- 작업이 성공하면 동일한 위치에 배치하고 작업 영역에 부모로 지정합니다.
if success and newIntersect then
newIntersect.Position = mainPart.Position
newIntersect.Parent = Workspace
end
-- 작업 후에도 그대로 유지되는 원래 부품 삭제
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end
SubtractAsync()
를 보여주기 위해 , 다음 는 작업 공간에서 파트1 을 사용하고, 파트2 , 파트3 및 파트4 를 부정하고, 원래 위치의 파트1 에서 결과적인 을 워크스페이스에 부모로 지정합니다.
local Workspace = game:GetService("Workspace")
local mainPart = Workspace.Part1
local otherParts = {Workspace.Part2, Workspace.Part3, Workspace.Part4}
-- 뺄셈 작업 수행
local success, newSubtract = pcall(function()
return mainPart:SubtractAsync(otherParts)
end)
-- 작업이 성공하면 동일한 위치에 배치하고 작업 영역에 부모로 지정합니다.
if success and newSubtract then
newSubtract.Position = mainPart.Position
newSubtract.Parent = Workspace
end
-- 작업 후에도 그대로 유지되는 원래 부품 삭제
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end