İstasyonu modüler bir şekilde inşa etmek, içerik güncellemelerini sorunsuz bir şekilde güncellememe ve yaymamıza olanak tanıdı ve bireysel ağlar, dokular, parçalar ve daha fazlasını güncellerken saatlerce harcama yapmadığımızdan emin olmak için çok önemliydi.
Roblox paketleri, Meshparts paletini kolayca birleştirip, kesim şerit setleri ve SurfaceAppearance düğümünü paylaşmamıza izin vererek bu modüler tasarımı elde etmemizi sağladı. Bu, erken oyun testleri sırasında yerleşim ve boyut değişikliklerine adapte olmamıza olanak tanıdı ve istasyonu doldurma sürecini çok daha hızlı hale getirdi.

Esnek tasarımlar ile nihai sanat
İlk başladığımızda, istasyonda ne olmasını istediğimiz veya 50 oyuncu için ne kadar büyük olması gerektiği konusunda tam bir anlayışa sahip değildik.
Bunu anlamak için önce çevreyi Parts kullanarak inşa etmeye başladık ve Maya veya Blender gibi harici DCC uygulamalarımızdan rotunda şeklini içeren bazı meshleri getirdik. Bu basit şekillerle, haritanın ölçeğini, odaların düzenini ve yolları ayarlayarak en eğlenceli dizilimleri bulmaya çalıştık. İster bir oyun için, ister bir sosyal deneyim için olsun, bu erken aşama genellikle en dinamik olanıdır.
İstasyonun düzenini inşa ederken, keşif için en önemli şey kullanıcılara bir hedef vermekti. Bu durumda, en bariz hedef yakından kara deliğe bakmak. Sonra, onlara kara deliğe düz bir yol vermenin sıkıcı olacağını biliyorduk, çünkü bir oyuncu sadece doğmadan haritanın sonuna kadar yürüyebilirdi. Oyuncunun kara deliğe gidebilmesi için önce etrafa başka şeyler keşfetmesi gereken bir yola ayırdık.
Modüler tasarım, ortamda bu tür değişiklikler yapmamıza izin verdi ve genel tasarımın felaket bir şekilde yeniden çalıştırılması gerekmiyordu. Farklı oyun fikirleriyle oynamak için istasyonun tüm bölümlerini taşıyabiliyorduk. Nihayetinde, bu aynı modüler parçaların güncellenmesi paketler aracılığıyla yapılabilirdi, böylece aynı varlığın birden fazla sürümünü yeniden inşa etmek zorunda kalmadık.




Kerr-Newman DSR-14 modüler tasarımı
Uzay istasyonu sadece birkaç modüler palet parçası kullanıyor. Modüler palet parçaları, her duvarı özgün bir şekilde oluşturmak zorunda kalmadığımız, bunun yerine birkaç daha küçük duvarı bir araya getirebildiğimiz yeniden kullanılabilir varlıklardır. Bu, inşa ettiğimizde düzenlemenin esnekliğini sağlar.
Modüler tasarımımızı oluştururken bize yardımcı olan bazı ipuçları burada:
Tek tip bir ızgara boyutuna karar verin — İstasyon için, modüler setin çoğunu oluşturmak için 16 stud ızgara boyutunu belirledik. Kullandığınız ızgara boyutu keyfidir, ancak proje boyunca ve o projede çalışan tüm sanatçılar arasında tutarlı olmalıdır. Projenizin başında bir ızgara boyutuna karar vermek, her parçanın yanındaki parçayla güzel bir şekilde oturmasını garanti eder. Ayrıca, örneğin bir duvar bölümünü kapı bölümüne değiştirmek gibi parçaları kolayca değiştirme imkânı sağlar.
Tüm birimler stud olarak içe aktarılır — Diğer DCC uygulamalarında, örneğin Maya veya Blender'da meshler oluştururken, Studio metre, santimetre, feet veya inçleri dönüştürmez — gelen birimleri sadece aynı birimlerle studlarda değiştirir. Örneğin, birimleri metre olarak ayarlarsanız, Studio 2 metreyi 2 stud olarak çevirir. Seçtiğiniz uygulamadaki birim ölçeklerinizi, Roblox'taki stud ölçekleri olarak düşünmek en iyisidir. Roblox'ta bir studun en yakın gerçek dünya ölçeği 28 santimetredir.
Parçaları basit tutun — İhtiyacınız olacağını düşündüğünüz her parçayı oluşturmaya çalışmayın. Amaç, birkaç çok yönlü parça sahip olmaktır ve çok fazla tek kullanımlık parça olmamasıdır. Ne kadar çok parçanız olursa, her parçayı oluşturması o kadar uzun sürer ve bu da genel bellek ve performans bütçenizi olumsuz etkiler. Kesinlikle gerekirse kitinize başka bir parça ekleyebilirsiniz.
Paketler kullanın — Her modüler parçayı bir pakete dönüştürün ve deneyiminizde bunları doldurmaya başlamadan önce malzemeleri de paketlere koyun. Bu, tüm örneklere güncellemeleri kolayca iletmenizi sağlar. Paketlere biraz daha sonra dalacağız.
Aşağıdaki ekran görüntüleri, modüler tasarımı kullanarak istasyonun kısımlarını inşa etmenin çeşitli yollarını gösteriyor.




