UNİTY3D ÖĞRENİMİ DERS-4 [2017]

alikaya/ Haziran 25, 2017/ Bilgisayar, Genel, Unity/ 0 comments

İngilizce’deki karşılığı ‘terrain’ olan ve Unity’de de bu adla kullanılan arazi(zemin) nesnelerini temel olarak üç farklı şekilde değiştirip, onlara istediğimiz şekli verebiliyoruz.

Unity’nin Arazi Şekillendirme Editörü

Arazi Editörü
Arazi Editörü

Menü çubuğundan Arazi(Terrain) seçeneğini seçip arazinizi oluşturduktan sonra, bu nesneniz hiyerarşi(hierarchy) sekmesinde yerini alacaktır. Bu sekmede arazi nesnenizin üzerine tıkladığınızda kontrol(inspector) sekmesinde bu nesnenize ait özellikleri göreceksiniz. Bu özellikler arasında arazi(terrain) olarak adlandırılan bir betik (script) bulunuyor. Bu betik, aslında arazi yaratmanızı sağlayan editörü oluşturan betik. Buradaki seçeneklere bakacak olur

Menü çubuğundan Arazi(Terrain) seçeneğini seçip arazinizi oluşturduktan sonra, bu nesneniz hiyerarşi(hierarchy) sekmesinde yerini alacaktır. Bu sekmede arazi nesnenizin üzerine tıkladığınızda kontrol(inspector) sekmesinde bu nesnenize ait özellikleri göreceksiniz. Bu özellikler arasında arazi(terrain) olarak adlandırılan bir betik (script) bulunuyor. Bu betik, aslında arazi yaratmanızı sağlayan editörü oluşturan betik. Buradaki seçeneklere bakacak olursak;

  • Arazi yüksekliğini artırma veya azaltma
  • Arazi yüksekliğini belli bir seviyeye çıkarma veya indirme
  • Arazinin şeklini yumuşatma (sert yükseklikler varsa aradaki geçişi hafifleştirme)
  • Araziyi Doku İle Kaplama
    Araziyi Doku İle Kaplama
    Arazinizi bir doku(texture) ile kaplama
  • Araziyi Doku İle Kaplama
    Araziye Nesne Ekleme
    Ağaç, bitki ve diğer objeleri arazinize ekleme

Tüm bu işlemleri de sanki Paint’te boyama yapar gibi bir fırça aracı eşliğinde gerçekleştiriyorsunuz.İstediğiniz kaplama(texture) tipi ve belirlediğiniz ağaç/ot modelleriyle arazinizi süsleyebiliyorsunuz. Uygulamanın bu kısmı eğlenceli; ancak arazinizin her bir noktasını düşünerek şekillendirmek zorunda kalmanız çok zaman alıyor. Bu nedenle işinizi hızlandıracak bir ek araç (toolkit) yine Unity tarafından geliştiricilere sunuluyor. Bu aracı ikinci bir yöntem olarak anlatalım.

Bu linkten aracı indirdikten sonra Unity içinde “Assets->Import Package” yolundan indirdiğiniz Arazi Araç Takımı paketini seçtiğinizde bu paketin açılıp, içindeki klasörleri Proje(Project) sekmenize eklendiğini göreceksiniz. Aracın editörünü aktifleştirebilmek için projenize eklenen Arazi Araç Takımı(“Terrain Toolkit”) klasörünün içindeki “Terrain Toolkit” betiğini Hiyerarşi sekmenizdeki arazi nesnenizin üzerine sürüklemelisiniz.

Bu aracın özelliği Unity’nin kendi içinde olduğu gibi fazladan bir arazi editörü sunması. Bunu da editör aracılığıyla belirlenebilen özellikler ve ölçeklendirmeler çerçevesinde gerçekleştiriyor. Yani siz özellikleri ve miktarlarını belirledikten sonra “Arazime Uygula” seçeneğine tıkladığınızda tüm araziniz sonuçtan etkilenerek sizi daha önceden bahsettiğim o detaylı uğraşlardan kurtarıyor. Bu editörde aşağıdaki özellikler mevcut:

  • Yaratma (Voronoi: keskin yerel yükseltiler, Perlin: yayılmış yükseltiler,vb.)
  • Aşındırma (ısı, rüzgâr ve su gibi etkenler tarafından yaratılan erozyon)
  • Doku kaplama(belirtilen yükselti aralıklarında arazinizi belirtilen doku malzemeleriyle kaplar)

