Solide modellenme

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Katı modelleme , parçaları birleştirme sürecidir, daha karmaşık şekiller oluşturmak için benzersiz yollarla bir araya getirerek sendikalar veya kesişimler olarak bilinen daha karmaşık şekiller oluşturmak için.Araç çubuğunun Model sekmesindeki araçları kullanarak dört katı modelleme işlemi gerçekleştirebilirsiniz.

Studio's Model tab with the Solid Modeling tools highlighted.
AraçKısayolAçıklama
BirleşimShiftCtrlG  (Windows) ShiftG (Mac)Tek bir katı birlik oluşturmak için iki veya daha fazla parçayı bir araya getirin.
KesişmeShiftCtrlI  (Windows) ShiftI (Mac)Üst üste gelen parçaları tek bir katı kesişime yerleştirin.
YadsıShiftCtrlN  (Windows) ShiftN (Mac)Parçaları inkar et, delikler ve işaretlemeler oluşturmak için yararlı.
AyrıShiftCtrlU  (Windows) ShiftU (Mac)Birliği veya kesişimi bireysel parçalara geri ayırın.

Birleşik parçalar

Birleşim aracı, tek bir katı oluşturmak için iki veya daha fazla parçayı birleştirir.Varsayılan olarak, yeni bir birlik her bir parçasının Color özelliğini saygı gösterir, ancak tüm birliği belirli bir renge değiştirmek için onun UsePartColor özelliğini etkinleştirebilirsiniz.

Block and cylinder parts overlapping

Parçaları birliğe birleştirmek için:

  1. Birlikte katılmak istediğiniz tüm parçaları seçin.
  2. Birliği düğmesine tıklayın. Tüm parçalar, adı Birliği ile birleşerek tek bir sıkı birleşime dönüşür.

Parçaları kesiştirme

Kesişme aracı, üst üste gelen parçaları tek bir katı IntersectOperation dönüştürür.Varsayılan olarak, sonraki kesişmenin yüz renkleri orijinal parçaların Color özelliğinden ödünç alınır, ancak tüm kesişimi belirli bir renge değiştirmek için onun UsePartColor özelliğini etkinleştirebilirsiniz.

Block and cylinder parts overlapping

Üst üste geçen parçaları bir araya getirmek için:

  1. Kesişmek istediğiniz tüm parçaları seçin.
  2. Kesişme düğmesine tıklayın. Tüm parçalar, adı IntersectOperation ile birleşerek tek bir sıkı parçaya dönüşür.

Parçaları inkar et

The Reddet aracı, bir parçanın başka bir parçayla birleşmesi sırasında, reddedilen parçanın şekli diğer parçadan çıkarılır .

Negated block overlapping a cylinder

Bir parçayı diğer örtüşen parçalardan çıkarmak için:

  1. Diğer parçalardan reddetmek istediğiniz parçayı seçin.
  2. Tıklayın Reddet . Parça, adı NegatifParça ile bir NegateOperation olur ve durumunu göstermek için pembe ve saydam hale gelir.
  3. Reddedilen parçayı ve ondan çıkarmak istediğiniz parçaları her ikisini de seçin.
  4. Birliğe tıklayın. Reddedilen kısım, dahil edilen örtüşen parçalardan kesilir.

Ayrı sendikalar veya kesişimler

Ayrı Ayrı aracı, bir UnionOperation geri bölümlere ayırır, temel olarak sendikalar ve kesişimler için bir "geri git" aracı olarak hizmet eder.

Bir birliği veya kesişimi bireysel parçalara geri ayırmak için:

  1. Birliği veya kesişimi seçin.
  2. Ayrı tıklayın . Parçalar orijinal formlarına geri ayrılır.

Görüntü sadakati renderleme

Varsayılan olarak, yeni katı modellenmiş işlemler daima Automatic düzeyinde gösterilecektir, yani parçanın detayı, aşağıdaki tabloda belirtildiği gibi kameradan uzaklığına dayanmaktadır.

