Yapı sistemi

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

Roblox Battle Royale, kullanıcıların daha iyi bir nişan açısı elde etmek için kendi yapılarınızı inşa etmelerine veya savaş sırasında siper sağlamalarına olanak tanıyan bir yapı sistemi içerir. Bir menü kullanarak, kullanıcı farklı karo türlerinden seçim yapabilir ve bunları dünyaya yerleştirebilir.

Yapı Örneği

Düzgün ve yapılandırılmış bir sistemin sürdürülebilmesi için:

  • Her karo, başka bir mevcut karo veya yere bağlı olmalıdır.
  • Tüm yapı karolarını, karoların düzgün bağlanmasını ve üst üste binmemesini sağlamak için 3D dünyayla koordine edilmiş bir ızgara içinde yerleştirin.

Karo bileşimi

Kullanıcıların yeni karoları hızlı ve kolay bir şekilde inşa edebilmeleri için, yapı sisteminin hangi karoların birbirine bağlı olduğunu ve yeni karoların ızgarada nerelere yerleştirilebileceğini anlaması gerekir.

Karolar, 3 bileşen kullanır: Karo nesnesi olarak kullanılan görsel varlık, karonun diğer dünya nesnelerine referansla kapladığı alan hakkında bilgi ve ek karoların mevcut kenarlarla bağlantı kurmasına izin veren bir karonun bağlantı noktaları.

Varlık

Bir varlık, 3D dünyadaki karonun nasıl göründüğünü temsil eden BasePart (Part, MeshPart vb.) türünde bir nesnedir ve ReplicatedStorage/BuildingSystem/Assets içinde yer almalıdır. Bu BasePart iki çocuğa sahip olmalıdır:

  • ObjectType — Karo türü adının Value'sine sahip bir StringValue.
  • StartingRotation — Kullanıcı karoyu dünyaya yerleştirdiğinde karonun başlangıç rotasyonunun Value'sine sahip bir NumberValue.

Kapasite

Bir karonun ızgara sistemi içinde doğru konumda yer almasını sağlamak önemlidir ve bu bir bitmask kullanılarak yapılabilir. Bir bitmask, bir karo türünün, temel bir dünya alanı bölümü veya hücresinde kapladığı fiziksel alanı temsil eder. Her yapı sistemi karo/nesnesi, bir ızgara hücresinin herhangi bir yüzünü (ön, sol, arka, sağ, üst ve alt) ve bir ızgara hücresindeki herhangi bir sekizgeni kaplayabilir. Bir kullanıcı, bir yapı sistemi nesnesini bir hücrede yalnızca, nesnenin kapladığı tüm yüzler ve sekizgenler o hücrede mevcut olduğunda yerleştirebilir. Bir yapı sistemi nesnesinin kapasitesi aşağıdaki gibi tanımlanır:

Bit indeksiAnlamı
0Hücrenin alt yüzü
1Hücrenin üst yüzü
2Hücrenin sağ yüzü
3Hücrenin arka yüzü
4Hücrenin sol yüzü
5Hücrenin ön yüzü
6+X, –Y, +Z sekizgeni hücrenin merkezi ile
7+X, +Y, +Z sekizgeni hücrenin merkezi ile
8–X, –Y, +Z sekizgeni hücrenin merkezi ile
9–X, +Y, +Z sekizgeni hücrenin merkezi ile
10–X, –Y, –Z sekizgeni hücrenin merkezi ile
11–X, +Y, –Z sekizgeni hücrenin merkezi ile
12+X, –Y, –Z sekizgeni hücrenin merkezi ile
13+X, +Y, –Z sekizgeni hücrenin merkezi ile

Bağlantı

Karoların birbirine bağlanması, bir yapı oluşturmak için gereklidir. Karo türünün hücrenin yüzleri/kenarları ile hangi parçalarını temas ettiğini temsil eden bir bitmask kullanabilirsiniz. Bir yapı sistemi karo/nesnesinin bağlantısı, hücrenin yüzeyinde bir dizi bağlantı noktası, bit ile temsil edilir. Bunlar, hücrenin yüzlerinde aşağıdaki gibi düzenlenir:

Sekizgen Küp Diyagramı

Bir yapı sistemi nesnesi, ızgarada başka bir yapı sistemi nesnesi ile bağlantılı sayılır, eğer hücrenin yüzeyinde en az 2 bağlantı noktası paylaşıyorlarsa.

Yeni karo türleri oluşturma

Yeni bir karo türü oluşturmak için:

  1. Varlığı ReplicatedStorage/BuildingSystem/Assets içine yerleştirin. Unutmayın ki, yukarıda tanımlanan ObjectType ve StartingRotation çocuklarına sahip olmalıdır.

    Battle Royale Silah Örneği
  2. Yeni karo türünüz için ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations içinde Kapasite ve Bağlantıyı tanımlayın:

    Battle Royale Silah Örneği

Örneğin, Duvar karo türü aşağıdaki gibi ifade edilir:


ObjectTypeConfigurations.Wall = {
ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),
CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000
OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0
}

Arazi ile çalışma

Eğer serbest formda arazi ile, yapı sistemi ile mükemmel uyum sağlayacak bir harita oluşturmak istiyorsanız, Çevresel Arazi altında özetlendiği gibi yükseklik haritası içe aktarma sistemini kullanmanızı öneririz ve aşağıdaki ayrıntılara dikkat etmenizi tavsiye ederiz:

  • Roblox'taki arazi, her biri dünyada 4×4×4 çakış alanı kaplayan üç boyutlu bir voxel dizisi ile temsil edilir. Bu nedenle, Roblox Battle Royale, 20×16×20 stüd boyutunda bir ızgara hücresi kullanır ve duvar karoları 20×16×1 stüd, zemin/çatı karoları ise 20×1×20 stüd boyutundadır. Bu, yapı karolarının ve arazinin düzgün hizalanmasını sağlar.

  • Yükseklik haritası görüntünüzdeki her piksel, X/Z düzlemindeki bir arazi voxelini temsil etmelidir; bu nedenle 5×5 piksel alanı, 20×20 stüd alan kaplayan bir yapı sistemi ızgara hücresini temsil eder.

  • Yükseklik haritanızda, her pikselin kırmızı veya gri kanal değerinin, yapı sistemi ızgara hücenizin yüksekliği ile tam bölünebilir olmasını sağlamalısınız, böylece zemin karoları arazinin üstünde düzgün durur.

  • Yükseklik haritanızı içe aktardığınızda, aşağıdaki ayarları yapın:


    Position (X, Y, Z) = 0, 0, 0
    Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.