
Unity’de El Feneri Yapımı 1 (Flashlight Cookie)
Merhaba, bir önceki dersimizde Unity ile bomba yapımını yani AddExplosionForce kullanımını öğrenmiştik.Böylece bombayı attığımız noktadaki nesneleri ile etkileşime geçebiliyorduk.Bugünkü dersimizde ise, Unity ile el feneri yapımını öğreneceğiz.Diğer derslere oranla yapımı daha basit bir ders olacak.Tabi yapacağımız el fenerine birkaç özellikte eklemeyi ihmal etmeyeceğiz.Şimdi lafı uzatmadan Unity‘de yeni bir proje oluşturalım ve dersimize başlayalım.
Sahnemizi oluşturmaya başlayalım.
İlk olarak bu projede kullanacağımız senaryoya bir bakalım.Projemizin konusu el feneri olduğu için, olabildiğince karanlık bir ortam oluşturmamız gerekiyor.Bunun için bir ev modeli kullanacağız ve içerisinde el feneri ile dolaşacağız.Şimdi sahnemizi oluşturmaya başlayabiliriz.İlk olarak yeni bir Plane nesnesi oluşturuyoruz.Bu nesne bizim zeminimizi oluşturacak ve evimizi bu zemine oturtacağız.
Daha sonra internetten bulduğumuz herhangi bir ev modelini (bu arada ev modelini kullanma amacımız fenerden çıkacak olan ışığın daha belirgin olması içindir.Siz başka bir model yada hiçbir model olmadan da yapabilirsiniz.) indiriyoruz.İndirdiğimiz 3d ev modelini Unity‘de Project penceresine sürükleyerek bırakıyoruz.Prefab halinde olan bu ev modelini, Hierarchy yada Scene penceresine sürükleyerek bırakıyoruz.
Şimdi ev içinde dolaşabilmek için FPSController asset dosyasına ihtiyacımız var.Eğer Unity‘nin eski sürümlerinden birini kullanıyorsanız, üst menüden Assets > İmport Package yolunu izleyerek projenize ekleyebilirsiniz.Daha yeni versiyonlarda ise bu bölümden artık ulaşamıyorsunuz.Bunun yerine Assets Store bölümünden Standart Assets eklentisini indirmeniz gerekiyor.
Bu eklentiyi projenize dahil ettikten sonra Project penceresinde sırasıyla, Standard Assets > Characters > FirstPersonCharacter > Prefabs yolunu izliyoruz.Klasörde iki adet prefab dosyası görüyoruz.Bunlardan ilki olan yani, FPSController ismindeki prefab dosyasını Scene penceremize sürükleyerek bırakıyoruz.Bu aşamaya kadar sadece sahnemizi oluşturduk ve sahnemizde kolayca hareket etmemiz için gerekli assets dosyalarını ekledik.Şimdi yazımızın asıl konusuna geçmeden değinmem gereken birkaç şey var.
İlk olarak, sahnemizde hazır olarak gelen bir Main Camera nesnesi bulunuyor.Biz az önce bir FPSController prefab dosyası ekledik.Bu prefabın çocuk nesnesi pozisyonunda yani FirstPersonCharacter isminde bir nesnesi daha bulunuyor ve bunda da bir Main Camera bulunuyor.Yani projemizi başlattığımız zaman bir çakışma meydana gelmemesi için, sahnemizdeki Main Camera nesnesini silebiliriz yada bu nesnenin etiketini sıfırlayabiliriz.Böylece istenmeyen hataların önüne geçmiş oluruz.
El fenerini sahnemize ekleyelim.
Evet şimdi, internetten bulduğumuz bir el feneri modelini indirip projemize dahil ediyoruz.Yada isterseniz basit bir Cube nesnesini de el feneri gibi kullanabilirsiniz.Daha sonra Project penceresinde bulunan bu modelin prefab dosyasını, Scene penceresine sürükleyerek bırakıyoruz.Hierarchy penceresinde sizin de görmüş olduğunuz gibi fenerimiz, FirstPersonCharacter nesnesinin alt nesnesi (child object) konumunda yer alıyor.
Bunun nedeni ise projeyi başlattığımız zaman, bizim hareketlerimiz ile birlikte hareket etmesi içindir.Yani hareket ederken yada fare ile sağa sola bakarken, el fenerimizin aynı şekilde hareket etmesi gerekiyor.Şimdi el fenerimizin nesnesine Inspector penceresinden yeni bir etiket oluşturuyoruz.Artık el fenerimizin ışıklarını ekleyebiliriz.Normalde bir ışık nesnesi ile yapabiliriz fakat bu projede ben iki ışık kullanacağım.
El fenerinin ışıklarını yakalım.
Neden iki ışık kullandığımızı birazdan anlayacağınızı umuyorum.Şimdi Hierarchy penceresinde bulunan fener nesnemize sağ tıklayarak açılan pencereden sırasıyla, Light > Spotlight yolunu izliyoruz.Unity’de fener yapmak için en uygun ışık seçimi Spotlight‘dır.Çünkü dar bir alana çok güçlü ışık verebilirler.Işığımızın pozisyonunu Scene penceresinden tam fenerimizin önünde olacak şekilde ayarlıyoruz.Şimdi eklediğimiz ilk ışık nesnemizin Inspector penceresindeki ayarlarını oluşturalım.
İlk olarak Range yani ışığımızın menzilini ayarlıyoruz.Bu değeri kendinize göre belirleyebilirsiniz.İkinci olarak Spot Angle yani ışığımızın yayılma açısını ayarlıyoruz.Bu değeri ne kadar yüksek tutarsanız, o kadar geniş bir yayılma alanı belirlemiş olursanız.Üçüncü olarak, ışığın saydam olmayan nesnelerin arkasına geçemediği zaman bir tepki vermesini istiyorsanız yada bir başka değişle gölge oluşmasını istiyorsanız, Shadow Type özelliğimizi aktif hale getiriyoruz.
Buraya kadar ilk ışığımızın ayarlarını bitirdik sayılır.Yapmamız gereken son bir şey daha var.Light bileşenimizin ayarlarında Cookie diye bir özellik vardır.Kısaca bu özellik ile, sahnemizde yer alan ışıkların önüne var olmayan bir nesnenin ışık efektini ekleyebiliyoruz.Mesela bu proje için, el fenerimizin önündeki merceğin yansımasını ekleyeceğiz.İnternette flashlight cookie olarak arattığımız zaman, birbirinden farklı pek çok ışık efekti bulmak mümkündür.
İndirdiğimiz ışık efektini Project penceresine sürükleyerek bırakıyoruz.Daha sonra Inspector penceresine geliyoruz.Texture Type ayarını Cookie, Light Type ayarını Spotlight ve Alpha Source ayarını From Gray Scale olarak belirliyoruz.Daha sonra aşağıdan “Apply” butonu ile ayarlarımızı kaydediyoruz.Artık Light bileşenimizin Cookie bölümüne flashlight cookie efektimizi ekleyebiliriz.Şimdilik fenerimizin son hali aşağıdaki gibi oluyor.
İlk ışığımızı ayarladığımıza göre artık ikinci ışığımız ile uğraşmaya başlayabiliriz.Yine Hierarchy penceresinde bulunan fener nesnemize sağ tıklayarak açılan pencereden sırasıyla, Light > Spotlight yolunu izliyoruz.Yine ışığımızın pozisyonunu Scene penceresinden fenerimizin önüne gelecek şekilde ayarlıyoruz.Tabi bu sefer ilk ışığımızın pozisyonundan biraz daha ileriye konumlandırıyoruz.
İkinci ışığımız yani Spotlight nesnemizde ilkinden farklı ayarlar yapacağız.Bunun nedeni, bir tanesi el fenerimizin gerçekçiliğini arttırırken diğeri ise asıl amacına yani etrafı aydınlatmaya odaklanıyor.Şimdi Range yani ışığımızın menzilini ayarlıyoruz.Bu değeri bu sefer düşük tutmamız gerekiyor.Çünkü ilk ışığımızın baskılamamız gerekiyor.İkinci olarak Spot Angle yani ışığımızın yayılma açısını ayarlıyoruz.
Bu değeri bu sefer ilk ışığımızın değerinden yüksekte tutuyoruz.Çünkü amacımız etrafı aydınlatmak.Üçüncü olarak, İntensity yani ışığımızın yoğunluğunu ayarlıyoruz.Bu değeri ilk ışımızda normal değerinde tutmuştuk.Burada ise biraz daha arttırıyoruz.Dördüncü olarak, Shadow Type özelliğimizi pasif halde bırakıyoruz.Bunun nedeni ise, hem ilk ışığımızda bu değerin aktif olması hemde performans üzerinde olumsuz etki yaratacak olmasındandır.İkinci ışıkta Cookie özelliğine gerek olmadığı için kullanmıyoruz.
Evet el feneri projemizin ilk kısmını burada bitirmiş bulunmaktayız.Yazıyı çok uzatmamak adına bu projeyi iki bölüme ayırdım.İlk kısımda sizin de gördüğünüz gibi, sahnemizi hazırladık.Daha sonra projemizin ana konusu olan el fenerimize gerekli bileşenleri ekledik ve gerekli ayarlamaları yaptık.İkinci bölümde yani devam yazısında ise, el fenerimiz için gerekli kodları yazacağız ve birkaç özellik daha ekleyeceğiz.Bir sonraki yazıda görüşmek üzere…