Çevre Tasarımında Substance Designer Kullanımı

Ahmet UTV
Dijital Oyun Sanatı
5 min readJul 4, 2018

--

Oyun geliştirici Matthieu Chollet, Substance Designer ve Unreal Engine 4 ile etkileyici bir sahne üzerinde çalışıyor. Bu röportajda, materyal üretimi ağırlıklı olmak üzere çevre çalışmasının kısa bir dökümünü bizlerle paylaşacak.

Tanıtım

Merhaba ben Matthieu Chollet. Fransızım, şu an Halifax (Kanada)’ da yaşıyorum. 2 yıldır oyun sektöründe çalışıyorum. Ecole d’Art (Fransa)’ dan lisans mezunu olduktan sonra Copernicus Studios’ da işe başladım. O gün bu gündür çeşitli mobil oyunların yapımında 3D generalist olarak çalışıyorum.

Çevre Projesi

Önceki projem, yer altında bir retro ofis temalıydı. Tema açısından insanda rahatsız edici-klostrofobik bir his oluşturuyordu.

Bu çevre üzerinde çalıştıktan sonra, yeni bir şey yapma ihtiyacı hissettim. Renkli, geniş alanlı, bitki örtüsüne sahip bir çevre yapmaya karar verdim. Her kişisel proje, yeni şeyler öğrenme fırsatı doğurur. Mesela ofis çalışması, ilk kez Unreal Engine 4 kullanmayı ve PBR iş akışıyla, tarama tabanlı texturelar oluşturmayı öğretti bana.

Bu defa, gerçeğe yakın ve güzel bir çevre oluşturmak için, bitki örtüsüyle kaplı çevre ve Substance araçlarıyla procedural texture ın nasıl oluşturulduğunu öğrenmem gerekiyordu.

Sahneyi oluştururken takip ettiğim adımlar şu şekilde:

  • Bir terrain oluştur
  • Heykelleri modelle
  • Substance Designer ile tekrar eden (tileable) texture lar oluştur
  • Bitki örtüsü oluştur
  • Işık ve efektleri oluştur

Substance Designer Kullanımı

Unreal Engine 4′ te, Ready at Dawn’ ın materyal ve shader sistemiyle çalışacağım ve tekniklerinden ilham alacağım için oldukça heyecanlıydım. Base materyalleri, ardından diğer materyalleri oluşturmak için Substance Designer kullanmaya karar verdim. Her substance (texture) bir materyal fonksiyonu olarak kullanılıyordu. Böylece bunları birbiri üzerine ekleyebiliyordum. Bu substance lerin AO ve normal mapleri, highpoly modelden bitmap olarak bake edilmiş objelerle birleştirildi.

Substance Painter ile yapılmış RGB mapleri kullanarak katmanlar oluşturdum. Yosun etkisi için kırmızı kanalı, ambient occlusion için yeşil kanalı, kenarlara renk çeşitliliği katmak için mavi kanalı, albedo renk çeşitliliği için de alpha kanalı kullandım.

Ayrıca RGB maskeler Substance Painter’ da yapıldığı için, ilk model için oluşturduğum smart material ı diğerlerine de uyguluyor, birazcık üzerinde değişiklik yapıyordum. Bu iş akışı, ilgili modeller için hızlıca texture oluşturmamda hayli yardımcı oldu.

Bu çevrede, sculpt işleminden geçmiş olan her kayanın materyali, önceden oluşturduğum “master material” in bir örneği (instance) dir.

Materyalleri Anlamak

Öncelikle, ulaşmak istediğim şekli elde etmek için bir çok referans toplarım. Ardından, Kuadro isimli program ile çalışma alanını (ekranı) ikiye bölerek referans alanı oluştururum. Bu program, topladığım referansları kullanmak için ekranda ayrı bir alan tahsis ediyor. Bu alanı kaydedebiliyor, her şeyi saniyeler içinde tekrar açabiliyorum. Şiddetle tavsiye eder, bilgisayarınızda bulunsun derim!

Ayrıca sadece bir referansı baz alarak çalışmanızı tavsiye ederim. Zîra farklı kayalardaki bir çok karışık unsur bana tatmin edici bir sonuç vermedi.

Aklımda, texture ın 3D ortamda neye benzeyeceğine dair bir fikir oluşması için heightmap oluştururum. Bir gözüm sürekli referansta, yüzeyde temel şekli oluşturmak için çabalarım. Bence bu, deneme-yanılma isteyen en önemli kısım. Ardından ayrıntı eklemeye başlayabilirim. Belirli bir mesafeden sırasıyla ilgi çekici görünmesi için, oluşturduğum substance in daima 3 LOD (level of detail) görünüme sahip olması için çabalarım.

Height oluşturmanın bu kısmında blend max node ve histogram range kullanmayı seviyorum. Bununla birlikte, 2 height ı birleştirebilir ve birini diğerinin üzerinde olacak şekilde ayarlayabilirsiniz. Ayrıca Substance Designer’ daki tesellation (mozaik döşeme) ile sonucun 3D ortamda nasıl olacağını gözlemleyebilirsiniz.

Son olarak, oluşturduğum height içime sinmişse, albedo yu oluşturmaya başlarım. Bu konuda da bir kuralım var: Asla bir uniform color node kullanmamak. Referans alanımdan aldığım, gradient ve noise eklenmiş iki farklı renkle başlamayı severim. Ardından bunu maske için diğer noise ile karıştırırım. Ayrıca daha fazla çeşitlilik olması için random seed ayarıyla oynarım.

Sonrasında, texture a daha derin bir görünüm vermek için heightmap lerden aldığım renk ayrıntılarını eklerim. Keskinlik ve renk uyumu, texture ları motor içinde daha iyi kontrol etmemde yardımcı oluyor.

Ardından, ayrıntılı albedo map ler ve height verilerinin kombinasyonu ile referanslarıma uygun olacak şekilde bir roughness map oluştururum.

Procedural Materyallerin Avantajları

Substance Designer’ ı kullanmaya başlayalı 2-3 ay oldu ve gerçekten kullanımı oldukça eğlenceli bir program. Üretim açısından tahribatsız bir iş akışı sağlıyor. “expose parameters” özelliği çeşitli texture lar oluşturmamı sağlıyor.

Ağaçlar için oluşturduğum son zeminin substance versiyonu yaprak substance i barındırıyor. Daha gerçekçi bir görünüm için, zeminde oluşturmuş olduğum yosun texture ını desteklemesi adına ayriyeten yoncalar ekledim. Her substance i, yeni bir tanesini oluşturmak ve geliştirebilmek adına yeni bir kaynak olarak oluşturdum. Bence Substance Designer’ ı çok iyi bir yazılım yapan yanı, bu işlem içindeki tekrarlama türüdür.

Substance lerin bir diğer iyi yanı da çok hafif olmalarıdır. Hafif texture lar şahsî projede çalışıyo olsanız bile her zaman iyidir.

Bilinmesi gereken bazı şeyler var: substance inizi en kısa sürede oyun motorunda test etmeye bakın. Substance Designer’ ın görüntüleyicisi daha iyi sonuç verse bile, gerçek görünüm konusunda bazen farklılık gösterebiliyor.

Ayrıca “expose parameters” adımı da hafife alınmamalı. Bunu basit ve özelleştirilebilir yapmak biraz zaman alabilir. Fakat çeşitlilik oluşturmak ve bunları tekrar kullanmak için bu adım gerekli.

Bu adım, size neredeyse bütün projelerinizde kullanmak veya Substance Share camiasında paylaşabilmek adına bir substance bankası oluşturma — geliştirme imkânı sağlıyor.

--

--