Evin hem eğlenceli hem de ürkütücü, keşfetmesi kolay ve içinde kaybolmak istediğiniz bir yer olmasını sağlamak için sürecin başlangıcında birçok yineleme ve hızlı test yaptık. Mekân üzerinden nasıl düşündüğümüzü ve bireysel sandalyeleri ve tüm odaları güncellemeyi daha hızlı hale getirmek için paketler kullandığımızı göstereceğiz.

2D yerleşimle başlayın
Ev, oynanabilir alanın büyük bölümünü oluşturduğundan ve kendisi de bir karakter olduğundan, gerçek ve eğlenceli olmasını sağlamak için çok düşündük. Evde birçok görsel ve işitsel şaka, arka plan hikayesi ve bozulmuş bulmaca odası bulunması gerektiği fikriyle başladık ve oyuncuların oyuna başladıklarında evin başına ne geldiği hakkında çok az şey bilerek yaklaşmalarını istedik.
Bu önemli unsurların dengesini sağlamak için, 2D yerleşimle 3D ortamı hayal etmeye başladık! Oyuncunun deneyimlemesini istediğimiz genel hikâye anlarını belirleyerek, mekânın bir yerleşimini çizdik ve oyuncuyu istediğimiz yere yönlendirmek için nasıl bir yol izlememiz gerektiğini düşündük ve ortama büyük bir his vermeyi hedefledik.

Genel yerleşimimizin ilk taslağını oluşturduktan sonra, terrain kullanarak çevredeki tepeleri, gölü, yolu ve evin önündeki yolun hızlı bir taslağını çıkardık. Bu aşamada demo kalitesine çok dikkat etmedik, bunun yerine eve ulaşmanın ne kadar süreceğine ve oyuncunun evin ve gökyüzündeki olayların bazı kısımlarını nasıl görebileceğine odaklandık.

Basit parçalar ile Creator Store varlıklarını kullanarak çevreyi oluşturacak içerikleri hızlı bir şekilde eklemeyi başardık, bunlar arasında:
- Oyuncuların yolu tamamen görememesi için yolun kıvrımını oluşturmak.
- Erişilemeyecek yerlerin belirgin olduğu yoğun ağaç bölgeleri eklemek, ince bölgelerle keşfi teşvik etmek.
- Oyuncular eve yaklaştıklarında ağır bir şekilde tırmanmaları için evin girişini yükseltmek. Bu evin daha korkutucu bir varlık hissettirmesini sağladı.
- Dev olayı gökyüzündeki fırtına arkasına konumlandırmak, böylece oyuncular belli kısımlarını görebilir fakat evi kendisi yaklaşmadan tamamını göremezler.
- Nihayetinde varacağımız evin genel şeklini konumlandırmak ve belirlemek.
Hiçbir deneyim, ilk fikirlerinizin en iyi olduğunu garanti etmez. İşte bu yüzden, varlıkları Studio'ya hızlı bir şekilde getirdik ve basit parçalar ile Creator Store varlıklarını geçici varlıklarla çevreyi doldurmak için kullandık. Böylece her şeyi önceden yapmaya gerek kalmadan, ilk birkaç gün içinde oyun testi yapmaya başlayabildik.

Sonunda geçici varlıkları kendi varlıklarımızla değiştirmeyi istesek de, en başta önemsediğimiz tek şey, temelleri koymak ve deneyimi oynayarak ortamın dolaşımı eğlenceli mi olduğuna ve çok büyük olmadığından ya da düz gitmeyecek kadar fazla olmadığından emin olmaktı.

Her odanın planını yapın
Dış kısım, oyuncuyu sarmak ve oynadıkları dünyaya aşina olmalarını sağlamak için genel hikâyenin sadece bir tadı olmalıydı. Ana karakter evin kendisiydi ve oyuncuların oyun sürelerinin çoğunu içinde sırları araştırarak ve her odada sürprizler bulma üzerine geçirmelerini istedik. Bunu yapmak için, evin hangi odaları içermesi gerektiği, oyuncuların ne zaman onlarla karşılaşacağı ve evin içinde nerede bulunacaklarını belirlememiz gerekiyordu. Evin 2D yerleşimini çizdik ve takım üyeleri, ilginç olayların olabileceği fikirleri paylaştı. Bu noktada hiç bir fikir göz ardı edilmedi.