Çizgi tabakaları oluşturun
1:1 dokular geleceğin yoludur, ancak bellek bütçeleri ve oluşturma süresi açısından maliyetli hale gelir. Uzay istasyonu için, mimari unsurların %90'ı, dikey veya yatay bir şekilde düzene yerleştirilmiş bir dizi doku haritasından oluşan birkaç değiştirilebilir çizgi tabakası kullandı. Tabakanın her satırı veya sütunu kendine özgü bir görünüme sahiptir, bu da bir modeli açtığınızda seçeceğiniz çeşitli yüzey işlemleri sunar ve sadece bir resim tabakası kullanır.
Çizgi tabakaları oluşturmak için bazı ipuçları:
Gerekli nesne ve malzeme türlerinin envanteri ile başlayın — Çizgi tabakaları, ahşap, metal, kauçuk gibi çok çeşitli malzeme türlerini içerebilir. İlk nesnenizi modellemeye başlamadan önce bir çizgi tabakası şablonu oluşturun. Bu, diğer tüm çizgi tabakası setlerinizin başlangıç noktasıdır ve modellerinizi açmak için hızlı bir başlangıç noktası sağlar. Bu çizgi tabakaları SurfaceAppearance düğümünde yer alır, bunu daha sonraki bölümlerde ele alacağız.
Bir sayfada çeşitli yüzey işlemleri ekleyin — Bu, mesh parçalarını bir arada tutmanıza olanak tanır, böylece yeni işlemleri uygulamadan, meshlerinizi birden fazla parçaya bölmek zorunda kalmazsınız. Bu, nesne ve malzeme çizim çağrılarını azaltarak çalışma zamanı performansını iyileştirir.
Bir çizgi şablonu oluşturun — Bir şablon, herhangi bir harita setini başka bir harita setiyle değiştirmenizi sağlar. Örneğin, temiz bir metal setini paslı bir metal setiyle değiştirebilirsiniz.
İstasyon için çizgi tabakaları nasıl oluşturduğumuzu göstereceğiz:
Tabakanın nasıl görünmesi gerektiğine dair kaba bir taslak oluşturduk:

Photoshop'ta, her bir çizgi bölümünün sayfanın nasıl görüneceğine dair hızlı bir fikir edinmek için bir mockup oluşturduk.

Son haritaları oluşturmak için Substance kullandık, ancak son haritaları oluşturmak için size uygun herhangi bir uygulamayı kullanabilirsiniz. Bunlar, Substance'da üretilen nihai çizgi tabakası harita setidir. Tüm dört harita, fiziksel olarak tabanlı bir (PBR) malzeme üretmek için bir SurfaceAppearance düğümü içerisinde birlikte çalışır.