Kameradan uzaklıkGörüntü sadakati renderleme
250'den az çivilerEn yüksek
250-500 çivilerOrta düzey
500 veya daha fazla saplamaEn Düşük

Dalgalandırma açısı

Katı modellenmiş bir parçanın SmoothingAngle özelliği, aynı renk veya malzemenin yan yüzeyleri arasındaki açıları düzleştirir.Daha yüksek bir değer daha pürüzsüz bir görünüm üretirken, daha düşük bir değer daha kaba bir görünüm üretir ve daha keskin kenarlarla daha fazla.

30 ile 70 derece arasındaki bir değer genellikle iyi bir sonuç verirken, 90 ile 180 arasındaki değerler keskin kenarlarla birleşen ve kesişenler üzerinde "gölgeleme" etkisi yaratabileceğinden önerilmez.

Deneyim içi katı modelleme

Birleşim'in yanı sıra, Kesişme ve Reddetme araçlarının Studio'da, oyuncuların deneyim içinde sıvı modelleme operasyonlarını kullanmasına izin verebilirsiniz, , ve .Tüm bu yöntemler bir BasePart üzerinde çağrılmalı ve hepsinin bir veya daha fazla parça ile birleşmesi, kesişmesi veya çağrılan parçadan çıkarılması gerekiyor.

Birlik异步()

Göstermek için , aşağıdaki çalışma alanından Parça1 , Parça2 , Parça3 ve Parça4 , sonra orijinal Parça1 konumundaki çalışma alanına ebeveynlik yapar.


local Workspace = game:GetService("Workspace")
local mainPart = Workspace.Part1
local otherParts = {Workspace.Part2, Workspace.Part3, Workspace.Part4}
-- Birleşim işlemi yapın
local success, newUnion = pcall(function()
return mainPart:UnionAsync(otherParts)
end)
-- Eğer işlem başarılı olursa, aynı konuma yerleştirin ve çalışma alanına eşlik edin
if success and newUnion then
newUnion.Position = mainPart.Position
newUnion.Parent = Workspace
end
-- Operasyon sonrasında bozulmayan orijinal parçaları yok edin
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end

Kesişme异步()

göstermek için, aşağıdaki , çalışma alanından Bölüm1 kullanır, bunu Bölüm2 ve Bölüm3 ile kesiştirir, ardından sonuç çalışma alanına orijinal konumundaki Bölüm1 'e ebeveyn olur.


local Workspace = game:GetService("Workspace")
local mainPart = Workspace.Part1
local otherParts = {Workspace.Part2, Workspace.Part3}
-- Kesişme işlemini yapın
local success, newIntersect = pcall(function()
return mainPart:IntersectAsync(otherParts)
end)
-- Eğer işlem başarılı olursa, aynı konuma yerleştirin ve çalışma alanına eşlik edin
if success and newIntersect then
newIntersect.Position = mainPart.Position
newIntersect.Parent = Workspace
end
-- Operasyon sonrasında bozulmayan orijinal parçaları yok edin
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end

KeskinleştirmeAsync()

Göstermek için , aşağıdaki , çalışma alanından Bölüm1 , Bölüm2 , ve Bölüm3 , sonra oradan çıkan Bölüm4 , çalışma alanının orijinal konumundaki Bölüm1 'e ebeveyn olur.


local Workspace = game:GetService("Workspace")
local mainPart = Workspace.Part1
local otherParts = {Workspace.Part2, Workspace.Part3, Workspace.Part4}
-- Çıkarma işlemi yapın
local success, newSubtract = pcall(function()
return mainPart:SubtractAsync(otherParts)
end)
-- Eğer işlem başarılı olursa, aynı konuma yerleştirin ve çalışma alanına eşlik edin
if success and newSubtract then
newSubtract.Position = mainPart.Position
newSubtract.Parent = Workspace
end
-- Operasyon sonrasında bozulmayan orijinal parçaları yok edin
mainPart:Destroy()
for _, part in otherParts do
part:Destroy()
end