Bununla birlikte eğer ağaçlandırmanızda da çeşitlilik istiyorsanız Unity bunun için de ek bir paket hazırlamış durumda. Buradan zip dosyasını indirip çıkarttıktan sonra Arazi Araç Takımı’ndaki gibi paketi projenize ekleyebiliyorsunuz. ‘Terrain Assets’ olarak adlandırılan bu pakette çeşitli ağaç/çalı modelleri ve birden çok farklı doku modelleri bulunmakta. Bu paketi projenize ekledikten sonra herhangi bir betiği arazi objenize taşımanıza gerek yok; projenize eklenmesi yeterli. Etkin olduğunu Unity’nin kendi arazi yaratma editöründeki ağaçlandırma kısmında ağaç tiplerini seçerken görebilirsiniz.

Bu yöntemde yükseklikler gri renk skalasındaki renk değerleriyle eşleştiriliyor. İki boyutlu ve gri tonlarındaki bu heightmap dosyaları sayesinde üç boyutlu şekilleri ifade ve elde edebiliyoruz. Unity’de “.raw” uzantılı bu heightmap dosyalarını arazinize uygulayarak heightmap’te belirlediğiniz yükseltilerin belirlediğiniz koordinatlardaki sonucunu görebiliyorsunuz. Harici olarak ‘3D Terrain Generator’ ifadesiyle anılan arazi yaratma programları sayesinde yükseklik haritalarını Unity projemize ekleyip etkin hale getirebiliyoruz. Bu yöntem için ise güzel bir örnek ‘L3DT’ adlı bir program. Başlangıçta heightmap’inizin genişlik ve yüksekliğini Arazi Haritası Yaratmak
Arazi Haritası Yaratmak
belirliyorsunuz. Ardından Paint programına benzer bir mantıkla, belirli yükselti değerlerini seçip fırçayla arazinizi sembolize eden heightmap alanlarını boyuyorsunuz. Ardından hazırladığınız bu iki boyutlu resmi heightmap’e çeviriyorsunuz. Çevirdiğinizde alçak yerlerin siyaha yakın yüksek yerlerin de beyaza yakın renkte olduğunu göreceksiniz.

Daha sonra Unity’e tekrar dönerek .raw formatında kaydettiğiniz bu heightmap’i Unity’nin menü çubuğunda Arazi->Heightmap İthal Et (Terrain->Import Heightmap) yolunu izleyerek kendi arazi nesnenize uygulayabiliyorsunuz.

Aynı yöntemi Photoshop’la yapmak da mümkün. L3DT’deki mantıkla .raw uzantılı bir yükseklik haritası yaratmanın ardından (sadece gri skalasında bir resim çiziyorsunuz) Unity’e bu verileri aktarmak arazinize şekil vermeye yetiyor.

Ve geldik en kolay, en sevimli ve beni en heyecanlandıran yönteme! 🙂 EasyRoads3D, Unity tarafından da desteklenen bir ek paket. Bu paket arazi yaratmaktan çok, eğer araba yarışı kıvamında bir uygulama geliştiriyorsanız, kolayca yol yaratmanızı sağlıyor. “Yol yaratmakta da ne varmış! Asfalt rengi bir doku(texture) seçip yarattığım arazinin üzerinde çizgi çekerek yol yaparım.” demeyin; çünkü bu çok zahmetli ve hiç de tatmin edici olmayan sonuçlar doğuran bir yöntem. Bu paketin bize sunduğu gerçekçi bir yol, yolun kenarlarında bulunan yan objeler(bank, lamba, ağaç gibi) ve yolun dışında nehir de ekleme gibi muhteşem özellikler içeriyor. Tüm bunların daha önceden yarattığınız araziniz ile bir bütün olarak görünmesi..yani az önce sıraladığım nesnelerin altında hiçbir boşluk kalmıyor; arazinizin kıvrımlarına ayak uyduruyor