İşte Substance Designer'daki çizgi tabakasının nihai renderları:


Aynı çizgi tabakalarının geniş bir nesne yelpazesinde nasıl kullanıldığına dair örnekler:

Çizgi Tabakası UV Haritalama hakkında daha fazla bilgi edinmek istiyorsanız, webde konuyla ilgili araştırma yapabilirsiniz; harika öğreticiler bulabilirsiniz.
Yüzey görünümleri uygulamak
SurfaceAppearance, MeshParts için Fiziksel Olarak Tabanlı Render sistemimize yeni doku girişleri belirlemenizi sağlar ve bir mesh'in görünümünü, ColorMap, MetalnessMap, RoughnessMap ve NormalMap dahil olmak üzere gelişmiş grafik seçenekleriyle değiştirebilirsiniz. Ayrıca, Roblox'un malzemelerde yansımalar için kullandığı yeni dinamik kübik harita sistemini de kullanır, örneğin krom. Örneğin, SurfaceAppearance uygulanan bir mesh ile uygulanmayan bir mesh'in yan yana görüntüsü şöyle:

Yüzey görünümünü kullanırken aşağıdaki ipuçlarını akılda bulundurun:
- Çizgi haritalarınızda şeffaflık için alfa bilgisi varsa, AlphaMode'u Overlay'den Transparency'ye değiştirin.
- Yüzey görünümü, uygulamak için gerekli UV bilgisine sahip olmadığı için Parçalar ile çalışmaz. Parçalar, UV bilgisi yerine dünya hizalı projeksiyonlar kullanır. MeshParts genellikle Maya, 3ds Max veya Blender gibi başka bir uygulamada oluşturulur ve UV açma bilgisi içerir.
SurfaceAppearance uygulamak için:
Explorer'da bir MeshPart veya klasör adının sonundaki "+" ikonuna tıklayın ve SurfaceAppearance araması yapın. Bir tane eklemek, uyguladıysanız herhangi bir BrickColor, Color, Material ve TextureID'yi geçersiz kılacaktır.
SurfaceAppearance düğümüne benzersiz bir isim verin ve kolayca aramak için sonuna _SA ekleyin. Bu örnekte Metal_Trim_A_SA kullandık.
Çizgi tabakası haritalarını içe aktarın, Asset Manager penceresinden ID’leri kopyalayın ve Properties penceresindeki uygun alanlara yapıştırın. İşte Metal_Trim_A_SA düğümünün, harita ID’leri eklenmiş ve kapıya uygulanmış hali.

Paketlerle verimliliği artırma
Paketler, Roblox deneyimlerinizin her yerinde nesne örnekleri oluşturmanıza olanak tanır, böylece pakette yaptığınız güncellemeler o paketin tüm örneklerine yayınlanır. İstasyona koyduğumuz neredeyse her nesne için paketler kullandık, böylece gerektiğinde değişiklik yapmak için her yerleşimi bulmak zorunda kalmadık. Örneğin, bir paketin 1.000'den fazla duvar paneli örneğini kullandık ve paketi değiştirerek anında güncellemeleri onlara yayınlayabildik.
Paketleri kullanırken bu ipuçlarını izleyin:
PackageLink'te otomatik güncelleme özelliğini açın. Bu etkinleştirildiğinde, tüm değişiklikler paketin tüm kullanımına uygulanır, böylece "hepsini güncelle" özelliğini kullanma adımını atlamış olursunuz.

SurfaceAppearance nesneleri için bir "malzeme kütüphanesi" oluşturmak için paketler kullanabilirsiniz. Bu, bir SurfaceAppearance nesnesindeki bitmap’leri değiştirmenizi ve bunları onu kullanan her nesneye iletmenizi sağlar. Aşağıdaki ekran görüntüsü, demo boyunca kullanılan ana malzemeleri gösteriyor. Haritaları değiştirmemiz gerektiğinde, yalnızca ana malzemeyi güncelleyip paketi yeniden yayınlamamız yeterliydi.
