Unity & Vuforia ile Augmented Reality(AR) Uygulaması Geliştirmek — 1

İlker Güldalı
5 min readJan 1, 2019

Yazıda kısaca Unity ile AR dünyasına ‘Hello World’ diyeceğiz. O halde hiç durmadan başlayalım. 🏃

Augmented Reality/Artırılmış Gerçeklik, kullanıcının gerçek dünyadan bağını koparmadan sanal nesnelerle etkileşime geçebileceği bir çevre sunmakta. Bu noktada Virtual Reality(VR) ile en önemli farkını ortaya koymuş oluyoruz.

Belirlenen marker’ı(hedefi) Unity içerisinde Image Target olarak ayarlayıp, etrafına istediğimiz objeleri yerleştireceğiz bu yazı sonunda.

Geliştireceğimiz basit uygulamada Vuforia SDK’sını kullanacağız. Vuforia kısaca kamerayı tuttuğumuz bölgedeki marker’ı algılayacak ve oraya bizim Unity’de konumlandırdığımız nesneleri gerçek dünyada yerleştirmemize yarayacak.

O halde başlayalım! 👊

Unity’yi indirip kurulumları yaptığınızı varsayarak yazıya devam ediyorum. Eğer indirmediyseniz buradan Unity’i inderebilirsiniz. İndirme sırasında Vuforia’yı da seçerseniz SDK’ya ait dosyaları — alttaki gibi — tekrar indirip dahil etmenize gerek kalmaz.

Unity açılış ekranı

Unity’yi açtıkdan sonra “New” butonuna tıklayıp, “Project Name” kısmını doldurup “Template” kısmından da “3D”yi seçip “Create project” diyoruz.

Vuforia SDK

Bu aşamada Vuforia SDK’sına ulaşabilmek ve marker’ımızı sisteme yükleyebilmek için Vuforia Developer Portal’a üye olmamız gerekmekte. Linkten üyeliğinizi tamamladıktan sonra “Downloads” kısmından “Download Unity Extension (legacy)” olanı indiriyoruz. Eğer Unity’nin kurulumunu yaparken Vuforia’yı seçerek yüklemişseniz bu kısmı geçebilirsiniz.

İndirmenin ardından dosyayı açmak üzere tıklıyoruz. Dosya otomatik olarak açıldığında, Unity içerisinde paketin import edilip edilmeyeceğini size soracak. “Import” butonuna tıklayıp devam ediyoruz.

Aktarım işlemi bittiği zaman üstteki resimdeki gibi bir dosya hiyerarşisi olmalı.

Unity’de “Edit” menüsünden “Project Settings” -> “Player” kısmını seçiyoruz. Burada “XR” kısmından “Vuforia Augmented Reality”yi aktif hale getiriyoruz. Artık Vuforia ayarlarını yapabiliriz.

Vuforia ayarlarını yapmadan önce yapmamız gereken bir şey var o da Vuforia Developler Portal’daki “Develop” bölümünden — License Manager altından — “Development Key” oluşturmak. Bunun için ilgili sayfaya girip yukardaki resimde gözüken “Get Development Key” butonuna tıklamak yeterli. Ardından Licence Name girip Confirm diyerek keyimizi oluşturuyoruz. Üzerine çift tıklayarak key bilgisine ulaşabiliriz. Alttaki gibi bir key çıkmakta:

Gördüğümüz keyi kopyalayıp, Unity içerisinde Window -> Vuforia Configuration kısmından ya da proje dosyalarının sıralandığı yerden Resources altındaki VuforiaConfiguration dosyasına ulaşıyoruz. Buradaki “App license key” kısmına key’imizi yapıştırıyoruz.

Marker Oluşturmak

Uygulamamızdaki sanal nesneleri gerçek dünyada yerleştirebilmek için “marker” dediğimiz Vuforia tarafından hedef olarak belirlenecek işaretçi oluşturmamız gerekiyor. Bu işaretçi ne kadar kaliteli olursa uygulamamızda o kadar iyi performans sergiler ve kameramız hedef kaçırmaksızın takibi iyi sağlar. Bir başka yazıda markerda performansı etkileyen şeyleri konuşabiliriz. Şimdilik markerımızı oluşturmaya devam edelim.