Pre-order fiyatı $39 olan bu paketi, bu bedeli ödeyerek satın alıp ya da ücretsiz olan demo sürümünü indirip “AssAssets->Import Package” seçenekleriyle de projenize ekledikten sonra “EasyRoads3D” ismindeki ek bir sekme Unity menü çubuğuna eklenecektir. Arazi->Arazi Yarat (Terrain->Create Terrain) yoluyla arazinizi yarattıktan ve yukarıda bahsettiğim adımlardan birini takip ederek biraz yükselti katıp şekillendirdikten sonra ek olarak gelen bu yeni sekmeye tıklayıp Yeni Nesne (New Object) diyerek size yol, nehir veya çit, duvar gibi başka bir nesne (custom object) seçeneklerinden hangisini oluşturmak istediğinizi soruyor. Yolu seçtiyseniz adını belirlediğiniz yeni nesne hiyerarşi sekmesine ekleniyor ve sizden yolu oluşturmaya yarayan işaretleyici (marker) olarak adlandırılan nesneleri araziye arka arkaya eklemenizi bekliyor. Artık geri kalan işlemleri Kontrol (Inspector) sekmesinde çıkan EasyRoads3D’nin kendi editörü üzerinden yapmaya devam ediyorsunuz. Eklediğiniz iki işaretleyici arasına bir yol parçası kendiliğinden ekleniyor. Bu şekilde yol işaretlerini arazinizin üzerinde istediğiniz yöne doğru adım adım koyabilirsiniz. İşaretleri koyduktan sonra “Araziyi İşle, Yol Geometrisi Yarat” (Process the terrain, creat road geometry) düğmesine tıkladığınızda yolunuz belirlenen doku(texture) ile görünecektir. Diğer bir güzel özellik de bu işaretleyicileriYol Kenarlarını Süsleyelim :)
Yol Kenarlarını Süsleyelim 🙂
hiyerarşi sekmesinden tek bir nesneymiş gibi birer birer seçerek Taşı(Move) aracı ile istediğiniz yüksekliğe çekebilmek ve her yöne kaydırabilmek. Bu işlemleri yaparken yol hiçbir zaman arazinizden bağını koparmıyor; yani eğer bir işaretleyiciyi yukarı doğru hareket ettirirseniz yolun altı da yükseliyor ve boşluk oluşmadan bütünlük sağlanıyor. Ancak, demo sürümünde en fazla 6 tane işaretleyici kullanmaya izin veriliyor.

Yan Nesne(Side Object) adı verilen, yol boyunca yolun kenarlarına nesne koymanızı sağlayan bu seçenek de yeni tanımlayacağınız (model ve yerleşme aralıkları) kenar nesnesini yol boyunca yerleştiriyor. Bunun için yanlarında nesne yaratacağınız yol nesnesini önce seçmeniz, ardından da EasyRoads3D’nin editöründen Genel Ayarlar (General Settings) düğmesine tıklayıp, yarattığınız yan nesneleri etkinleştirmeniz gerekiyor. Bundan sonra bir soldaki “Araziyi İşle, Yol Geometrisi Yarat” (Process the terrain, creat road geometry) düğmesinde “Yan Nesneler İnşa Et” (Build Side Objects) dediğinizde bu yol için etkinleştirilmiş olan yan nesneler yolun kenarlarına eklenmiş oluyor.

 

Sonraki yazımda Unity’de yaptığınız oyunu nasıl -direksiyon, gaz, fren, vites kolu gibi parçalardan oluşan- oyun konsolunuza bağlayabileceğinizi anlatmak istiyorum. Kendi projemiz ilerledikçe size de öğrendiklerimi aktarıyorum özetle. 🙂 Unity konusunda herhangi bir sorunuz/talebiniz varsa çekinmeden bize ulaşın. Sonraki yazımda görüşmek üzere!

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*