Festkörpermodellierung ist der Prozess, bei dem Teile zusammen in einzigartige Weise verbunden werden, um komplexere Formen zu bilden, die als Verbindungen oder 0> Intersektionen 0> bekannt sind. Sie können vier Festkörpermodellierungsoperationen mit den Werkzeugen innerhalb der 3> Modellierungs-Registerkarte 3> ausführen.
Werkzeug | Tastenkürzel | Beschreibung |
---|---|---|
Union | Shift CtrlG (Windows) Shift 1> ⌘1> 3> G3> (Mac) | Schließe zwei oder mehr Teile zusammen, um eine einzige solide Union zu bilden. |
Intersectieren | Shift CtrlI (Windows) Shift 1> ⌘1> 3> I3> (Mac) | Überschneide überlappende Teile in einer einzigen soliden Interaktion. |
Negieren | Shift CtrlN (Windows) Shift 1> ⌘1> 3> N3> (Mac) | Negative Teile, nützlich zum Erstellen von Löchern und Kerbverzahnungen. |
Separate | Shift CtrlU (Windows) Shift 1> ⌘1> 3> U3> (Mac) | Trenne die Union oder Intersektion in ihre einzelnen Teile zurück. |
Teile verbinden
Das Union-Werkzeug verbindet zwei oder mehr Teile miteinander, um eine einheitliche UnionOperation zu bilden. Standardmäßig respektiert eine neue Union die Color -Eigenschaft jeder seiner Teile, obwohl Sie seine 1> Class.PartOperation.UsePartColor|Class.PartOperation.ChangePartColor -Eigenschaft
Um Teile miteinander in eine Union zu kombinieren:
Wählen Sie alle Teile aus, um zusammenzuführen.
Klicken Sie auf die Schaltfläche Union . Alle Teile kombinieren sich in eine solide UnionOperation mit dem Namen Union .
Kreuzende Teile
Das Intersect-Werkzeug interessiert sich für überscheidende Teile in ein einzelnes, solides IntersectOperation . Standardmäßig sind die Gesichtsfarben der resultierenden Interaktion von den Color -Eigenschaften der ursprünglichen Teile, obwohl Sie seine 1> Class.PartOperation.UsePart
Um überlappende Teile miteinander zu verbinden:
Wählen Sie alle Teile zum Interessieren aus.
Klicken Sie auf die Schaltfläche Intersect . Alle Teile kombinieren sich in eine solide IntersectOperation mit dem Namen Intersect .
Negative Teile
Das Negate-Werkzeug negiert ein Teil, sodass wenn es mit einem anderen Teil verbunden ist, die Form der negierten Teil Subtrahiert von der anderen Seite ist.
Um ein Teil von anderen übereinanderliegenden Teilen abzuziehen:
Wählen Sie das Teil aus, das Sie von anderen Teilen ablehnen möchten.
Klicken Sie auf Negate . Die Teil wird zu einem NegateOperation mit dem Namen NegativePart und wird pink und translucent, um ihren Zustand anzuzeigen.
Wählen Sie sowohl den negierten Teil als auch die Teile, von denen Sie ihn abziehen möchten.
Klicken Sie auf Union . Der negative Teil wird aus den enthaltenen übereinanderliegenden Teilen geschnitten.
Unions oder Intersections trennen
Das Separate-Werkzeug trennt einen UnionOperation zurück in seine einzelnen Teile, wobei es im Grunde als "Rückgängig"-Werkzeug für Unionen und Intersektionen dient.
Um eine Union oder ein Intersection in einzelne Teile aufzuteilen:
Wählen Sie eine UnionOperation.
Klicken Sie auf Separate . Die Teile werden in ihre ursprüngliche Form zurückgetrennt.
Render-Schärfe
Standardmäßig werden neue, solide modellierte Operationen immer in Automatic Render-Fidelität angezeigt, wobei der Detaillierungsgrad der Teil basiert auf seiner Entfernung von der Kamera, wie in der folgenden Tabelle beschrieben.
Entfernung von der Kamera | Render-Schärfe |
---|---|
Weniger als 250 Studs | Höchste |
250-500 studs | Mittel |
500 oder mehr studs | Niedrigst |
Glättungswinkel
Ein solides modelliertes Teil's SmoothingAngle Eigenschaft glättet Winkel zwischen angrenzenden Oberflächen desselben Farbe oder Material. Ein höherer Wert produziert einen glättenden Effekt, während ein niedrigerer Wert einen raueren Effekt mit mehr scharfen Kanten produziert.
Während ein Wert zwischen 30 und 70 Grad normalerweise ein gutes Ergebnis liefert, werden Werte zwischen 90 und 180 nicht empfohlen, da sie einen "Schattierungseffekt" auf Unions und Intersections mit scharfen Kanten verursachen können.
Erfahrungsloses Modellieren
Zusätzlich zu den Unionen, Intersects und Negate-Werkzeugen in Studio können Sie den Spielern die Solid-Modellierungs
UnionAsync()
Um UnionAsync() zu demonstrieren, verwendet der folgende Script die Class.BasePart , der aus der Arbeits
local mainPart = workspace.Part1
local otherParts = {workspace.Part2, workspace.Part3, workspace.Part4}
-- Union-Operation ausführen
local success, newUnion = pcall(function()
return mainPart:UnionAsync(otherParts)
end)
-- Wenn die Operation erfolgreich ist, positionieren Sie sie an derselben Position und überlassen Sie sie dem Arbeitsbereich
if success and newUnion then
newUnion.Position = mainPart.Position
newUnion.Parent = workspace
end
-- Zerstöre ursprüngliche Teile, die nach der Operation intakt bleiben
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end
IntersectAsync()
Um IntersectAsync() zu demonstrieren, verwendet der folgende Script die Class.BasePart aus dem Arbeitsbereich, interessiert sie
local mainPart = workspace.Part1
local otherParts = {workspace.Part2, workspace.Part3}
-- Führen Sie eine Intersektion aus
local success, newIntersect = pcall(function()
return mainPart:IntersectAsync(otherParts)
end)
-- Wenn die Operation erfolgreich ist, positionieren Sie sie an derselben Position und überlassen Sie sie dem Arbeitsbereich
if success and newIntersect then
newIntersect.Position = mainPart.Position
newIntersect.Parent = workspace
end
-- Zerstöre ursprüngliche Teile, die nach der Operation intakt bleiben
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end
SubtractAsync()
Um SubtractAsync() zu demonstrieren, verwendet der folgende Script die Class.BasePart aus dem
local mainPart = workspace.Part1
local otherParts = {workspace.Part2, workspace.Part3, workspace.Part4}
-- Subtraktion betreiben
local success, newSubtract = pcall(function()
return mainPart:SubtractAsync(otherParts)
end)
-- Wenn die Operation erfolgreich ist, positionieren Sie sie an derselben Position und überlassen Sie sie dem Arbeitsbereich
if success and newSubtract then
newSubtract.Position = mainPart.Position
newSubtract.Parent = workspace
end
-- Zerstöre ursprüngliche Teile, die nach der Operation intakt bleiben
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end