Her odanın yerleşimi ve birbirleriyle nasıl düzenlenmesi gerektiğini belirlemek için her odanın 2D kutularını kullandık. Her oda, bir şey yapmak için bir fırsat olmalıydı ve her odanın ana kullanım alanları, oyuncuyu şaşırtmak için kullanabileceğimiz korkutucu şakalar ve karşılaşabilecekleri potansiyel bulmacalar hakkında birçok fikir ürettik.


Her odanın birbiriyle uyumlu çalışması gerekiyordu ve hikâyeyi yavaş yavaş ve aşamalı bir şekilde anlatmak istiyorduk. Bir oyuncunun ilk nereden gideceğini kontrol edemeyeceğimizi bildiğimiz için, daha zor bulmacaların ön kapıdan uzak olmasını ve keşfedilmesi zor olmasını sağladık. Bu, evde birkaç kat eklemeye neden oldu; bunlar arasında oyun ve tematik nedenlerle bir çatı katı ve bir bodrum bulunduruyordu. Korkunç ve ürkütücü görünen bir bodrumdaki son bulmaca? Bize katılın!


3D yerleşimi oluşturun
Tüm erken planlama ve fikirlerin dünyayı eğlenceli bir deneyim haline getirmesi söz konusu olamaz, bu yüzden artık fikri 3D hale getirmeye başlama zamanıydı! Dış yerleşim taslağı oluşturuldu ve evin genişletilebilmesi ya da daraltılabilmesi için alan yaratıldı. İlk yinelemeler, 2D görüntüyü oynanabilir bir alana dönüştürmek için basit kutular ve şekiller oluşturabileceğimiz başka bir 3D uygulamada yapıldı. Erken versiyonları Studio'da inşa etmenin ve basit parçaları kullanmanın en sevdiğiniz yöntem olduğunu görebilirsiniz. Hızla 3D'ye ve oynanabilir hale dönüşmenizi sağladığı sürece doğru bir yol yoktur!



Çalışmanın karmaşıklaşmasıyla birlikte hiçbir şey kolaylaşmaz, bu yüzden deney yapmaya ve yaratmak istediğimiz ortam yapısını belirlemeye devam etmek bizim için önem taşıyordu. Evin en erken yinelemeleri, yukarıda gördüğünüz resimlerle aynı derecede basitti ve basit şekiller, demodan geçerken odaların boyutlarını değiştirmek için mümkün olduğunca esnek olmamızı sağladı. Ölçek, başta önemliydi, bu yüzden her zaman hem 3D uygulamamızda hem de Studio içinde bir avatar ile inşa ettik, böylece bir kapının ne kadar büyük olması gerektiğini ya da merdivenin ne kadar yüksek olması gerektiğini bilebiliyorduk.


Nihai demo üzerindeki neye sahip olduğumuzu belirlemek için birçok küçüklü ve büyüklü yinelemelerden geçtik. Yukarıdaki ilk taslakları, holün çok daha sonraki bir versiyonu ile karşılaştırın ve görürsünüz ki evin etrafında geçerken yaptığımız birçok orijinal karar şekillerde kalmış!

Mobilya ve eşyalar
Bu boyuttaki bir evi doldurmak için birçok mobilya ve eşya gerekiyordu, bu yüzden içeriği gri kutudan çıkarma işlemini başlatmadan önce, hangi oda türünü tamamlayacağını ve yaratmakta olduğumuz bulmacaları dikkate alarak kullanılabilecek her şeyi takip eden bir belge oluşturduk. Tüm düşüncelerimizi tek bir noktaya yazdıktan sonra, organize edebilir, önceliklendirebilir ve farklı odalarda içerikleri nerelerde tekrar kullanabileceğimizi görebiliriz. Bu miktarda ön planlama, ya yeterince içerik oluşturmaktan ya da gereksiz eşyalar yapmaktan kaçınmamızı sağladı.

Bu liste, içerik için gri kutu oluştururken öncelik vermesi gereken şeyler hakkında iyi bir anlayış sağladı. Yüksek öncelikli içeriği erken eklemiştir, varlıkların tekrarlandığını, yanlış oranlarla yapıldığını veya belirli odalarda farklı bir varyasyona veya doku değişimine ihtiyaç duyacaklarını kolayca görebilirdik. İlk başta dışarıda oluşturulan bazı içerikler deneyim için önemli olmadı ve bu sırada kaldırıldı, ama işlemler sırasında çok fazla iş kaybetmedik çünkü bunlar yalnızca hızlı bir şekilde oluşturulmuştu. Her mobilya ve eşya için, bunları blokaj aşamasında paketler haline getirdik ve bu da evin her yerinde nihai versiyonlarıyla her şeyi değiştirmemizi kolaylaştırdı.


