Daftar Isi:
- Langkah 1: Rintangan…
- Langkah 2: Kompas Bodoh
- Langkah 3: Akhirnya Solusi
- Langkah 4: Biarkan Aplikasi Bekerja
- Langkah 5: Konfigurasikan GameSparks
- Langkah 6: Tambahkan Acara Terakhir…
- Langkah 7: Tambahkan Kode Cloud
- Langkah 8: KITA SELESAI
Video: Menempatkan Objek AR di Koordinat GPS di Augmented Reality: 8 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Instruksi ini akan membahas pembuatan aplikasi seluler untuk menempatkan objek AR pada koordinat GPS dengan ARkit dan ARCore menggunakan Unity3D. Saya akan memandu Anda dalam menyiapkan proyek yang saya buat menggunakan Mapbox yang memungkinkan kita untuk menandai pesan di lokasi GPS tertentu dan menulisnya ke database GameSparks.
Semua perangkat lunak dan proyek yang akan kami gunakan di sini gratis.
Unduh Unity 3D di sini jika Anda belum memilikinya:
unity3d.com/
Langkah 1: Rintangan…
Jadi ini bukan aplikasi termudah untuk dibuat dengan keterbatasan GPS seluler dan kompas seluler saat ini.
Sejujurnya objek muncul di tempat yang seharusnya mungkin sekitar 50% dari waktu. Jadi hasilnya tidak terlalu bagus, tetapi semakin akurat semakin dekat Anda dengan objek.
Either way, saya pikir cara yang lebih baik untuk AR berbasis GPS pada saat ini adalah menggunakan peta seperti pokemon go dan ketika Anda mendekati suatu objek, kamera terbuka dan Anda hanya melihat objek itu tepat di depan Anda. Di masa depan saya ingin melakukan tutorial lengkap tentang implementasi yang lebih sederhana seperti itu.
Either way saya telah menggunakan Mapbox sebelumnya dan saya tahu mereka memiliki kelas konversi yang memiliki fungsi untuk mengubah koordinat GPS ke koordinat dunia Unity. Saya pikir saya bisa memasukkan beberapa koordinat GPS dan mereka akan muncul di tempat yang saya inginkan. Tidak berhasil.
Objek muncul dengan benar relatif satu sama lain tetapi mereka tidak pernah berada di tempat yang tepat. Jadi saya melakukan riset dan menemukan bahwa Kamera Unity saya perlu disejajarkan dengan utara yang sebenarnya agar objek muncul di tempat yang tepat.
Masalahnya adalah kompas di ponsel Anda tidak pernah benar-benar akurat.
Langkah 2: Kompas Bodoh
Masalah utama adalah ketika Anda menempatkan objek jauh dari kamera, jika ide ponsel Anda tentang utara yang sebenarnya tidak aktif bahkan beberapa derajat, objek di kejauhan akan tampak sangat jauh.
Saya hampir menyerah pada usaha ini tetapi seorang teman memberi tahu saya tentang proyek GitHub ini:
github.com/mapbox/mapbox-ar-unity
Ini adalah upaya untuk melakukan AR "skala dunia" dari Mapbox di mana objek ditambatkan ke koordinat GPS sehingga pengalaman Augmented Reality dapat bekerja di luar jarak jauh, bukan hanya di dalam ruangan kecil di rumah Anda.
Proyek mereka menggunakan delta Posisi AR dan delta Posisi GPS untuk menghitung sudut yang merupakan offset dari kamera AR ke utara yang sebenarnya. Jadi pada dasarnya ambil satu pembacaan GPS saat pengguna memulai aplikasi dan minta mereka berjalan dalam garis lurus dan lakukan pembacaan GPS lainnya. Kemudian dengan dua titik ini Anda dapat mengetahui arah mana orang itu berjalan (dengan asumsi kamera mereka menunjuk ke arah mereka berjalan). Mereka menemukan bahwa ini lebih akurat daripada menggunakan kompas di telepon.
Masalah lain yang mereka coba selesaikan adalah penyimpangan dengan ARkit. Pelacakan baik-baik saja di dalam ruangan kecil tetapi ketika Anda berjalan di luar jarak jauh, objek AR akhirnya melayang jauh dari tempat yang seharusnya.
Langkah 3: Akhirnya Solusi
Jadi proyek Mapbox ini menawarkan cara untuk mendapatkan arah hadap yang andal relatif terhadap utara yang sebenarnya sehingga yang tersisa hanyalah menempatkan objek di dunia.
Saya akhirnya memperluas contoh ini sedikit sehingga saya bisa menandai pesan teks di lokasi GPS tertentu dan kemudian menulis informasi itu ke database GameSparks. Itulah yang akan saya tunjukkan cara menggunakannya.
Satu-satunya masalah dengan proyek ini adalah Anda harus mendapatkan keselarasan yang baik sebelum dapat digunakan.
Yang saya maksud dengan alignment adalah karena Mapbox menggunakan delta posisi untuk menghitung heading, ketika Anda pertama kali membuka aplikasi dan Anda harus memastikan ground plane terdeteksi dan kemudian berjalan dalam garis lurus untuk sementara waktu hingga alignment yang tepat dihitung.
Dalam hal ini UX adalah rintangan lain tetapi dalam peningkatan proyek mereka memberikan contoh menempatkan kubus di depan pengguna untuk dilalui untuk memastikan keselarasan yang baik.
Jadi sekarang setelah Anda mengetahui batasan proyek ini, izinkan saya menunjukkan cara menggunakannya agar teman-teman bisa bermain-main. Anda akhirnya harus membuat akun mapbox dan akun gamesparks yang keduanya gratis. Saya menggunakan gamesparks agar saya dapat menyimpan koordinat GPS di suatu tempat karena selama pengujian Anda akan sering memulai ulang dan membangun kembali aplikasi.
Juga, ini harus bekerja dengan ARkit dan ARcore tetapi saya hanya memiliki iPhone saat ini sehingga hanya itu yang bisa saya uji.
Langkah 4: Biarkan Aplikasi Bekerja
Pertama-tama unduh proyek ini dari GitHub:
Simpan file ke desktop Anda dan buka di Unity.
Buka file, buat pengaturan, dan alihkan platform Anda ke Android atau iOS.
Sekarang buka Mapbox.com dan buat akun jika Anda belum memilikinya.
Ambil kunci API Anda dan kembali ke Unity, klik tab Mapbox di bagian atas, dan klik konfigurasikan. Tempelkan kunci API Anda di sana.
Sekarang buat akun di GameSparks.com dan klik tombol di kanan atas untuk membuat aplikasi baru.
Sebut saja apa pun yang Anda inginkan dan salin kunci API dan rahasia aplikasi Anda. Kembali ke Unity dan temukan tab GameSparks di bagian atas. Klik konfigurasikan dan tempel kredensial Anda di sana juga.
Langkah 5: Konfigurasikan GameSparks
Sekarang sebelum aplikasi bekerja, kita perlu mengkonfigurasi database kita.
GameSparks menggunakan noSQL jadi pertama-tama kita harus membuat koleksi dan menambahkan kejadian yang digunakan aplikasi kita untuk membaca, menulis, dan menghapus dari server.
Pertama buat koleksi baru di situs GameSparks dan beri nama apa pun yang Anda inginkan.
Sekarang kita perlu membuat 3 acara.
Hal pertama yang perlu dilakukan aplikasi adalah menulis objek pesan ke database.
Sebuah pesan memiliki garis lintang, garis bujur, dan kemudian teks pesan.
Jadi, buka configurator dan tambahkan acara baru. Buat kode pendek "SAVE_GEO_MESSAGE".
Masukkan apa pun yang Anda inginkan untuk nama dan deskripsi.
Tambahkan kode pendek untuk 3 atribut:
"LAT" "LON"
"TEKS"
Setel setiap tipe data ke string dan setel nilai default ke 0. Jadikan tipe agregasi default masing-masing menjadi "digunakan dalam skrip."
Langkah 6: Tambahkan Acara Terakhir…
Aplikasi juga perlu memuat semua pesan dari database dan membacanya ke Unity saat aplikasi dimulai sehingga kita dapat menempatkan pesan AR yang disimpan dalam database.
Buat acara lain dan beri nama "LOAD_MESSAGE"
Acara ini tidak memerlukan atribut apa pun. Sekali lagi masukkan apa pun yang Anda inginkan untuk nama dan deskripsi.
Lakukan hal yang sama untuk acara lain dan beri nama "REMOVE_MESSAGES"
Ini bahkan tidak membutuhkan atribut apa pun.
Sekarang hal terakhir yang perlu kita lakukan adalah menambahkan beberapa "kode cloud" atau kode sisi server yang dipanggil ketika setiap peristiwa dimulai dari aplikasi kita.
Langkah 7: Tambahkan Kode Cloud
Di GameSparks, buka konfigurator dan kode cloud.
Kita perlu menambahkan skrip ke setiap acara yang baru saja kita buat.
Dalam acara LOAD_MESSAGE tambahkan kode ini dan simpan:
var messageData = Spark.runtimeCollection("GeoMessage");
var kursor = messageData.find();
var allMessages = ;
while(kursor.hasNext()) {
var obj = kursor.berikutnya();
hapus(obj ["_id"]);
allMessages.push(obj);
}
Spark.setScriptData("all_Messages", allMessages); // kembalikan semua data
Dalam acara REMOVE_MESSAGES tambahkan kode ini:
var messageData = Spark.runtimeCollection("GeoMessage");
messageData.remove({});
Akhirnya di acara SAVE_MESSAGES tambahkan ini:
var geoMessageList = Spark.runtimeCollection("GeoMessage");
var messageLat = Spark.getData(). LAT;
var messageLon = Spark.getData(). LON;
var messageText = Spark.getData(). TEXT;
var pesan saat ini = {
"messLat": pesanLat,
"messLon": messageLon,
"messText": pesanTeks,
};
geoMessageList.insert(currentMessage);
Langkah 8: KITA SELESAI
Proyek ini menggunakan ID unik perangkat Anda untuk mengautentikasi dengan server GameSparks sehingga Anda sekarang dapat kembali ke Unity dan mengeklik putar, dan Anda akan melihat di konsol "perangkat diautentikasi…"
Sekarang buka file, build settings, dan klik build. Jika Anda belum pernah membuat aplikasi untuk Android atau iOS, Anda mungkin perlu menyiapkan akun pengembangan dengan Google atau Apple.
Setelah aplikasi ada di ponsel Anda, Anda harus terlebih dahulu memastikan ARKit atau ARCore mendeteksi pesawat darat. Sekarang klik tombol log di sudut kiri bawah. Berjalan maju beberapa langkah dan Anda akan melihat "penyelarasan yang dihitung" muncul dengan warna biru muda. Sekarang tombol UI akan muncul dan jika ada pesan yang dimuat di database Anda, mereka akan ditempatkan di dunia.
Untuk menandai pesan GPS AR baru di suatu tempat, berjalanlah ke lokasi yang Anda inginkan untuk pesan tersebut dan klik ikon pesan di kanan atas layar. Ketik pesan apa pun yang Anda inginkan dan klik tombol pin!
Direkomendasikan:
Pemrograman Berorientasi Objek: Membuat Objek Pembelajaran/Metode/Teknik Pengajaran Menggunakan Shape Puncher: 5 Langkah
Pemrograman Berorientasi Objek: Membuat Objek Metode/Teknik Pembelajaran/Pengajaran Menggunakan Shape Puncher: Metode pembelajaran/pengajaran untuk siswa yang baru mengenal pemrograman berorientasi objek. Ini adalah cara untuk memungkinkan mereka memvisualisasikan dan melihat proses pembuatan objek dari kelas. Bagian:1. EkTools pukulan besar 2 inci; bentuk padat adalah yang terbaik.2. Secarik kertas atau c
Pemrograman Berorientasi Objek: Membuat Objek Pembelajaran/Metode/Teknik Pengajaran Menggunakan Gunting: 5 Langkah
Pemrograman Berorientasi Objek: Membuat Objek Pembelajaran/Metode/Teknik Mengajar Menggunakan Gunting: Metode pembelajaran/pengajaran untuk siswa yang baru mengenal pemrograman berorientasi objek. Ini adalah cara untuk memungkinkan mereka memvisualisasikan dan melihat proses pembuatan objek dari kelas. Bagian: 1. Gunting (apa pun bisa dilakukan). 2. Secarik kertas atau kartu stok. 3. Penanda
Arduino Glass - Headset Augmented Reality Open Source: 9 Langkah (dengan Gambar)
Arduino Glass - Open Source Augmented Reality Headset: Pernahkah Anda mempertimbangkan untuk mendapatkan headset augmented reality? Apakah Anda juga kagum pada kemungkinan augmented reality dan melihat label harganya dengan patah hati? Ya, saya juga! Tapi itu tidak menghentikan saya di situ. Saya membangun keberanian saya dan sebagai gantinya
CityCoaster - Bangun Augmented Reality Coaster Anda Sendiri untuk Bisnis Anda (TfCD): 6 Langkah (dengan Gambar)
CityCoaster - Bangun Augmented Reality Coaster Anda Sendiri untuk Bisnis Anda (TfCD): Sebuah kota di bawah piala Anda! CityCoaster adalah proyek yang lahir dengan pemikiran tentang produk untuk Bandara Rotterdam Den Haag, yang dapat mengekspresikan identitas kota, menghibur klien di area lounge dengan augmented reality. Dalam lingkungan seperti
Showcase Produk Augmented Reality (TfCD): 11 Langkah (dengan Gambar)
Augmented Reality Product Showcase (TfCD): Menjual produk selama penerbangan menjadi semakin populer saat ini. Namun di pesawat, informasi pertama dan hampir satu-satunya yang dilihat penumpang (kemungkinan pembeli) adalah brosur tercetak. Instruksi ini akan menunjukkan cara untuk berinovasi di