תוכן עניינים:

מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע: 8 שלבים
מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע: 8 שלבים

וִידֵאוֹ: מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע: 8 שלבים

וִידֵאוֹ: מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע: 8 שלבים
וִידֵאוֹ: Augmented Reality (AR) animation demo using Vuforia SDK 2024, יולי
Anonim
מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע
מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע
מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע
מציאות מוגברת Vuforia 7 זיהוי מטוס קרקע

SDK מציאות מוגברת של Vuforia ל- Unity 3D משתמש ב- ARCore ו- ARKit כדי לזהות מטוסים קרקעיים ב- AR. ההדרכה של היום תשתמש בשילוב המקורי שלהם ב- Unity ליצירת אפליקציית AR לאנדרואיד או IOS. נזכה במכונית ליפול מהשמיים על הקרקע, ודלתותיה ייפתחו אוטומטית כאשר נתקרב. נלך גם על עשיית וידאו ב- AR. כדי לעקוב תצטרך Unity 3D מותקן במחשב שלך (זה בחינם). הוראות אלו מיועדות למתחילים בסך הכל אז נעבור על הכל בפירוט!

החלק הטוב ביותר ב- SLAM של Vuforia הוא כמות מכשירי ה- IOS והאנדרואיד שהוא תומך בהם. רשימת מכשירים מלאה ניתן למצוא כאן:

library.vuforia.com/articles/Solution/grou…

שלב 1: התחל פרויקט חדש

התחל פרויקט חדש
התחל פרויקט חדש

הורד את Unity 3D מכאן אם עדיין אין לך את זה:

הקפד להתקין תמיכה ב- Vuforia Reality Augmented ו- Android או IOS בהתאם למכשיר שברשותך.

פתחו את Unity והתחילו בפרויקט Unity חדש, קראו לזה איך שתרצו.

ראשית אפשר לצאת מהאפליקציה שהוקמה לבנייה כדי שלא נשכח. לכן, שמור את הסצנה וקרא לה "ראשי".

עבור לקובץ, בנה הגדרות והחלף את פלטפורמת הבנייה שלך ל- Android או IOS. נווט להגדרות ה- XR בהגדרות הנגן ובדוק את נתמך מציאות מוגברת של Vuforia.

אם אתה משתמש באנדרואיד, לא תצטרך לעשות שום דבר אחר, אבל ב- IOS עבור להגדרות אחרות ודאג להכניס משהו למזהה החבילה שלך. השתמש בפורמט "com. YourCompanyName. YourAppName".

הכנס כל דבר לתיאור השימוש במצלמה ושנה את גרסת הבנייה המינימלית היעד לפחות ל- 9.0.

סגור מזה ועכשיו בואו נכין את כל השאר.

שלב 2: בואו להגדיר את Vuforia

בואו להקים את Vuforia
בואו להקים את Vuforia

עכשיו בואו נעשה הכל מסודר.

עבור אל gameobject בתפריט העליון ולחץ על ARCamera. כעת מחק את המצלמה הראשית מהסצנה שלך.

בחר את מצלמת ARC ובצד ימין במפקח לחץ על פתח תצורה של Vuforia. לחץ על אוסף מערכי הנתונים ובטל את הסימון של הכל מכיוון שאיננו משתמשים כאן ביעדי תמונות.

לחץ על עוקב ההתקן ולחץ על תנוחת מכשיר עוקב. שנה את המעקב מסיבוב למיקום.

כעת חזור ללשונית אובייקט המשחק ולחץ על Vuforia, מטוס קרקע ומחפש מטוסים. זה מכיל את התסריטים שמוצאים את המטוס הקרקע שלנו.

הדבר האחרון שאנחנו צריכים הוא שלב המטוס הקרקע, אז עבור שוב לאובייקט המשחק בתפריט העליון, ולחץ על Vuforia, מטוס קרקע ובחר במה מטוס קרקע. עכשיו כל מה שאנחנו ילדים לזה יופיע ב- AR.

שלב 3: הוסף סקריפט חדש

הוסף סקריפט חדש
הוסף סקריפט חדש
הוסף סקריפט חדש
הוסף סקריפט חדש

התנהגות ברירת המחדל של זיהוי מטוס קרקע זה היא הצבת אובייקט חדש בכל פעם שאתה לוחץ על המסך. מה שאנחנו רוצים זה פשוט למקם את האובייקט בכל פעם שאתה לוחץ על המסך. אז לחץ באמצעות לחצן העכבר הימני בתיקיית הנכסים שלך וצור סקריפט C# חדש. קראו לזה "DeployStageOnce" והחליפו הכל בקוד זה:

שימוש במערכת;