Bu demoda gerekli varlıkların sayısı nedeniyle, mümkün olduğunca dokuları yeniden kullanmak, bellek bütçemiz içinde kalmak için son derece önemliydi. Çoğu mobilya, ahşap, metal, taş, cam ve kumaş için aynı trim veya kaplanabilir levhalara sahibiz ve nerede mümkünse şeffaf dokuları kullandık. Örneğin, ikinci bir Albedo dokusu oluşturmadan renk varyasyonları elde etmek için kumaşlar için şeffaf bir doku kullandık. Dokuları yeniden kullanma konusunda daha fazla bilgi için lütfen Planlama, Yeniden Kullanma ve Bütçeler sayfasına bakın.




Fotogrametri
Kendimizin inşa etme süresi olmadığından daha fazla içeriğe ihtiyaç duyacağımızı biliyorduk, bu nedenle 1:1 doku levhasına yüksek kaliteli içerik oluşturma sürecini hızlandırmak için Creative Commons (CC0) kaynaklı fotogrametri kullanmaya karar verdik. Fotogrametri, nesnelerin her açıdan yüzlerce görüntüsünü yakalayarak, doğru oranlara sahip yüksek kaliteli modeller oluşturma sürecidir ve Creative Commons modelleri büyük ölçüde eğitim amaçlı serbest modellerdir; bunları yasal olarak kullanabilir ve/veya paylaşabilirsiniz. Bu modeller, el yapımı varlıklardan fotogrametri ile oluşturulan varlıklara kadar geniş bir yelpazeye yayılabilir ve bu süreçte onlarla çalışmak, detaylı yüksek çözünürlüklü bir model oluşturma zaman alıcı adımını atlamamızı sağladı.
Aile için oluşturduğumuz arka hikâye, onları "tuhaf koleksiyoncular" olarak tanımlıyor ve okültizmle uğraşıyorlar. Dünyanın her tarafından eserler toplamışlardır ve evin bu hikâyeyi yansıtan şeylerle dolmasını istedik. CC0 müze içeriğinden artesan modellerine ulaşma şansını elde ederek antikalar, heykeller ve taklit hayvanlar gibi kaynakların ve verilerin tarama çıktısını alabildik ve ardından UV haritalama, retopolojizasyon ve bunları Studio için optimize etme aşamalarına geçtik.


UV haritalama, bir 3D modelin yüzeyinin açılmasını ve 2D görüntünün üzerine yansıtılmasını içeren 3D modelleme sürecidir. "U" ve "V", 2D dokunun eksenlerini temsil eder çünkü "X", "Y" ve "Z", 3D modelin eksenlerini temsil eder. UV'ler, tarama işlemi sırasında genellikle otomatikleştirilir ve oyun geliştirme açısından kötü yapılmış olma eğilimindedir. Örneğin, belirli fotogrametri modellerinin UV'leri, bir sürü bağımsız düzleme benzer görünebilir, ancak mobil deneyimde yaratıcıların 10,000 vertex ile sınırlı olduğu durumlarda bu en iyi performansı sağlamaz. Tarama verilerinde şanslı olduğumuz anlar oldu, ama çoğu zaman deneyimin ihtiyaçlarına göre bu iki boyutlu doku koordinatlarını güncellememiz veya tamamen baştan yapmamız gerekti.

Ayrıca, modellerin çoğu sadece tarama sırasında modelin başlangıçta içerdiği aydınlatma bilgilerini içeren Difüz dokuyu içerecektir. Bu, ağın Albedo dokusunun bir temeli olarak kullanılabilir olsa da, ışığı ve gölgeyi temizlememiz gereken manuel bir temizleme gerektiriyordu. Eğer bir ağ güçlü yönlü aydınlatmaya sahipse, dünya ışığının eşleşmemesi durumunda garip görünebilir. Bu nedenle, kullandığımız CC0 müze içeriğinden değişim yapmamız gereken çoğu PBR dokuyu tekrar yaratmamız gerekti.


