
Unity’de Modelin Pivot Noktasını Değiştirmek
Merhaba, bir önceki dersimizde Unity ile etkileşime geçtiğimiz farklı zeminlere göre ayak seslerini nasıl değiştirebileceğimizi öğrenmiştik.Bugünkü dersimizde ise Unity‘de projemize dahil ettiğimiz modellerin pivot noktalarını nasıl değiştirebileceğimizi öğreneceğiz.Eğer bir oyun motoru ile proje geliştiriyorsanız, bu sorun ile en az bir kez karşı karşıya gelmişsinizdir.Aslında sizden kaynaklı bir sorun bulunmuyor.Pivot noktasının farklı bir yerde olmasının temel nedeni, kullandığınız model oluşturulurken pivot noktasını farklı bir yerde kalmış olmasıdır.Şimdi yeni bir proje oluşturalım ve dersimize başlayalım.
Sahnemizi oluşturmaya başlayalım.
Evet sahnemizi oluşturmaya başlamadan önce, bir örnek ile devam edelim.Örneğin bir teker modellemesi yapıyorsunuz.Modelinizi oluştururken pivot noktanızı, tekerinizin tam merkezine gelecek şekilde konumlandırmış olmanız gerekiyor.Çünkü teker modeli kendi ekseni etrafında dönmesi gerekiyor.Buradan her modelde pivot noktası merkezde konumlandırılması gerekiyor gibi bir çıkarım yapmanız da yanlış olur.Bunun için bir başka örnek vereyim.
Örneğin, bir pencere modeli yapıyorsunuz.Pivot noktasını eğer pencerenizin merkezine gelecek şekilde konumlandırırsanız, bu sefer yanlış bir eksende pencereniz açılıp kapanacaktır.Doğru pivot noktanız, pencerenizin menteşe bölümü olması gerekiyor.Böylece açılıp kapanma sırasında modelinizin pivot noktası doğru olduğu için bir sorun olmayacaktır.Şimdi bu iki örnek, eğer modeli kendiniz oluşturuyorsanız geçerliydi.Biz bu derste kullanacağımız modelleri kendimiz oluşturmadığımız zaman ne yapmamız gerektiğini öğreneceğiz.O zaman başlayalım.
Yanlış pivot noktalarını görelim.
Evet ben internetten bulduğum birkaç modeli projeme dahil ettim.Siz kendi kullandığınız modeller üzerinde aynı işlemleri uygulayabilirsiniz.Şimdi yukarıda gördüğünüz resimdeki gibi, projeme dahil ettiğim pervane modelinin pivot noktası yanlış yerde bulunuyor.Normalde pervanenin dönüşü merkez noktasından olması gerekiyor.Fakat bu modelde sol tarafa konumlandırılmış.Şimdi bu modelin pivot ekseni etrafındaki dönüşüne bakalım.
Göründüğü gibi yanlış bir eksende dönüşünü gerçekleştiriyor.Bu arada Scene penceresi üzerinde bulunan araçlarımızda pivot noktasını merkeze alabiliyoruz.Bunun yanında yerel yada dünya merkezine göre dönüşünü baz almasını ayarlayabiliyoruz.Ancak modelden kaynaklı bir sorun olduğu için bu araçlar bir işimize yaramıyor.Bunun için farklı bir çözüm yoluna gideceğiz.Şimdi yine internet üzerinden indirdiğim bir tekerlek modelini inceleyelim.
Pervane modelinde olduğu gibi, bu modelinde pivot noktası yanlış yerde bulunuyor.Birazdan nasıl düzeltebileceğimize geçeceğiz ancak pivot noktasını bir modelleme programı ile de değiştirebilmeniz mümkündür.Bu yazı Unity üzerine olduğu için bunu nasıl yapacağımızı anlatmayacağım.Ancak bu bilgiyi de aklınızda bulundurmanız faydalıdır diye düşünüyorum.Şimdi pervanede olduğu gibi tekerleğin nasıl döndüğünü de inceleyelim.
Nesnenin pivot noktası nasıl değiştirilir?
Evet şimdi kullandığımız modellerin pivot noktalarını kendi istediğimiz gibi düzenlemeye gelelim.Yukarıdaki örnek modellerde gördüğümüz gibi ben her iki model içinde merkez noktayı referans alacağım.Ancak sizin modelinizin pivot noktası farklı bir noktada olması gerekiyor ise (örnek olarak bir pencere) buna uygun olarak pivot noktanızı ayarlamanız gerekiyor.
Şimdi Hierarchy penceresinde sağ tıklayarak bir Cube nesnesi oluşturuyoruz.Normalde bir boş nesne oluşturarak da bu işlemi yapmamız mümkündür.Ancak yeni pivot noktasını tam olarak görmek için bir Cube nesnesinden yararlanacağız.Daha sonra sahnemizdeki modelin pivot noktasını yine sahnemizde oluşturduğumuz Cube nesnemizin tam ortasına gelecek şekilde konumlandırıyoruz.
Resimde göründüğü gibi modelimizin pivot noktasını Cube nesnemizin ortasına gelecek şekilde değiştirdik.Ancak henüz pervane modelimizin pivot noktası değişmedi.Yukarıdaki resime dikkatli bakacak olursak, Hierarchy penceresinde pervane modelimizin Cube nesnemizin alt nesnesi (parent-child object) olduğunu görüyoruz.Bunu yapmamızın nedeni artık bu nesneyi projemizde kullanırken, pervane modelimiz yerine bu modelimizin ebeveyn nesnesi olan Cube nesnesini kullanacak olmamızdır.Çünkü artık modelin pivot noktasını Cube nesnesi oluşturuyor.
Yine tekerlek modelimiz içinde aynı işlemleri uyguluyoruz.Son olarak Cube nesnemizi sahneden kaldırmamız gerekiyor.Çünkü biz bu Cube nesnesini referans olarak kullanmak amacı ile sahnemizde tuttuk.Artık doğru pivot noktalarını belirlediğimize göre Cube nesnemizin bazı bileşenlerini kaldırabiliriz.Bunu yapmak için Hierarchy penceresinde Cube nesnemizi seçiyoruz.Daha sonra sağ taraftaki Inspector penceresine geliyoruz.Burada bulunan Mesh Filter, Mesh Renderer ve Box Collider bileşenlerini siliyoruz.
Yani kısaca Cube nesnemizi bir boş nesne haline getiriyoruz.Artık doğru pivot noktalarını görmek için modellerimizi test etmeye hazırız.Ben test için basit bir C# Script dosyası oluşturdum.Bunu burada paylaşmaya gerek yok diye düşünüyorum.Script dosyasının yaptığı tek şey, nesneleri kendi pivot eksenlerinde döndürmektir.Evet projemizin burada sonuna geldik.Bir sonraki yazıda görüşmek üzere…