Recep Köksal | Esri Türkiye Blog'u
Video Oyunlarında CityEngine
by Recep Köksal | Haz 5, 2018 | 0 yorum
Video Oyunu Geliştirirken CityEngine Kullanarak Zamanınızı Verimli Kullanın
Günümüzde video oyunları, gelişen teknoloji ile çok sayıda kullanıcının günlük aktivitesi haline gelmektedir. Video oyun sektörü yaklaşık olarak 40 yıllık bir geçmişe sahiptir, bugün dünyanın gelişmiş ekonomilerinde pazar payı günden güne yükselmekte, dolayısıyla da büyük yatırımcıların son yıllar içerisinde giderek daha da çok ilgi gösterdiği bir endüstri kolu haline gelmektedir. Küresel oyun endüstrisinin pazar büyüklüğü 100 milyar doları geçmiş bulunmaktadır. Bu rakam çoğu endüstrinin pazar payından daha yüksek seviyelerdedir. Türkiye’de ise pazarın büyüklüğü yaklaşık 700-750 milyon dolar seviyelerindedir.
Genel olarak bir video oyununun oluşturulup pazara sunulması sürecinin en temelinde oyun geliştiricileri yer almaktadır. Oyun geliştiricileri, genelde büyük ekipler şeklinde ve büyük stüdyolar altında çalışan veya daha küçük birimler olarak var olan ve oyunun teknik ve tasarım sürecini yürüten birimlerdir. Teknik kısımda ise tasarımcılar oyun için gerekli olan haritaları oluştururlar. Bu süreç doğru yazılımın tercih edilmemesi dahlinde çok fazla uzayabilen bir süreçtir. Çizim mantıklı çalışan programlarla büyük haritalar ve şehirler oluşturmak, detaylandırmak, katmanlamak ve oyun motorları ile entegre edebilmek çok sancılı bir süreçtir. CityEngine yazılımı son yıllarda oyun sektöründe oldukça etkili bir biçimde kullanılmaktadır.
Peki CityEngine’i neden kullanmalıyız ?
Oyununuzun haritası için sıfırdan 3 boyutlu bir şehir yaratabilir, üstelik bunu kuralları kullanarak yapabilirsiniz; bir bina x birim uzunsa, o binanın x birim uzunluğunda olması gerektiğini yazabilirsiniz, ya da belli bir alan yeşilse, bunu ağaçların bir karışımıyla doldurabilirsiniz. Kuralları kullanarak, düzenleme araçlarını sürüklemek zorunda kalmadan tüm şehri bu şekilde inşa etmek ciddi bir zaman ve enerji tasarrufu demektir.
CityEngine, Cars 2, Total Recall, Big Hero 6, Man of Steel, Independent Day 2, Zootopia ve Kral Şakir gibi filmlerde kullanılmıştır.
Uzantılar arasında kolayca dönüşüm yapmanızı sağlar, bu işlemi yapmanıza yarayacak çok fazla yazılım mevcut ancak File Geodatabase veya 3D Shape Dosyası’nı kullanan ve bunu Unity, Unreal Engine veya Blender’da kullanıma hazır olarak Collada veya FBX’e dönüştürebilen tek yazılımdır.
.osm (sadece içe aktarım)
.vob (sadece dışa aktarım)
.abc (sadece dışa aktarım)
.rib (sadece dışa aktarım)
Unreal engine (sadece dışa aktarım)
.3VR (standard VR formatı – sadece dışa aktarım)
Bir oyun geliştireceğinizi düşünün, devasa haritası olan ve bu haritanın içerisinde çok sayıda bina, yol ağı, ağaç, sokak lambası gibi aklınıza gelebilecek her türlü obje bulunduran. Bu verilerin hepsini çizim programlarında modellediğinizi düşünün, çok büyük bir iş yükü ve çok fazla zaman kaybına neden olur. Tek bir ağaçtan yola çıkalım, çizim programında oluşturduğunuz ağacı bir bölgeye eşit veya rastgele yaymanız gerekiyor. Tek tek kopyalayıp yapıştırarak yapılması, büyük alanlarda çok zor ve sıkıcıdır. CityEngine yazılımında bir alan çizerek bu alan içerisinde dilediğiniz objeden kaç tane olması gerektiğini ve birbirlerine uzaklığını kolayca belirleyebilirsiniz. Hatta birden fazla obje kullanacaksanız, herhangi bir objenin o alan içerisinde daha fazla tekrar etmesini sağlayabilirsiniz. Örnek olarak CityEngine yazılımını kullanarak bir orman oluşturduğumuzu varsayalım çöl bitkilerinin alanda %30 değerinde, güllerin %30 değerinde, çam ağaçlarının %60 değerlerinde ve rastgele bir şekilde dağılmasını sağlayabilirsiniz.
Yada savaş sonrası terk edilmiş bir şehrin yollarını modellediğinizi düşünün, yollarda terkedilmiş arabalar, devrilmiş sokak lambaları olduğunu varsayalım. Yolu çizdiğinizde CityEngine yazılımına, kaldırımlara, x er metre ara ile lamba.obj verimi ata komutunu verdikten sonra çizeceğiniz bütün yollarda aynı sonucu göreceksiniz. Yıklmış bir şehir olacağı için sokak lambalarının rotasyonunu ve düzensiz aralıklı olmasını istediğinizi de belirtebilirsiniz.
CityEngine –> Unity
CityEngine yazılımında oluşturulan şehir modeli birçok Export seçeneği ile dışa aktarılabilir.
Unity, CityEngine yazılımının dışa aktarım seçenklerinden Wavefront OBJ,Autodesk FBX, COLLADA(dae) seçenekleri ile uyumludur.
CityEngine üzerinde oluşturulan tüm model seçilerek, File menüsünden Export Models sekmesinden veya Ctrl-E kısayolu ile yukarıdaki Export seçeneklerinden bir tanesi seçildikten sonra dışa aktarılır.
CityEngine dışa aktarım sırasında geometrileri ve dokuları ayrı dosyalama sistemine tabi tutar. Bu nedenle Unity için export ederken, Unity yazılımında oluşturulan projenin verilerinin bulunduğu konuma Export etmek olası bir hata ile karşılaşmamamızı sağlar.
.fbx, .dae, .obj uzantılarında dışa aktarmak istersek, Export parametrelerinde, kullanılmak istenilen platforma uygun parametre oluşturmak gerekir.
CityEngine yazılımı, oyun motorları ile uyumluluk konusunda çok başarılı bir yazılımdır, modellerin geometrileri ve dokularında neredeyse hiç bozulma görülmemektedir.
CityEngine yazılımından dışa aktarılan model, Unity yazılımına içeri aktarılmadan önce tercihe göre üçüncü parti program kullanılarak render işlemine tabi tutulabilir.
Daha sonra Unity yazılımı içerisinde ışık ayarlarını ve doku iyileştirmesi gibi ayarları yapabilirsiniz.
CityEngine –> Unreal Engine
CityEngine yazılımında Unreal Engine tarafından desteklenen içe aktarım seçeneklerinde .fbx, .obj ve Unreal Engine DataSmith (.undatasmith) uzantıları bulunmaktadır. Datasmith, Unreal Engine yazılımına daha sonradan bir plugin olarak eklenen içe aktarım seçeneğidir. Şuan için Autodesk 3DS Max ve CityEngine yazılımları ile entegredir. CityEngine yazılımında beta olarak bulunsa da Esri RnD Center Zurich kaynaklı oluşturulan şablon, Unreal Engine ile CİtyEngine arasında veri geçişini kolay hale getiriyor.
Datasmith olarak dışa aktardıktan sonra Unreal Engine yazılımına girerek Import Datasmith eklentisini aktif etmeliyiz.
Daha sonra CityEngine yazılımında dışa aktardığımız dosyayı açabiliriz.
CityEngine To Unreal Engine
Deneyimleyip gördüğümüz üzere CityEngine yazılımı, seçkin oyun motorları ile başarılı bir şekilde veri alışverişi yapabilmenize olanak verir. CityEngine yazılımının gelişmiş modelleme teknikleri ile video oyunu geliştirirken zamanınızı daha verimli kullanabilirsiniz.Buna ek olarak, verilerinizi katmanlayarak daha düzenli çalışabilirsiniz.