Fiziksel tabana dayalı render (PBR), malzemeleri ve gün ışığını daha doğru bir şekilde simüle ederek ve temsil ederek gerçekçi gölge ve aydınlatma kullanma anlayışıdır. PBR dokuları oluştururken, Albedo dokusuna herhangi bir aydınlatma bilgisi ya da çok az şey gömülü olmayacak şekilde işlememizin önem taşıdığını düşündük çünkü Studio'nun motoru bunu Görüntü Tabanlı Aydınlatma (IBL) üzerinden hesaplar; ayrıca dokunun Normal, Pürüzlülük ve Metallik yüzey değerlerini kullanarak gerçek dünya malzemelerini doğru bir biçimde temsil eder. Karşılaştırıldığında, bir Difüz doku, bu bireysel haritalardan ya bazı detayları ya da hepsini tek bir dokuya gömülü şekilde ele alabilir ve bu, Difüz dokusunun o detayları kendisi taşıması gerektiğinde IBL ya da diğer bireysel PBR dokularının yardımına ihtiyaç duyması durumunda iyidir. Bir Difüz dokuyu tutup tutmamaya veya kendi PBR dokularınızı yaratmaya karar verirken, kendi tasarımınızı veya bellek bütçenizi dikkate alarak kendi deneyiminiz için mantıklı olanı göz önünde bulundurun.
Kullandığımız tarama verisi ağlarının çoğu genellikle oldukça iyiydi, ancak bazı ağların temizlenmesi gerekiyordu. Örneğin, bazı ağlar doldurulması gereken sorunlu delikler içerebilir, pürüzlü kenarlar düzleştirilmesi gereken, ya da ince kenarlar kalınlaştırılması gereken durumlar olabilirdi. Bu süreçte Zbrush kullanarak tarama verilerini düzenledik.


Bu süreç kesinlikle mükemmel değildi; ancak yüksek çözünürlüklü modeli temizlemek, ya otomatik ya da manuel olarak modelin ağını retopolojize etmeyi önemli ölçüde kolaylaştırdı. Retopolojizasyon, bir 3D modelin kenar dağılımını ve yapısını değiştirme sürecidir ve bizim ihtiyaçlarımızda, retopolojizasyon, yüksek çözünürlüklü bir modelin düşük çözünürlük versiyonunu yaratırken daha iyi bir doku pişirme olanağı sağlar. Düşük çözünürlüklü modeller, özellikle mobil cihazlarda, performansı önemli ölçüde artırır ve hala ağdan ve dokulardan yüksek çözünürlüklü ayrıntıları saklar.
Manuel veya otomatik retopolojilemek için, seçtiğiniz herhangi bir 3D uygulamasını kullanabilirsiniz. Manuel retopolojilemek için 3DS Max kullanmayı seçtik ve Zbrush'ta Zremesher veya Decimation Tool kullanarak otomatik retopolojilemek istedik. Zremesher aracı, bir ağın şeklinin korunmasını sağlamak için daha yüksek bir vertex sayısı gerektiren dörtgen yapıların korunmasını sağlasa da, Decimate aracı daha düşük bir vertex sayısına sahip üçgen yapıların yeniden biçimlendirilmesine izin veriyordu.




Modellerimiz/ağlarımız için otomatik yolu seçsemiz de, otomatik retopolojize etmenin yüksek çözünürlüklü ağ, nasıl yapılandırıldığı ve algoritmasına büyük ölçüde bağımlı olduğu için bazı temizlemeler yapmamız gerekiyordu. Orijinal şekli korurken daha düşük bir vertex sayısına sahip olmayı tercih ettiğimizden, genellikle üçgenleşmiş bir ağ için decimation rotasını seçiyorduk.



Ağların yeni UV'leri ile birlikte retopolojize etme sürecini tamamladıktan sonra, artık yüksek çözünürlüklü ağ detaylarını ve dokularını pişirmemiz ve aktarmamız gerekiyordu. Marmoset, yüksek çözünürlüklü modelin dokularını düşük çözünürlüklü modele aktarmayı ve ağ haritalarını pişirmeyi kolaylaştırdı, fakat farklı 3D uygulamalarında daha iyi çalışan başka iş akışları ve yöntemler bulabilirsiniz. Herhangi bir araçtan bağımsız olarak, yüksek çözünürlüklü modeldeki orijinal dokuların pişirme sırasında modelde atandığından emin olun.





Albedo, Normal, Metaliklik ve Pürüzlülük PBR dokularımızı Substance Painter üzerinde tamamladıktan sonra, yeni varlıklarımız Studio'ya taşınmaya hazırdı! Tarama verileri varlıkları ile retopolojize edilmiş varlıklar arasında bazı kalite farklılıkları vardı, ama sonunda varlığın yalnızca 1,000 vertex olması durumunda 1,000,000 vertex olmasının değerli bir tür değişimi söz konusuydu. Bu aynı zamanda bellek bütçemizi koruyarak deneyimin daha akıcı çalışmasını sağladı.




