Სარჩევი:
- ნაბიჯი 1: დაიწყეთ ახალი პროექტი
- ნაბიჯი 2: მოდით შევქმნათ Vuforia
- ნაბიჯი 3: დაამატეთ ახალი სკრიპტი
- ნაბიჯი 4: მოდით დავამატოთ მანქანა
- ნაბიჯი 5: განათავსეთ მანქანა ცაში
- ნაბიჯი 6: ლამბოს კარები
- ნაბიჯი 7: ვიდეოს დაკვრა AR– ში
- ნაბიჯი 8: განათავსეთ აპლიკაცია თქვენს ტელეფონში
ვიდეო: გაფართოებული რეალობა Vuforia 7 სახმელეთო თვითმფრინავის ამოცნობა .: 8 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
Vuforia– ს დამატებული რეალობის SDK for Unity 3D იყენებს ARCore და ARKit AR– ში სახმელეთო თვითმფრინავების გამოსავლენად. დღევანდელი გაკვეთილი გამოიყენებს მათ მშობლიურ ინტეგრაციას Unity– ში, რათა შექმნას AR აპლიკაცია Android ან IOS– ისთვის. ჩვენ გვექნება მანქანა, რომელიც ციდან გადმოვარდება მიწაზე და მისი კარები ავტომატურად გაიხსნება, როდესაც ახლოს მივუდგებით. ჩვენ ასევე გავაგრძელებთ ვიდეოს გაკეთებას AR– ში. ამის გასაგრძელებლად დაგჭირდებათ Unity 3D თქვენს კომპიუტერზე დაინსტალირებული (ეს უფასოა). ეს ინსტრუქციები დამწყებთათვისაა, ასე რომ ჩვენ ყველაფერს დეტალურად განვიხილავთ!
Vuforia– ს SLAM– ის საუკეთესო ნაწილია IOS და Android მოწყობილობების რაოდენობა, რომელსაც მხარს უჭერს. მოწყობილობების სრული სია შეგიძლიათ იხილოთ აქ:
library.vuforia.com/articles/Solution/grou…
ნაბიჯი 1: დაიწყეთ ახალი პროექტი
ჩამოტვირთეთ Unity 3D აქედან, თუ ის უკვე არ გაქვთ:
დარწმუნდით, რომ დააინსტალირეთ Vuforia Augmented Reality და Android ან IOS მხარდაჭერა იმისდა მიხედვით, თუ რომელი მოწყობილობა გაქვთ.
გახსენით Unity და დაიწყეთ Unity– ის ახალი პროექტი, დაარქვით მას როგორც გინდათ.
პირველ რიგში მოდით გამოვიდეთ აპლიკაციის შესაქმნელად, რათა არ დაგვავიწყდეს. ასე რომ, შეინახეთ სცენა და უწოდეთ მას "მთავარი".
გადადით ფაილზე, შექმენით პარამეტრები და შეცვალეთ თქვენი პლატფორმის Android ან IOS. გადადით მოთამაშის პარამეტრებში XR პარამეტრებზე და შეამოწმეთ Vuforia Augmented Reality Supported.
თუ Android- ზე ხართ, სხვა არაფრის გაკეთება არ მოგიწევთ, მაგრამ IOS– ზე გადადით სხვა პარამეტრებზე და დარწმუნდით, რომ ჩასვით რაიმე თქვენი პაკეტის იდენტიფიკატორისთვის. გამოიყენეთ ფორმატი "com. YourCompanyName. YourAppName."
განათავსეთ არაფერი კამერის გამოყენების აღწერისთვის და შეცვალეთ სამიზნე მინიმალური ასაშენებელი ვერსია მინიმუმ 9.0 -მდე.
დახურეთ ეს და ახლა მოდით მოვაწყოთ ყველაფერი დანარჩენი.
ნაბიჯი 2: მოდით შევქმნათ Vuforia
ახლა მოვაწყოთ ყველაფერი.
გადადით gameobject– ის ზედა მენიუში და დააწკაპუნეთ ARCamera– ზე. ახლა წაშალეთ მთავარი კამერა თქვენი სცენიდან.
შეარჩიეთ ARCamera და ინსპექტორის მარჯვენა მხარეს დააწკაპუნეთ Open Vuforia კონფიგურაციაზე. დააწკაპუნეთ მონაცემთა ნაკრებების კოლექციაზე და მოაშორეთ ყველაფერი, რადგან ჩვენ აქ არ ვიყენებთ გამოსახულების სამიზნეებს.
დააწკაპუნეთ მოწყობილობის ტრეკერზე და დააწკაპუნეთ მოწყობილობის პოზირებაზე. შეცვალეთ თვალთვალი ბრუნვითიდან პოზიციურზე.
ახლა დაუბრუნდით თამაშის ობიექტის ჩანართს და დააწკაპუნეთ Vuforia, Ground Plane და Plane Finder. ეს არის სკრიპტები, რომლებიც პოულობენ ჩვენს მიწის ზედაპირს.
ბოლო რაც ჩვენ გვჭირდება არის თვითმფრინავის საფეხური, ასე რომ კვლავ გადადით თამაშის ობიექტზე ზედა მენიუში და დააწკაპუნეთ Vuforia, Ground Plane და შეარჩიეთ Ground Plane Stage. ახლა ყველაფერი, რაც ჩვენ ამას ვაკეთებთ, გამოჩნდება AR- ში.
ნაბიჯი 3: დაამატეთ ახალი სკრიპტი
ამ მიწისზედა თვითმფრინავის გამოვლენის ნაგულისხმევი ქცევა არის ახალი ობიექტის განთავსება ყოველ ჯერზე, როდესაც ეკრანზე დააჭერთ. ჩვენ გვინდა, რომ უბრალოდ გადავიტანოთ ობიექტი ყოველ ჯერზე, როდესაც ეკრანზე დააჭერთ. ასე რომ, დააწკაპუნეთ მარჯვენა ღილაკით თქვენი აქტივების საქაღალდეში და შექმენით ახალი C# სკრიპტი. დაარქვით მას "DeployStageOnce" და შეცვალეთ ყველაფერი ამ კოდით:
სისტემის გამოყენებით;
UnityEngine- ის გამოყენებით; ვუფორიას გამოყენება; საჯარო კლასი DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; პირადი PositionalDeviceTracker _deviceTracker; კერძო GameObject _previousAnchor; public void დაწყება () {if (AnchorStage == null) {Debug. Log ("AnchorStage უნდა იყოს მითითებული"); დაბრუნების; } AnchorStage. SetActive (ყალბი); } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void 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 (), შედეგი); if (წამყვანი! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (ჭეშმარიტი); } if (_previousAnchor! = null) {გაანადგურე (_prequestAnchor); } _previousAnchor = წამყვანი; }}
იმისათვის, რომ დავრწმუნდეთ, რომ ეს სკრიპტი გამოიყენება, ჩვენ უნდა გამოვიძახოთ OnInteractiveHitTest () ფუნქცია, ასე რომ დაუბრუნდით Unity– ს და დააწკაპუნეთ თვითმფრინავის მაძიებლის თამაშის ობიექტზე. შეცვალეთ რეჟიმი ავტომატურიდან ინტერაქტიული. გადაიტანეთ სკრიპტი, რომელიც ახლახან გავაკეთეთ თვითმფრინავის მაძიებლის თამაშის ობიექტზე. წაშალეთ ContentPositioningBehavior სკრიპტი. თქვენ დაინახავთ თამაშის ობიექტის ადგილს DeployStageOnce სკრიპტზე, გადაიტანეთ თვითმფრინავის მაძიებელი იქ და იპოვეთ ეს სკრიპტი, აირჩიეთ OnInteractiveHitTest ფუნქცია სიის ზემოდან. ახლა ჩვენი ფუნქცია დარეკილია, როდესაც მომხმარებელი დააწკაპუნებს ეკრანზე!
ნაბიჯი 4: მოდით დავამატოთ მანქანა
ჩამოტვირთეთ ეს უფასო მანქანის 3D მოდელი აქედან (დარწმუნდით, რომ მიიღეთ.obj ვერსია):
www.turbosquid.com/3d-models/max-exterior-…
ასევე, გადმოწერეთ ეს ხმა, რადგან ჩვენ მას ვითამაშებთ, როდესაც მანქანა მიწაზე დაეცემა:
freesound.org/people/PaulMorek/sounds/1967…
გახსენით ორივე ფაილი და გადაიტანეთ ისინი თქვენი აქტივების საქაღალდეში.
დააწკაპუნეთ მანქანაზე და გაიხედეთ მარჯვნივ, შეცვალეთ გამოიყენეთ ჩაშენებული მასალები გარე მასალების გამოსაყენებლად (მემკვიდრეობა) ზედა მენიუდან. ახლა ჩვენ შევძლებთ შეცვალოთ ავტომობილის ყველა მასალის ფერი.
გადაათრიეთ მანქანა თქვენი თვითმფრინავის საფეხურზე და გახადეთ ბავშვი. შეცვალეთ მასშტაბი.035 x, y და z.
ახლა გაიარეთ მანქანების თითოეული ბავშვის სათამაშო ობიექტი და შეცვალეთ მათი მასალები თქვენთვის სასურველ ფერში.
დაამატეთ ხისტი სხეულის კომპონენტი მანქანის ძირეული თამაშის ობიექტს და ასევე დაამატეთ ყუთის კოლაიდერი, გაზარდეთ იგი ისე, რომ იგი მოიცავს მთელ მანქანას. ასევე დაამატეთ ყუთის კოლაიდერი გრუნტის სიბრტყის საფეხურზე და გაზარდეთ იგი რამდენჯერმე უფრო ფართო ვიდრე მიწის დონის საფეხურზე. ამ გზით ჩვენ შეგვიძლია გადმოვყაროთ მანქანა ციდან და ის დაეცემა მიწას Unity– ის ჩამონტაჟებული ფიზიკის ძრავის გამოყენებით.
ნაბიჯი 5: განათავსეთ მანქანა ცაში
დაამატეთ აუდიო წყაროს კომპონენტი მანქანის ძირეული თამაშის ობიექტს, გადაიტანეთ ავარიის ხმა მის აუდიო კლიპის ადგილზე.
ახლა ჩვენ უნდა შევადგინოთ სკრიპტი, რომელიც მანქანას ჰაერში აყენებს, როდესაც მომხმარებელი დააჭერს ეკრანზე და შემდეგ უკრავს ავარიის ხმას, როდესაც მანქანა დაეჯახება მიწას. ასე რომ, დააწკაპუნეთ მარჯვენა ღილაკით აქტივების საქაღალდეში და შექმენით ახალი C# სკრიპტი და დაარქვით მას "CarController".
შეცვალეთ ყველა კოდი იქ:
System. Collection- ების გამოყენებით;
System. Collections. Generic- ის გამოყენებით; UnityEngine- ის გამოყენებით; საჯარო კლასი CarController: MonoBehaviour {private bool soundPlayed = false; // განახლება ეწოდება ერთხელ კადრზე void განახლება () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} public void MoveCar () {transform.localPosition += new Vector3 (0, 10, 0); transform.eulerAngles += ახალი ვექტორი 3 (5, 20, 5); soundPlayed = ყალბი; } IEnumerator DelayPlaySound () {yield return new WaitForSeconds (.2f); GetComponent (). თამაში (); }}
დაამატეთ MoveCar ფუნქცია OnInteractiveHitTest ღონისძიებაზე, როგორც ზემოთ მოცემულ სურათზე. ახლა მას დაურეკავს, როდესაც მომხმარებელი დააწკაპუნებს ეკრანზე.
ნაბიჯი 6: ლამბოს კარები
ასე რომ, თუ გააფართოვებთ მანქანის თამაშის ობიექტს და იპოვით კარებს, შეამჩნევთ რომ ორივე კარი ერთი ბადეა. თუ ჩვენ გვინდა კარების გაღება, ჩვენი ერთადერთი ვარიანტი იქნება ლამბოს კარები, რომლებიც ვერტიკალურად იხსნება. ამ სამუშაოს შესასრულებლად, ჩვენ ჯერ უნდა შევცვალოთ მათი ბრუნვის წერტილი.
გააკეთეთ ცარიელი სათამაშო ობიექტი, რომელიც მანქანის შვილია. გადაათრიეთ კარები და გახადეთ ისინი ამ ახალი თამაშის ობიექტის შვილები. გადაიტანეთ მშობელი თამაშის ობიექტი იქ, სადაც უნდა იყოს ბრუნვის წერტილი, კარის სახსრებით. ახლა გადააბრუნეთ ბავშვის კარები თავის ადგილზე. ახლა, როდესაც ჩვენ ვტრიალებთ კარების მშობელს, საყრდენი წერტილი არის სწორ ადგილას.
ჩვენ ვაპირებთ შევადგინოთ სცენარი, რომელიც კარს გააღებს, როდესაც მანქანას მიუახლოვდებით, მაგრამ სანამ ამას გავაკეთებთ, ჩვენ გვჭირდება გზა, რომ მოხდეს მოვლენის "გამოწვევა". დაამატეთ ყუთის კოლაიდერი თქვენს კარის მშობლის სათამაშო ობიექტს და გაზარდეთ იგი ისე, რომ ოდნავ გადის მანქანას ორივე მიმართულებით. შეამოწმეთ "isTrigger". ახლა დაამატეთ ყუთის კოლაიდერი მთავარ კამერას და გაზარდეთ იგი სათანადოდ. ასევე შეამოწმეთ "isTrigger". დაამატეთ Rigid Body კომპონენტი თქვენს კამერას და მონიშნეთ "useGravity". კამერის არჩევით, შეცვალეთ მისი ტეგი "მთავარი კამერა" ინსპექტორის ზედა ნაწილში.
დაამატეთ ახალი სკრიპტი სახელწოდებით "LamboDoorBehavior" და დაამატეთ კოდი ქვემოთ. გადაიტანეთ სკრიპტი თქვენი კარის მშობელზე.
System. Collection- ების გამოყენებით;
System. Collections. Generic- ის გამოყენებით; UnityEngine- ის გამოყენებით; საჯარო კლასი LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; პირადი float სასურველიAngle = 0; // განახლება ეწოდება ერთხელ კადრზე void განახლება () {currAngle = Mathf. LerpAngle (currAngle, სასურველიAngle, Time.deltaTime * 3f); transform.localEulerAngles = ახალი ვექტორი 3 (currAngle, 0, 0); } public void OpenDoors () {სასურველიAngle = 60f; } public void CloseDoors () {სასურველიAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("მთავარი კამერა")) {CloseDoors (); }}}
ეს სკრიპტი გამოიწვევს თქვენი კარების ნელ -ნელა გახსნას, როდესაც მათ დახურავთ AR- ში Lerp () ფუნქციის ერთობაში გამოყენებით, რომელიც ინტერპოლაციას ახდენს ორ წერტილს შორის (ან ამ შემთხვევაში ორ კუთხეს შორის).
ნაბიჯი 7: ვიდეოს დაკვრა AR– ში
ბოლო რაც ჩვენ უნდა გავაკეთოთ არის ვიდეოს დაკვრა AR– ში.
მარჯვენა ღილაკით დააწკაპუნეთ ნებისმიერი თამაშის ობიექტზე, რომელიც თქვენი მანქანის შვილია და შექმენით 3D ობიექტი, Quad. ეს დარწმუნდება, რომ ოთხკუთხედი არის თქვენი მანქანის შვილი. განათავსეთ და შეცვალეთ ეს ოთხკუთხედი ისე, რომ ის მოთავსდეს თქვენი მანქანის ტიპში და ისე გამოიყურებოდეს, როგორც იქ უნდა იყოს. ეს არის ის, რის შესახებაც ჩვენ ვაპირებთ ვიდეოს დაკვრას.
დაამატეთ ვიდეო პლეერის კომპონენტი თქვენს ოთხკუთხედს. შეცვალეთ წყარო URL– ზე და იპოვეთ. MP4 ფაილის მყარი ბმული, ან გადაიტანეთ ვიდეო ფაილი თქვენი აქტივების საქაღალდეში და შემდეგ გადაიტანეთ ეს კლიპი ცარიელ სლოტში. თუ გსურთ ვიდეოს სტრიმინგი URL– დან, Instragram შესანიშნავი წყაროა. დააწკაპუნეთ მარჯვენა ღილაკით Google Chrome– ის ნებისმიერ Instagram ვიდეოზე და დააწკაპუნეთ ინსპექტირებაზე. იპოვეთ ვიდეოს შემცველი განყოფილება და დააკოპირეთ ბმული იქიდან (მე მაქვს ეს მეთოდი ზემოთ სურათზე).
დარწმუნდით, რომ შეამოწმეთ მარყუჟი, თუ გინდათ რომ ის არაერთხელ ითამაშოს. დაამატეთ აუდიო წყაროს კომპონენტი ამ თამაშის ობიექტს და შეცვალეთ გამომავალი წყარო აუდიო წყაროს ვიდეო პლეერზე. გადაიტანეთ ახლად შექმნილი აუდიო წყარო ამ სლოტში.
საბოლოოდ ჩვენ დავასრულეთ!
ნაბიჯი 8: განათავსეთ აპლიკაცია თქვენს ტელეფონში
თუ თქვენ აშენებთ Android– ისთვის, შეგიძლიათ უბრალოდ გადადით ფაილზე და დააჭიროთ მშენებლობას და გაშვებას თქვენი ტელეფონის ჩართვით.
თუ თქვენ აშენებთ iPhone ან iPad– ს, დარწმუნდით, რომ ჩამოტვირთოთ Xcode აპლიკაციის მაღაზიიდან. ასევე, დარეგისტრირდით ვაშლის დეველოპერის უფასო ანგარიშზე www.apple.developer.com– დან. გადადით ფაილზე და დააჭირეთ მშენებლობას. გახსენით ფაილი, რომელიც შეიქმნა Xcode– დან და შეაერთეთ თქვენი ტელეფონი. შეარჩიეთ თქვენი განვითარების ჯგუფი და დააჭირეთ ღილაკს თამაში.
შეიძლება დაგჭირდეთ კამერის ოდნავ გადატანა, მაგრამ მიეცით ერთი წამი და შეეხეთ ეკრანს და თქვენ უნდა ნახოთ თქვენი მანქანა ციდან რომ დაეცემა მიწაზე! ახლა თქვენ შეგიძლიათ შეხვიდეთ შიგნით და უყუროთ თქვენს ვიდეოს თამაშს დაფაზე!
გაერთეთ და შემატყობინეთ თუ თქვენ გაქვთ რაიმე შეკითხვა კომენტარებში!
გირჩევთ:
თვითმფრინავის თვითმფრინავის ბილიკი: 5 ნაბიჯი
Drone Helipad: ეს ინსტრუქცია შეიქმნა სამხრეთ ფლორიდის უნივერსიტეტის Makecourse– ის საპროექტო მოთხოვნების შესასრულებლად (www.makecourse.com)
გაფართოებული რეალობა (AR) Dragonboard410c ან Dragonboard820c OpenCV და Python 3.5: 4 ნაბიჯების გამოყენებით
Augmented Reality (AR) Dragonboard410c ან Dragonboard820c OpenCV და Python 3.5 გამოყენებით: ეს ინსტრუქციები აღწერს, თუ როგორ უნდა დააინსტალიროთ OpenCV, Python 3.5 და Python 3.5– ის დამოკიდებულება გაძლიერებული რეალობის პროგრამის გასაშვებად
თვითმფრინავის თვითმფრინავის წრეების ტაიმერი - 3D ბეჭდვით, არდუინოს საშუალებით .: 18 ნაბიჯი (სურათებით)
თვითმფრინავის თვითმფრინავის წრეების ტაიმერი - 3D ბეჭდვით, არდუინოზე მომუშავე .: მე სულ უფრო და უფრო მაინტერესებს პირველი პირის ვიდეო (FPV) თვითმფრინავების რბოლის იდეა. მე ცოტა ხნის წინ შევიძინე პატარა თვითმფრინავი და მინდოდა ჩემი წრეების დროის განსაზღვრის გზა - ეს არის შედეგად მიღებული პროექტი. ეს თვითმფრინავის სადესანტო ბალიშს აქვს ინტეგრირებული ულ
სახმელეთო თვითმფრინავის კავშირის დაფიქსირება: 3 ნაბიჯი
სახმელეთო თვითმფრინავის კავშირის დაფიქსირება: რა შეგიძლიათ გააკეთოთ, თუ მიწა არ არის დაკავშირებული მიწის სიბრტყესთან? ეს შეიძლება მოხდეს, თუ თქვენ შეცვლით სქემას EagleCAD– ში და წაშლით მავთულის (ქსელის) სეგმენტს სქემატურ მიწაზე. პროგრამულ უზრუნველყოფას შეუძლია ავტომატურად გადაარქვას სახელი wi– ს მეორე ბოლოს
როგორ ნახოთ გაფართოებული რეალობა თქვენს კომპიუტერში: 3 ნაბიჯი
როგორ ნახოთ გაფართოებული რეალობა თქვენს კომპიუტერზე: ამ გაკვეთილში მე გაჩვენებთ თუ როგორ უნდა ნახოთ დამატებული რეალობა თქვენს კომპიუტერში მხოლოდ ვებკამერის გამოყენებით, ქაღალდი და ინტერნეტი