În cadrul conferinței Google I / O din 2014, Google a introdus vizualizatorul Cardboard VR, un dispozitiv ieftin fabricat din carton, care utilizează lentile și un telefon al utilizatorului pentru a oferi acces simplu la aplicațiile de realitate virtuală. Doi ani mai tarziu, Google a anuntat planurile de a se extinde pe aceasta platforma prin vanzarea unui viewer mai durabil cu un controler, cunoscut sub numele de Daydream View, care este construit pe baza aceluiasi concept de folosire a unui telefon ca principal furnizor VR. Pentru a obține mai multe aplicații dezvoltate care suportă această platformă, Google a lansat pachetele SDK de carton pentru Android (SDK standard și NDK), iOS, motorul de joc Unity și motorul de joc Unreal.
Acest tutorial este primul dintr-o serie scurtă despre SDK Android Cardboard și Daydream. În această serie, vă vom arăta cum să utilizați unele dintre instrumentele SDK și afișările făcute pentru a adăuga funcții simple în aplicațiile dvs. Există un număr surprinzător de moduri în care puteți integra cartonașul SDK în aplicațiile dvs. pentru jocuri și multimedia!
Mă voi concentra pe trei exemple care vă vor face să începeți în lumea dezvoltării VR: un vizualizator de fotosferă, un vizualizator video 360 și un cititor de intrare pentru controlerul Daydream. Ne vom concentra asupra vizualizatorului fotosferei în acest tutorial și vom revedea celelalte două subiecte în lecțiile ulterioare.
Spre deosebire de cele mai multe biblioteci din Android, SDK pentru Android Cardboard nu este disponibil oficial într-un depozit la distanță care poate fi importat ca o dependență prin Gradle. Pentru a le utiliza, va trebui să clonați SDK-ul Android Cardboard de la GitHub pe computer prin Git.
git clone https://github.com/googlevr/gvr-android-sdk.git
După ce ați descărcat SDK-ul, începeți să rulați unul dintre mostrele preambalate. În ecranul de lansare Android Studio, selectați Proiect de import. Apoi, selectați directorul rădăcină pentru SDK pe care tocmai l-ați clonat și apăsați O.K.
În acest moment, veți avea acces la toate componentele și eșantioanele bibliotecii disponibile în Carton SDK pentru Android. Puteți selecta una dintre mostrele care se execută pe dispozitivul dvs. din meniul derulant al modulului din partea de sus a ferestrei Android Studio. Pentru a vă asigura că totul funcționează conform așteptărilor, selectați mostre-sdk-simplepanowidget și faceți clic pe verde Alerga săgeată.
Odată ce eșantionul a fost compilat și instalat, ar trebui să vedeți un ecran cu informații despre Machu Picchu, complet cu o vedere care se rotește în jurul unei fotosfere atunci când mutați dispozitivul Android.
Acum, că puteți rula aplicațiile de probă de pe dispozitiv, să ne aruncăm o privire asupra creării de noi aplicații Android bazate pe carton.
Să începem prin crearea unui nou proiect Android cu o versiune minimă SDK de 19 (KitKat). După ce ați trecut prin pașii standard de selectare și de creare a unei șabloane de aplicații, va trebui să copiați bibliotecile necesare pentru proiectul dvs. din SDK de carton biblioteci director în dosarul rădăcină al proiectului dvs. Pentru acest exemplu, copiați următoarele foldere: comun, commonwidget, și panowidget.
Odată ce fișierele de bibliotecă se află în locul lor, deschideți-vă proiectul settings.gradle fişier. Va trebui să adăugați acele module de bibliotecă în proiect prin intermediul acestui fișier.
include: "app", "common", "commonwidget", "panowidget"
Apoi, va trebui să faceți referire la aceste biblioteci în dvs. build.gradle fișier în dependențe
nod, permițându-vă să accesați componentele prefabricate pentru Carton. Va trebui, de asemenea, să adăugați biblioteca JavaNano Buffers Protocol, care este o generație de coduri și o bibliotecă de execuție pentru a ajuta la gestionarea resurselor limitate ale dispozitivelor Android.
dependență compile fileTree (dir: 'libs', include: ['* .jar']) testCompile 'junit: junit: 4.12' compile 'com.android.support:appcompat-v7:25.0.0' common ") compilați proiectul (': commonwidget') compilați proiectul (': panowidget') compilați com.google.protobuf.nano: protobuf-javanano: 3.0.0-alpha-7 '
După ce dependențele au fost configurate, deschideți proiectul AndroidManifest.xml. În partea de sus a fișierului, în cadrul manifesta
nod, va trebui să adăugați INTERNET
și READ_EXTERNAL_STORAGE
permisiunile pentru cartușul SDK.
În cadrul activitate
nod pentru dvs. Activitate principala
clasă, adăugați a categorie
la intenție-filtru
pentru CARTON
telespectator.
Acum, că procesul de configurare se face, putem săpăm în partea distractivă: codul. Acest proiect va citi o imagine a fotosferei app / src / main / active și puneți-l într-o VrPanoramaView
. Puteți lua o imagine fotosphere prin intermediul aplicației standard Android cu cameră și plasați-o în acest director. Pentru acest exemplu, voi folosi o imagine numită openspace.jpg.
În fișierul de aspect pentru dvs. Activitate
, adauga o VrPanoramaView
pe care le veți folosi în aplicația dvs..
Apoi, deschideți Activitate principala
clasă. Va trebui să obțineți mai întâi o referință la dvs. VrPanoramaView
în onCreate (Bundle)
, și apoi vă puteți încărca Bitmap
în ea prin loadPhotoSphere ()
metoda de ajutor pe care o vom defini într-un moment.
privat VrPanoramaView mVrPanoramaView; @Override protejate void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); mVrPanoramaView = (VrPanoramaView) findViewById (rd.pano_view); loadPhotoSphere ();
loadPhotoSphere ()
preluă imaginea din folderul de materiale și o încarcă în VrPanoramaView
cu VrPanoramaView.Options
obiect. Merită remarcat faptul că aceste imagini pot fi relativ mari, astfel încât această operație ar apărea în mod normal pe un fir de fundal, deși această lecție va păstra totul pe firul UI pentru simplitate.
private void loadPhotoSphere () // Aceasta ar putea dura ceva timp. Ar trebui să facă pe un fir de fundal, dar bine pentru exemplul curent VrPanoramaView.Options options = noi VrPanoramaView.Options (); IntrareStream inputStream = null; AssetManager activManager = getAssets (); încercați inputStream = assetManager.open ("openspace.jpg"); options.inputType = VrPanoramaView.Options.TYPE_MONO; mVrPanoramaView.loadImageFromBitmap (BitmapFactory.decodeStream (inputStream), opțiuni); inputStream.close (); captură (IOException e) Log.e ("Tuts +", "Excepție în loadPhotoSphere:" + e.getMessage ());
Observați că pentru VrPanoramaView.Options.inputType
valoare, pe care o folosim TYPE_MONO
. Aceasta înseamnă că VrPanoramaView
se așteaptă să se afișeze o singură imagine de canal, în timp ce a tip de introducere
de TYPE_STEREO_OVER_UNDER
s-ar aștepta o imagine care este împărțită vertical cu ochiul stâng și drept văzând jumătățile de sus și de jos ale respectivei imagini.
Ultimul lucru pe care trebuie să-l faceți este să întrerupeți și să reluați redarea VrPanoramaView
în onPause ()
și onResume ()
, precum și să o deconectați în mod corespunzător onDestroy ()
.
@Override protejate void onPause () mVrPanoramaView.pauseRendering (); super.onPause (); @Override protejate void onResume () super.onResume (); mVrPanoramaView.resumeRendering (); @Override protejate void onDestroy () mVrPanoramaView.shutdown (); super.onDestroy ();
Acum, când am terminat de instalat aplicația, să mergem mai departe și să o executați. Aplicația dvs. ar trebui să afișeze fotosfera pe ecran și ar trebui să puteți muta telefonul în jur pentru a vedea porțiuni diferite ale imaginii.
Dacă apăsați pe pictograma de carton din colțul din dreapta jos al paginii Vedere
, acesta va împărți imaginea în două imagini ușor decalate care pot fi văzute printr-un vizualizator de carton sau Daydream.
Deși nu este folosit în acest tutorial, este de remarcat, de asemenea, că VrPanoramaView
poate accepta a VrPanoramaEventListener
obiect care va notifica aplicația când o nouă imagine a reușit sau nu sa încărcat.
Felicitări - ați creat prima aplicație din carton, un vizualizator de imagini pentru imagini panoramice și fotosfere! Deși acesta este un exemplu simplificat, acesta vă oferă noțiunile de bază despre cum să creați propriile aplicații pentru a utiliza vizualizatorul de carton. Pentru un exemplu uimitor de aplicație care duce acest concept la un pas mai departe, recomand foarte mult aplicația Google pentru expediții.
Sper că v-ați bucurat să vă scufundați degetele de la picioare în lumea VR. În următorul tutorial, vă voi arăta cum să redați fișiere video de 360 de grade prin SDK-ul de carton.
Între timp, verificați câteva dintre celelalte cursuri și tutoriale ale Android VR, chiar aici pe Envato Tuts+.