Paketleri kullanın
Paketler, tek bir nesnenin ya da bir grup nesnenin bir versiyonunu depolayıp kullanmayı sağlayan bir sistemdir; ve bu versiyonu güncellediğinizde, o nesnenin veya grubun tüm örnekleri aynı anda güncellenir. Örneğin, bir ağaç nesnesi oluşturup bu nesneden yüzlercesini deneyiminiz içinde yerleştirdiğinizde, yüzlerce ağacı bir seferde yeni versiyonunuza güncellemek için paketi sadece güncellemeniz yeterli. Çok önceden, evin çoğu odasında iki durum olacağını, normal durumu ve bozulmuş durumunu bildiğimiz için, evdeki her iki kopyayı ve içeriğini tüm süreç boyunca korumamız gerekti. Bu nedenle, her bir ev durumunda paylaşılması gereken nesneleri belirleyip paket haline getirdik.

Paketler, duvar panellerindeki ahşap trimden odaların tamamına kadar her şeyi değiştirmemizi sağladı ve ardından oda durumunun her iki versiyonu da değişikliklerimizi güncelleyebiliyordu. Ayrıca, mevcut ortamda bir malzemenin görünümünü güncelleyebilmek için SurfaceAppearance nesnelerini paket haline getirme olanağını da kullandık. Malzemeleri yeniden kullanmak, demoyu olabildiğince performanslı hale getirmek için hayati bir öneme sahipti.
Örneğin, aşağıdaki görseller, demo içinde birçok yerde kullandığımız metal yüzey görünümü paketini içeren karmaşık bir çocuk varlık grubuyla birlikte bir armilary model paketini göstermektedir. Metal yüzey görünümü paketini güncellediğimiz her yerde, kitlesel güncellemeyi de gerçekleştirebiliriz; bu da armilary model paketinin çocuk yüzey görünümü paketini de güncellemesine sebep olur.



Tek bir nesneyi ya da Models veya Folders gibi nesne gruplarını pakete dönüştürmeyi ya da paketin düzenleme erişimi için bir yaratıcı seçmeyi öğrenmek için daha fazla bilgi için Paketler sayfasına göz atın. Tüm paketlerimizin yaratıcısı olarak Vistech Demo Grubunu belirlemeyi tercih ettik çünkü bu, grubumuzdaki herkesin ihtiyaç duyduğunda paketlere erişim sağlamasını ve bunları düzenlemesini sağladı. Ayrıca bu paketlerin grubun sahip olduğu her bir deneyim arasında paylaşılmasını da sağladı!

Üst paketleri, yukarıdaki armilary gibi ya da odanın tamamı gibi, otomatik güncellemeleri yapacak şekilde ayarladık; böylece modeldeki ya da klasördeki değişiklikler, o paketin tüm örnekleri arasında otomatik olarak paylaşıldı ve manuel kontrol yapmamıza gerek kalmadı. Bu süreç, her odanın normal ve bozulmuş durumları için değişiklikleri sorunsuz bir şekilde oluşturmamızı sağladı. Örneğin, aşağıdaki iki görüntü, aynı paket aracılığıyla oluşturulmuş olan çalışma odasının normal ve bozulmuş durumunu göstermektedir. Paketlerin dışında kalan yalnızca birkaç nesne, bozulmuş durumda yandan olmasına rağmen birbirinden farklıdır!


Tamamen deneyimle aynı yer dosyasında çalışmak yerine, tüm bileşenlerimizi paket bağlantılarıyla birlikte bir varlık depolama yeri oluşturduk. Bu depolama yerinde bir paketi güncellediğimizde, bu paketleri kullanan her yerde otomatik ve hemen güncellenmiş olur. Nesneleri değiştirebilir, işlevler ekleyebilir ve ana deneyimin ruh halini ve aydınlatmasını engellemeyecek detaylarla çalışabiliriz; bu da sizin ne yaptığınızı görmek için zor hale getirebilir.

Paketler, daha fazla iş yapmadan farklı fikirleri 3D ortamda keşfetme özgürlüğünü sağladı. Plan yapabilir, test edebilir veya bir deney başarılı olmadığında ya da deneyimi bozduğunda, varlığın herhangi bir önceki versiyonuna geri dönebilirsiniz. Paketlerdeki bir versiyona geri dönerek birçok kez saatlerce süren çalışma kurtarılmıştır. Sonunda, bu demo üzerindeki nihai düzeydeki inceliği paketler olmadan başaramazdık.