Brosvision sitesinden kolayca markerımızı oluşturabiliriz. Siteye girdikten sonra “Generate” butonuna tıklayarak bir adet hedef oluşturalım ve o resmi masaüstümüze kaydedelim ve çıktısını alalım.

Marker’ın Unity’ye dahil edilmesi

Oluşturduğumuz marker’ı Unity’ye dahil etmek için öncelikle Vuforia Developer Portal’dan -> Develop -> Target Manager kısmına eklememiz gerekiyor.

Burada “create database” diyip bir isim verip database’imizi oluşturuyoruz. Daha sonra o database’in içerisine girip “Add Target” diyoruz.

Açılan pencerede hedefimizin tipini, biz sadece tek bir resim kullanacağımız için single image’i seçiyoruz, dosya adresini, genişliğini ve ismini seçiyoruz. Örneğin hedefiniz bir küp ise buradan cuboid’i seçip daha sonra küpün 6 yüzü için 6 adet marker yerleştiriyorsunuz. “Add” dedikten sonra hedefimiz Vuforia tarafından taranıp sisteme ekleniyor. Altta gördüğünüz Rating kısmı marker’ın ne kadar performanslı çalışacağı hakkında bilgi vermekte.

Ekleme işlemi ardından marker’ımızı seçip sağ tarafta bulunan “Download Database” butonuna tıklıyoruz. Açılan pencereden Unity Editor’u seçip indiriyoruz.

İndirilen dosyayı açtığınız zaman otomatik olarak paket içeriği bilgisi, projenize dahil edilmek üzere popup bilgi çıkacak. Import diyerek devam ediyoruz.

Unity’nin içerisine dalalım!

Artık gerekli kurulumları yaptığımıza göre Unity üzerinde çalışmaya başlayabiliriz.

Uygulamızı Android üzerinde çalıştıracağımız için File -> Build Settings’ten Android’i seçip “Switch Platfrom” butotuna tıklayıp projeyi Android platformunda geliştirmek amacıyla geçişimizi sağlıyoruz.

Öncelikle hierarchy(hiyerarşi) kısmına gelip sağ tıklayıp Vuforia -> ARCamera’yı dahil ediyoruz. Bu noktada — daha öncesinde projeye dahil etmemişseniz — Vuforia SDK’sını projeye import etmek için bir popup çıkacak onay verip devam ediyoruz.

Ek olarak hiyerarşi kısmında bulunan “Main Camera” objesinide kaldırabiliriz. Bu noktadan sonra ARCamera ile devam edeceğiz.

Ardından aynı şekilde alan içerisinde sağ tıklayıp Vuforia -> Image’i dahil ediyoruz ve Image Target objesine çift tıkladığımız zaman otomatik olarak yaklaşacak. Marker’ımız ve hiyerarşi kısmı alttaki gibi gözüküyor olmalı.

Bu noktadan sonra Image Target’ımızda dahil olduğuna göre bu objenin altına ekleyeceğimiz her obje bizim marker’ımızın duruma göre gerçek dünyada yer alacak.

Örnek olarak, Image Target seçili durumdayken sağ tıklayıp 3D Object-> Sphere’i seçerek bir adet küre ekleyelim. Properties kısmında “scale” ile boyutunu ayarlayıp, sahnedeki küre üzerinde çıkan x,y ve z eksenlerinde hareketi sağlayan yönlendiricilerle konumunu ayarlayalım.

Artık uygulamamızın nasıl göründüğünü Webcam ile test edebiliriz. Üstte yer alan “Play” butonuna tıklayım ve marker’ımızı kameraya doğru tutalım. Sanal küre objesinin marker üzerinde oluşturulduğunu göreceksiniz.

Uygulamayı Android’te çalıştırmak için yapılması gerekenleri de bir sonraki yazıda —umarım — yazacağım 😃

Mutlu Yıllar! 🎄 🎆

--

--