ソリッドモデリング は、パーツ を独創的な方法で結合して、より複雑な形状である 連合 または 交差 として形成するプロセスです。ツールバーの モデル タブ内のツールを使用して、4つのソリッドモデリング操作を実行できます。

ツール | ショートカット | 説明 |
---|---|---|
ユニオン | Shift Ctrl G (Windows) Shift ⌘ G (Mac) | 2つ以上のパーツを結合して、単一の固体連合を形成します。 |
交差 | Shift Ctrl I (Windows) Shift ⌘ I (Mac) | 重複するパーツを単一のソリッド交差点に交差させます。 |
否定 | Shift Ctrl N (Windows) Shift ⌘ N (Mac) | パーツを否定し、穴とインデントを作るのに便利。 |
別々 | Shift Ctrl U (Windows) Shift ⌘ U (Mac) | ユニオンまたは交差を個々のパーツに分離する。 |
連合パーツ
ユニオン ツールは、2つ以上のパーツを結合して単一の固体を形成します 。デフォルトでは、新しいユニオンはそれぞれのパーツの Color プロパティを尊重しますが、全体のユニオンを特定の色に変更するための UsePartColor プロパティを有効にすることができます。

パーツを結合して連合にするには:
- 一緒に参加したいすべてのパーツを選択します。
- クリックする ユニオン ボタン。すべてのパーツが名前 UnionOperation で 1つのソリッド **** に結合。
部品を交差させる
交差ツールは、重複するパーツを単一のソリッドに交差させます。デフォルトでは、結果の交差点の顔色は、元のパーツの Color プロパティから借用されますが、全体の交差点を特定の色に変更するための UsePartColor プロパティを有効にすることができます。

重複するパーツを一緒に交差させるには:
- 交差したいすべてのパーツを選択します。
- クリックする 交差 ボタン。すべてのパーツが名前 IntersectOperation で 1つのソリッド **** に結合します。
パーツを否定する
否定 ツールは、パーツを否定して、他のパーツと結合 されたとき、否定されたパーツの形状が 差し引かれ 他のパーツから削除されます。

他の重複部分からパーツを控除するには:
- 他のパーツから否定したいパーツを選択します。
- クリック 否定 。パーツは、名前 否定パーツ となり、ピンクと透明になり、状態を示します。
- 否定されたパーツと、それを控除したいパーツの両方を選択します。
- クリックして ユニオン 。否定された部分は、含まれる重複部分から切り取られます。
別のユニオンまたは交差点
分離 ツールは、UnionOperation をその個々のパーツに分離し、基本的に労働組合と交差点の「戻る」ツールとして機能します。
ユニオンまたは交差を個々のパーツに分離するには:
- ユニオンまたは交差を選択します。
- クリックして 別々に 。パーツは元の形に戻ります。
レンダリングの忠実度
デフォルトでは、新しいソリッドモデリング操作は常にAutomaticで表示され、パーツの詳細は次の表に示すように、カメラからの距離に基づいています。
カメラからの距離 | レンダリングの忠実度 |
---|---|
250スタッド未満 | 最高 |
250-500スタッド | 中くらい |
500以上のスタッド | 最低 |
スムージング角
ソリッドモデルのパーツの SmoothingAngle プロパティは、同じ色や素材の隣接面の角を滑らかにします。より高い値は、より滑らかな外観を生成し、より低い値は、より鋭い端を持つより粗い外観を生成します。
30から70度の間の値は、通常、良い結果を生成しますが、90から180度の間の値は、鋭い端に接する連合や交差に「シャドーイング」効果を引き起こす可能性があるため、推奨されません。


経験中のソリッドモデリング
スタジオの ユニオン 、 交差 、および 否定 ツールに加えて、UnionAsync() 、IntersectAsync() 、および SubtractAsync() 内でプレイヤーがソリッドモデリング操作を使用できるようにすることができます。これらすべてのメソッドは、BasePart で呼び出されなければならず、すべてが呼び出されたパーツの 1つまたは複数のアレイを結合したり、交差したり、削除したりする必要があります。
ユニオンAsync()
To demonstrate , the following はワークスペースから次の を使用し、それを と結合し、 パーツ2 , パーツ3 、そして パーツ4 を親にして、結果の をワークスペースの元の位置に移動します。
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
インターセクトAsync()
To demonstrate , the following はワークスペースから パート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
サブトラクトAsync()
To demonstrate , the following はワークスペースから次の を使用し、 を否定し、 パーツ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