שימוש ב- UnityEngine; שימוש ב- Vuforia; מעמד ציבורי DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; פרטי PositionalDeviceTracker _deviceTracker; GameObject _previousAnchor פרטי; public void Start () {if (AnchorStage == null) {Debug. Log ("יש לציין AnchorStage"); לַחֲזוֹר; } AnchorStage. SetActive (שקר); } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } חלל ציבורי OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } חלל פרטי OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult result) {if (result == null || AnchorStage == null) {Debug. LogWarning ("בדיקת להיט אינה חוקית או ש- AnchorStage לא מוגדר"); לַחֲזוֹר; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), תוצאה); אם (עוגן! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (true); } אם (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = עוגן; }}

על מנת לוודא שהתסריט הזה מתרגל, עלינו לקרוא לפונקציה OnInteractiveHitTest () אז חזור ליחידות ולחץ על אובייקט המשחק למצוא מטוס. שנה את המצב מאוטומטי לאינטראקטיבי. גרור את הסקריפט שעשינו זה עתה לאובייקט המשחק של ממצא המטוס. הסר את הסקריפט ContentPositioningBehavior. תראה מקום לאובייקט משחק בתסריט DeployStageOnce, גרור לשם את מאתר המטוסים ותמצא תסריט זה, בחר בפונקציה OnInteractiveHitTest בחלק העליון של הרשימה. עכשיו הפונקציה שלנו תקרא בכל פעם שהמשתמש לוחץ על המסך!

שלב 4: הוסף את המכונית

הוסף את הרכב
הוסף את הרכב

הורד מכאן את דגם התלת מימד לרכב בחינם (הקפד לקבל את גרסת.obj):

www.turbosquid.com/3d-models/max-exterior-…

כמו כן, הורד את הצליל הזה מכיוון שנשמיע אותו כשהמכונית תגיע לקרקע:

freesound.org/people/PaulMorek/sounds/1967…

פתח את שני הקבצים האלה וגרור אותם לתיקיית הנכסים שלך.

לחץ על המכונית והסתכל ימינה, שנה שימוש בחומרים משובצים לשימוש בחומרים חיצוניים (מדור קודם) מהתפריט הנפתח למעלה. כעת נוכל לשנות את צבע כל החומרים במכונית.

גרור את המכונית לבמת המטוס הקרקע שלך והופך אותה לילדה. שנה את הסולם ל -035 ב- x, y ו- z.

עכשיו עברו על כל אחד ממכשירי המשחק לילדים ולשנות את החומרים שלהם לכל צבע שתרצו.

הוסיפו רכיב גוף נוקשה לאובייקט משחק השורש של המכונית והוסיפו גם מתנגש קופסאות, קנה אותו כך שיכסה את כל המכונית. הוסיפו גם מתנגש קופסא לשלב המטוס הקרקע והגדילו אותו כך שהוא יהיה רחב פי כמה משלב המטוס הקרקע. כך נוכל להוריד את המכונית מהשמיים והיא תפגע בקרקע באמצעות מנוע הפיזיקה המובנה של יוניטי.

שלב 5: שים את המכונית בשמיים

שים את המכונית בשמיים
שים את המכונית בשמיים

הוסף רכיב מקור שמע לאובייקט משחק השורש של המכונית, גרור את צליל התרסקות המכונית אל נקודת הקליפ של האודיו.

כעת עלינו ליצור תסריט שיכניס את המכונית לאוויר כאשר המשתמש לוחץ על המסך ולאחר מכן מנגן את צליל ההתרסקות כשהמכונית פוגעת בקרקע. לכן, לחץ באמצעות לחצן העכבר הימני בתיקיית הנכסים וצור סקריפט C# חדש וקרא לו "CarController".

החלף את כל הקוד שם בזה:

שימוש ב- System. Collections;

