תוכן עניינים:
- שלב 1: משוכות …
- שלב 2: מצפן טיפשי
- שלב 3: סוף סוף פתרון
- שלב 4: מאפשר להפעיל את האפליקציה
- שלב 5: הגדר את GameSparks
- שלב 6: הוסף את אירועי הגמר …
- שלב 7: הוסף את קוד הענן
- שלב 8: סיימנו
וִידֵאוֹ: הצבת אובייקטים של AR בקואורדינטות GPS במציאות מוגברת: 8 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
ההנחיה הזו הולכת על יישום אפליקציה לנייד להצבת אובייקטים של AR בקואורדינטות GPS עם ARkit ו- ARCore באמצעות Unity3D. אני אלווה אותך בהקמת פרויקט שהכנתי באמצעות Mapbox המאפשר לנו לתייג הודעות במיקומי GPS מסוימים ולכתוב אותן למסד נתונים של GameSparks.
כל התוכנות והפרויקטים בהם נשתמש כאן הינם בחינם.
הורד את Unity 3D כאן אם עדיין אין לך את זה:
unity3d.com/
שלב 1: משוכות …
אז זו לא האפליקציה הקלה ביותר לביצוע עם המגבלות הנוכחיות של GPS נייד ומצפן נייד.
למען האמת החפצים מופיעים היכן שהם אמורים להגיע לכ- 50% מהזמן. כך שהתוצאות אינן נהדרות, אך הן הופכות ליותר מדויקות ככל שמתקרבים לאובייקטים.
כך או כך, אני חושב שדרך טובה יותר ל- AR מבוסס GPS בשלב זה תהיה שימוש במפה כמו שעושה פוקימון גו וכאשר אתה מתקרב לאובייקט המצלמה נפתחת ורואים רק את האובייקט הזה מולך. בעתיד הייתי רוצה לעשות הדרכה מלאה על יישום פשוט יותר כזה.
כך או כך השתמשתי בעבר ב- Mapbox ואני יודע שיש להם מחלקת המרה הכוללת פונקציות להמרת קואורדינטות GPS לקואורדינטות של עולם אחדות. חשבתי שאני יכול פשוט להעביר כמה קואורדינטות GPS והם יופיעו איפה שאני רוצה אותם. לא עבד.
החפצים מופיעים בצורה נכונה ביחס אחד לשני אך הם מעולם לא היו במקום הנכון. אז עשיתי קצת מחקר וגיליתי שצריך ליישר את מצלמת האחדות שלי לצפון האמיתי כדי שהאובייקטים יופיעו במקום הנכון.
הבעיה היא שהמצפן בטלפון שלך אף פעם לא מדויק לגמרי.
שלב 2: מצפן טיפשי
הבעיה העיקרית היא כאשר הצבת חפצים רחוקים מהמצלמה, אם הרעיון של הצפון האמיתי שלך כבוי אפילו כמה מעלות, אובייקטים ממרחק יופיעו רחוק מאוד.
כמעט וויתרתי על המיזם הזה אבל חבר סיפר לי על פרויקט GitHub הזה:
github.com/mapbox/mapbox-ar-unity
זהו ניסיון לעשות AR "בקנה מידה עולמי" ממפהבוקס, שם אובייקטים מעוגנים לקואורדינטות GPS כך שחוויות מציאות רבודה יכולות לעבוד בחוץ למרחקים ארוכים במקום רק בתוך חדר קטן בבית שלך.
הפרויקט שלהם משתמש ב- AR Position deltas ו- GPS Position deltaas כדי לחשב זווית שהיא הקיזוז של מצלמת ה- AR לצפון האמיתי. אז בעצם קח קריאת GPS אחת כשהמשתמש מפעיל את האפליקציה ותן להם ללכת בקו ישר ולקחת קריאת GPS נוספת. ואז עם שתי הנקודות האלה אתה יכול לדעת לאיזה כיוון אותו אדם הלך (בהנחה שהמצלמה שלו מצביעה בכיוון שהוא הולך). הם גילו שזה מדויק יותר מהשימוש במצפן בטלפון.
הנושא הנוסף שהם מנסים לפתור הוא הסחף עם ARkit. המעקב בסדר בתוך חדר קטן, אך כאשר החוץ שלך הולך למרחקים ארוכים אובייקטים של AR בסופו של דבר נסחפים רחוק מהמקום בו הם אמורים להיות.
שלב 3: סוף סוף פתרון
אז פרויקט Mapbox הזה הציע דרך להשיג כיוון פנים אמין ביחס לצפון האמיתי, כך שנותר רק למקם את האובייקטים בעולם.
בסופו של דבר הרחבתי קצת את הדוגמה הזו כדי שאוכל לתייג הודעת טקסט במיקום GPS מסוים ולאחר מכן לכתוב את המידע הזה למסד נתונים של GameSparks. זה מה שאני הולך להראות לך כיצד להשתמש.
הבעיה היחידה בפרויקט זה היא שעליך לקבל יישור טוב לפני שניתן יהיה להשתמש בו.
למה שאני מתכוון ביישור הוא שמכיוון שמאפבוקס משתמשת בדלתות מיקום לחישוב הכותרת, כאשר אתה פותח את האפליקציה לראשונה ועליך לוודא שמזהה מטוס קרקע ולאחר מכן ללכת לזמן מה בקו ישר עד לחישוב יישור נכון.
במובן זה UX היא מכשול נוסף, אך בשיפורים של הפרויקט הם נותנים דוגמה להצבת קוביות מול המשתמש לעבור דרכו כדי להבטיח יישור טוב.
אז עכשיו שאתה יודע את המגבלות של הפרויקט הזה הרשה לי להראות לך כיצד להשתמש בו כדי שחבר'ה יוכלו לשחק. בסופו של דבר תצטרך ליצור חשבון mapbox וחשבון פארקס פארקים ששניהם בחינם. השתמשתי בפארקי משחקים רק כדי שאוכל לשמור קואורדינטות GPS איפשהו כיוון שבמהלך הבדיקה תפעיל מחדש ותבנה מחדש את האפליקציה לעתים קרובות למדי.
כמו כן, זה אמור לעבוד הן עם ARkit והן ב- ARcore, אך יש לי כרגע רק אייפון כך שזה כל מה שיכולתי לבדוק.
שלב 4: מאפשר להפעיל את האפליקציה
ראשית, הורד את הפרויקט הזה מ- GitHub:
שמור את הקובץ על שולחן העבודה שלך ופתח אותו ב- Unity.
עבור לקובץ, בנה הגדרות והחלף את הפלטפורמה שלך ל- Android או ל- IOS.
כעת עבור אל Mapbox.com וצור חשבון אם עדיין אין לך חשבון.
תפוס את מפתח ה- API שלך וחזור ליחידות, לחץ על הכרטיסייה Mapbox בחלק העליון ולחץ על הגדר. הדבק שם את מפתח ה- API שלך.
כעת צור חשבון ב- GameSparks.com ולחץ על הלחצן בפינה השמאלית העליונה כדי ליצור אפליקציה חדשה.
תקרא לזה איך שאתה רוצה והעתק את מפתח ה- API ואת סוד האפליקציה שלך. חזור ליחידות ומצא את הכרטיסייה GameSparks בחלק העליון. לחץ על הגדר והדבק גם שם את אישוריך.
שלב 5: הגדר את GameSparks
עכשיו לפני שהאפליקציה תפעל, עלינו להגדיר את מסד הנתונים שלנו.
GameSparks משתמש ב- noSQL ולכן עלינו ליצור תחילה אוסף ולהוסיף את האירועים בהם האפליקציה שלנו משתמשת בכדי לקרוא, לכתוב ולמחוק מהשרת.
ראשית צור אוסף חדש באתר GameSparks וקרא לזה איך שאתה רוצה.
כעת עלינו ליצור 3 אירועים.
הדבר הראשון שהאפליקציה צריכה לעשות הוא לכתוב אובייקט הודעה למסד הנתונים.
להודעה יש קו אורך, קו אורך ואז טקסט ההודעה.
אז לך למעצב והוסף אירוע חדש. צור את הקוד הקצר "SAVE_GEO_MESSAGE".
שים מה שאתה רוצה בשביל השם והתיאור.
הוסף את הקוד הקצר ל -3 תכונות:
"LAT" "LON"
"טֶקסט"
הגדר כל סוג נתונים למחרוזת והגדר את ערך ברירת המחדל ל- 0. הפוך את סוג צבירת ברירת המחדל של כל אחד מהם ל"שימוש בסקריפט ".
שלב 6: הוסף את אירועי הגמר …
האפליקציה גם צריכה לטעון את כל ההודעות ממאגר הנתונים ולקרוא אותן ל- Unity כאשר האפליקציה מתחילה, כך שנוכל למקם הודעות AR המאוחסנות במסד הנתונים.
צור אירוע נוסף וקרא לו "LOAD_MESSAGE"
לאירוע זה אין צורך בתכונות. שוב שים מה שאתה רוצה עבור השם והתיאור.
עשו את אותו הדבר לאירוע אחר וקראו לו "REMOVE_MESSAGES"
זה אפילו לא צריך שום תכונות.
כעת הדבר האחרון שעלינו לעשות הוא להוסיף קצת "קוד ענן" או קוד בצד השרת שיתקבל כאשר כל אירוע יופעל מהאפליקציה שלנו.
שלב 7: הוסף את קוד הענן
ב- GameSparks עבור אל המגדיר וקוד הענן.
עלינו להוסיף סקריפט לכל אירוע שעשינו זה עתה.
באירוע LOAD_MESSAGE הוסף את הקוד הזה ושמור אותו:
var messageData = Spark.runtimeCollection ("GeoMessage");
סמן var = messageData.find ();
var allMessages = ;
while (cursor.hasNext ()) {
var obj = cursor.next ();
מחק (obj ["_id"]);
allMessages.push (obj);
}
Spark.setScriptData ("all_Messages", allMessages); // החזר את כל הנתונים
באירוע REMOVE_MESSAGES הוסף את הקוד הזה:
var messageData = Spark.runtimeCollection ("GeoMessage");
messageData.remove ({});
לבסוף באירוע SAVE_MESSAGES הוסף את זה:
var geoMessageList = Spark.runtimeCollection ("GeoMessage");
var messageLat = Spark.getData (). LAT;
var messageLon = Spark.getData (). LON;
var messageText = Spark.getData (). TEXT;
var currentMessage = {
"messLat": messageLat,
"messLon": messageLon,
"messText": messageText,
};
geoMessageList.insert (currentMessage);
שלב 8: סיימנו
פרויקט זה משתמש במזהה הייחודי של המכשיר שלך לאימות עם שרת GameSparks, כך שתוכל כעת לחזור ל- Unity וללחוץ על play, ותראה בקונסולה "מכשיר מאומת …"
כעת עבור לקובץ, בנה הגדרות ולחץ על build. אם מעולם לא יצרת אפליקציה עבור Android או IOS, ייתכן שיהיה עליך להקים חשבון פיתוח עם גוגל או אפל.
לאחר שהאפליקציה נמצאת בטלפון שלך, עליך לוודא תחילה ש- ARKit או ARCore מזהים מטוס קרקע. כעת לחץ על כפתור היומן בפינה השמאלית התחתונה. צעד כמה צעדים קדימה ותראה "יישור מחושב" עולה בצבע תכלת. כעת לחצני ממשק המשתמש אמורים להופיע ואם הודעות כלשהן נטענו במסד הנתונים שלך יופיעו בעולם.
כדי לתייג הודעת GPS חדשה של GPS במקום כלשהו, הלכו אל המיקום שתרצו שההודעה תהיה ולחצו על סמל ההודעה בפינה השמאלית העליונה של המסך. הקלד כל הודעה שתרצה ולחץ על כפתור הצמד!
מוּמלָץ:
Arduino Glass - אוזניות מציאות מוגברת בקוד פתוח: 9 שלבים (עם תמונות)
Arduino Glass - אוזניות מציאות מוגברת בקוד פתוח: האם שקלת פעם לקנות אוזניות מציאות מוגברת? האם גם אתה התלהבת מהאפשרות של מציאות רבודה והסתכלת על המחיר עם לב שבור? כן, גם אני! אבל זה לא עצר אותי שם. בניתי את האומץ ובמקום זאת
CityCoaster - בנה רכבת מציאות מוגברת משלך לעסק שלך (TfCD): 6 שלבים (עם תמונות)
CityCoaster - בנה רכבת מציאות מוגברת משלך לעסק שלך (TfCD): עיר מתחת לכוס שלך! CityCoaster הוא פרויקט שנולד במחשבה על מוצר עבור רוטרדם בנמל התעופה האג, שיכול לבטא את זהות העיר, ולבדר את לקוחות אזור הטרקלין עם מציאות מוגברת. בסביבה כזו
חלון ראווה למוצר מציאות מוגברת (TfCD): 11 שלבים (עם תמונות)
חלון ראווה למוצרי מציאות מוגברת (TfCD): מכירת מוצרים במהלך הטיסה הופכת פופולרית יותר ויותר בימינו. אולם על המטוס המידע הראשון וכמעט היחיד שהנוסע (קונה אפשרי) רואה הוא חוברת מודפסת. מדריך זה יראה דרך לחדש ב- airp
הצבת רינגטונים ב- LG490: 3 שלבים
לשים רינגטונים על LG490: חברה שלי נתנה לי את הטלפון הסלולרי הישן שלה שעובד טוב למעט העובדה שלטלוס יש את הטלפון הזה נעול כל כך חלונות צמודים הוא קנאי, חחח. בכל אופן הדרך היחידה שאתה יכול לשים עליה רינגטונים היא להוריד אותם מהטלוס תמורת 3.50 $+ ב
כיצד לצפות במציאות מוגברת במחשב שלך: 3 שלבים
כיצד להציג מציאות מוגברת במחשב שלך: במדריך זה אראה לך כיצד להציג מציאות מוגברת במחשב שלך באמצעות מצלמת רשת בלבד, נייר, ואינטרנט