באמצעות System. Collections. Generic; שימוש ב- UnityEngine; מחלקת ציבורית CarController: MonoBehaviour {private bool soundPlayed = false; // עדכון נקרא פעם אחת לכל מסגרת חלל עדכון () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} חלל ציבורי MoveCar () {transform.localPosition += וקטור 3 חדש (0, 10, 0); transform.eulerAngles += וקטור 3 חדש (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {תשואה תשואה WaitForSeconds חדשים (.2f); GetComponent (). Play (); }}

הוסף את הפונקציה MoveCar לאירוע OnInteractiveHitTest כמו בתמונה למעלה. כעת הוא יקרא כאשר המשתמש ילחץ על המסך.

שלב 6: דלתות למבו

דלתות למבו
דלתות למבו

אז אם תרחיב את אובייקט משחק הרכב ותמצא את הדלתות, תבחין ששתי הדלתות הן רשת אחת. אם נרצה לפתוח את הדלתות האפשרות היחידה שלנו תהיה דלתות למבו שנפתחות אנכית. כדי לגרום לזה לעבוד עלינו קודם כל לשנות את נקודת הציר שלהם.

צור אובייקט משחק ריק שהוא ילד של המכונית. גרור את הדלתות פנימה והפוך אותן לילד של אובייקט המשחק החדש הזה. העבר את אובייקט משחק האב לאן שצריכה להיות נקודת הציר, על ידי צירי הדלת. כעת החזירו את דלתות הילד למקומן. כעת כאשר אנו מסובבים את אב הדלתות, נקודת הציר נמצאת במקום הנכון.

אנחנו הולכים לעשות תסריט שפותח את הדלתות כשאתה מתקרב לרכב, אבל לפני שאנחנו עושים זאת אנחנו צריכים דרך "להפעיל" את האירוע. הוסף קופסת קופסא לאובייקט משחק ההורה שלך והגדל אותו כך שיעבור מעט על המכונית לשני הכיוונים. בדוק את "isTrigger". כעת הוסף מתאם קופסא למצלמה הראשית והקנה אותו כראוי. בדוק גם את "isTrigger". הוסף רכיב גוף קשיח למצלמה שלך ובטל את הסימון "useGravity". כאשר המצלמה שלך נבחרה, שנה את התג שלה ל- "MainCamera" בחלק העליון של המפקח.

הוסף סקריפט חדש בשם "LamboDoorBehavior" והוסף את הקוד למטה. גרור את התסריט להורה של הדלת שלך.

שימוש ב- System. Collections;

באמצעות System. Collections. Generic; שימוש ב- UnityEngine; מעמד ציבורי LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; מצוף פרטי wantedAngle = 0; // עדכון נקרא פעם אחת למסגרת חלל עדכון () {currAngle = Mathf. LerpAngle (currAngle, winsAngle, Time.deltaTime * 3f); transform.localEulerAngles = Vector3 חדש (currAngle, 0, 0); } חלל ציבורי OpenDoors () {winsAngle = 60f; } חלל ציבורי CloseDoors () {winsAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} בטל OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

סקריפט זה יגרום לדלתות שלך להיפתח לאט כאשר תסגור אותן ב- AR באמצעות הפונקציה Lerp () באחדות אשר מתערבת בין שתי נקודות (או במקרה זה שתי זוויות).

שלב 7: הפעלת וידאו ב- AR

משחק וידאו ב- AR
משחק וידאו ב- AR
משחק וידאו ב- AR
משחק וידאו ב- AR

הדבר האחרון שעלינו לעשות הוא הפעלת וידיאו ב- AR.

קליק ימני על כל אובייקט משחק שהוא ילד של המכונית שלך וצור אובייקט תלת -ממדי, Quad. זה יוודא שהמרובע הוא ילד של המכונית שלך. מקם והגדר את מרובע זה כך שיתאים בתוך מקף המכונית שלך ונראה שהוא אמור להיות שם. על זה אנחנו הולכים לנגן את הסרטון.

הוסף רכיב נגן וידיאו לרבע. שנה את המקור לכתובת אתר ומצא קישור קשה לקובץ. MP4 או גרור קובץ וידיאו לתיקיית הנכסים שלך ולאחר מכן גרור את הקליפ לחריץ הריק. אם אתה רוצה להזרים בסרטון מכתובת אתר, אינסטגרם הוא מקור מצוין. לחץ לחיצה ימנית על כל סרטון אינסטגרם ב- Google Chrome ולחץ על בדוק. מצא את הדיוויזיה המכילה את הסרטון והעתק את הקישור משם (יש לי את השיטה הזו בתמונה למעלה).

הקפד לבדוק את הלולאה אם אתה רוצה שתשחק יותר מפעם אחת. הוסף רכיב מקור שמע לאובייקט המשחק הזה ושנה את מקור הפלט למקור שמע בנגן הווידאו. גרור את מקור האודיו החדש שנוצר לתוך החריץ הזה.

סוף סוף סיימנו!

שלב 8: שים את האפליקציה בטלפון שלך

שים את האפליקציה בטלפון שלך!
שים את האפליקציה בטלפון שלך!

אם אתה בונה עבור אנדרואיד אתה יכול פשוט ללכת לקובץ וללחוץ על build ולהפעיל כשהטלפון מחובר.

אם אתה בונה ל- iPhone או ל- iPad, הקפד להוריד את Xcode מחנות האפליקציות. כמו כן, הירשם לחשבון מפתח אפל בחינם מ- www.apple.developer.com. עבור לקובץ ולחץ על build. פתח את הקובץ שנוצר מ- Xcode וחבר את הטלפון שלך. בחר את צוות הפיתוח שלך ולחץ על כפתור ההפעלה.

יתכן שתצטרך להזיז מעט את המצלמה אבל תן לה שנייה והקש על המסך ותראה את המכונית שלך נופלת מהשמיים על הקרקע! עכשיו אתה יכול להיכנס פנימה ולצפות בוידאו שלך מופעל בלוח המחוונים!

תהנה וספר לי אם יש לך שאלות בתגובות!

מוּמלָץ: