Агуулгын хүснэгт:

Өргөтгөсөн бодит байдал Vuforia 7 Газрын хавтгайг илрүүлэх.: 8 алхам
Өргөтгөсөн бодит байдал Vuforia 7 Газрын хавтгайг илрүүлэх.: 8 алхам

Видео: Өргөтгөсөн бодит байдал Vuforia 7 Газрын хавтгайг илрүүлэх.: 8 алхам

Видео: Өргөтгөсөн бодит байдал Vuforia 7 Газрын хавтгайг илрүүлэх.: 8 алхам
Видео: Augmented Reality (AR) experiment - Хагас бодит байдлын туршилт 2024, Долдугаар сарын
Anonim
Өргөтгөсөн бодит байдал Vuforia 7 Ground Planet Detection
Өргөтгөсөн бодит байдал Vuforia 7 Ground Planet Detection
Өргөтгөсөн бодит байдал Vuforia 7 Ground Planet Detection
Өргөтгөсөн бодит байдал Vuforia 7 Ground Planet Detection

Vuforia -ийн Unity 3D -д зориулсан бодит байдлын SDK нь ARCore болон ARKit -ийг ашиглан AR дээрх газрын онгоцыг илрүүлдэг. Өнөөдрийн заавар нь Unity дахь төрөлх интеграцийг ашиглан Android эсвэл IOS -д зориулсан AR апп хийх болно. Бид машиныг тэнгэрээс газар унагаж, ойртоход хаалга нь автоматаар нээгдэнэ. Бид мөн 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 Support -ийг шалгана уу.

Хэрэв та Андройд дээр байгаа бол өөр юу ч хийх шаардлагагүй болно, гэхдээ IOS дээр бусад тохиргоо руу ороод багцын таниулагчид ямар нэгэн зүйл оруулахаа мартуузай. "Com. YourCompanyName. YourAppName" форматыг ашиглана уу.

Камерын ашиглалтын тодорхойлолтонд юу ч хамаагүй оруулаад зорилтот бүтцийн хувилбарыг дор хаяж 9.0 болгож өөрчилнө үү.

Үүнийг хааж, одоо бусад бүх зүйлийг тохируулцгаая.

Алхам 2: Vuforia -г тохируулцгаая

Vuforia -г тохируулцгаая
Vuforia -г тохируулцгаая

Одоо бүх зүйлийг тохируулцгаая.

Дээд цэснээс gameobject руу ороод ARCamera дээр дарна уу. Одоо үндсэн камераа дүр зурагнаасаа устга.

ARCamera -г сонгоод хянагчийн баруун талд Vuforia -ийн тохиргоог нээх дээр дарна уу. Өгөгдлийн багцын цуглуулга дээр дарж, эндээс ямар ч дүрс ашиглахгүй байгаа тул бүх зүйлийн сонголтыг арилгаарай.

Төхөөрөмжийн мөрдөгч дээр дарж төхөөрөмжийн байршлыг дарна уу. Хяналтыг эргэлтээс байрлал руу өөрчлөх.

Одоо тоглоомын объект таб руу буцаж ороод Vuforia, Ground Plane, Plane Finder дээр дарна уу. Энэ нь манай газрын онгоцыг олох скриптүүдийг агуулдаг.

Бидэнд хамгийн сүүлд хэрэгтэй зүйл бол газрын гадаргуугийн үе шат, тиймээс дээд цэснээс тоглоомын объект руу дахин ороод Vuforia, Ground Plane дээр дараад Ground Plane Stage -ийг сонгоно уу. Одоо бидний хүүхэд болгон үүнийг AR дээр харуулах болно.

Алхам 3: Шинэ скрипт нэмнэ үү

Шинэ скрипт нэмэх
Шинэ скрипт нэмэх
Шинэ скрипт нэмэх
Шинэ скрипт нэмэх

Энэхүү газрын хавтгайг илрүүлэх үндсэн арга бол дэлгэц дээр дарах тоолондоо шинэ объект байрлуулах явдал юм. Бидний хүсч буй зүйл бол дэлгэц дээр дарах бүртээ объектын байрлалыг өөрчлөх явдал юм. Тиймээс өөрийн хөрөнгийн фолдер дээр хулганы баруун товчийг дараад шинэ C# скрипт үүсгэнэ үү. Үүнийг "DeployStageOnce" гэж нэрлээд бүх зүйлийг энэ кодоор солино уу.

системийг ашиглах;

UnityEngine ашиглах; Vuforia ашиглах; нийтийн анги DeployStageOnce: MonoBehaviour {нийтийн 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 (), үр дүн); if (зангуу! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (үнэн); } if (_previousAnchor! = null) {Устгах (_previousAnchor); } _previousAnchor = зангуу; }}

Энэ скриптийг ашиглаж байгаа эсэхийг шалгахын тулд бид OnInteractiveHitTest () функцийг дуудах шаардлагатай тул Unity руу буцаж очоод тоглоом хайх тоглоомын объект дээр дарна уу. Автомат горимоос интерактив горимыг өөрчлөх. Саяхан хийсэн скриптийг онгоц хайгч тоглоомын объект руу чирнэ үү. ContentPositioningBehavior скриптийг устгана уу. Та DeployStageOnce скрипт дээр тоглоомын объектын цэгийг харах болно, онгоц хайгчийг тийш нь чирээд энэ скриптийг олоод жагсаалтын эхнээс OnInteractiveHitTest функцийг сонгоно уу. Хэрэглэгч дэлгэц дээр дарах бүрт бидний функц дуудах болно!

Алхам 4: Машинаа нэмье

Машинаа нэмье
Машинаа нэмье

Энэхүү үнэгүй машины 3D загварыг эндээс татаж аваарай (.obj хувилбарыг татаж аваарай):

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

Түүнчлэн, энэ дууг татаж аваарай, учир нь бид машиныг газар унах үед үүнийг тоглуулах болно.

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

Эдгээр файлуудыг хоёуланг нь задалж, өөрийн хөрөнгийн хавтсанд чирнэ үү.

Машин дээр дараад баруун тийш хараад дээд талын унах цэснээс Embedded Material to Use to External Materials (Legacy) -ийг өөрчилнө үү. Одоо бид машин дээрх бүх материалын өнгийг өөрчлөх боломжтой болно.

Машинаа хүүхэд болгохын тулд онгоцныхоо тавцан дээр чирнэ үү. X, y, z дээр масштабыг.035 болгож өөрчил.

Одоо хүүхдийн тоглоомын объект тус бүрээр явж, материалаа хүссэн өнгө болгон өөрчил.

Машины үндсэн тоглоомын объектод хатуу биеийн бүрэлдэхүүн хэсгийг нэмж, хайрцагны мөргөлдөгчийг нэмж, бүх машиныг хамарна. Мөн хайрцаг мөргөлдөгчийг газрын хавтгай шатанд нэмж, газрын гадаргуугийн түвшингээс хэд дахин өргөн масштабтай болгоно. Ингэснээр бид машинаа тэнгэрээс унагаж, Unity -ийн физикийн хөдөлгүүрийг ашиглан газарт унах болно.

Алхам 5: Машинаа тэнгэрт хий

Машинаа тэнгэрт хий
Машинаа тэнгэрт хий

Машины үндсэн тоглоомын объектод аудио эх үүсвэрийн бүрэлдэхүүн хэсгийг нэмж, машины ослын дууг аудио клипийн цэг рүү чирнэ үү.

Одоо бид хэрэглэгч дэлгэц дээр дарахад машиныг агаарт гаргах скрипт хийх хэрэгтэй бөгөөд дараа нь машин газар унах үед ослын дууг тоглуулах хэрэгтэй. Тиймээс, активын хавтас дээр хулганы баруун товчийг дараад шинэ C# скрипт үүсгээд "CarController" гэж нэрлэнэ үү.

Тэнд байгаа бүх кодыг дараах байдлаар солино уу.

System. Collections ашиглах;

System. Collections. Generic ашиглах; UnityEngine ашиглах; нийтийн ангийн CarController: MonoBehaviour {private bool soundPlayed = false; // Шинэчлэлтийг хүрээ бүрт нэг удаа дууддаг void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} нийтийн хүчин төгөлдөр бус байдал MoveCar () {transform.localPosition += шинэ Vector3 (0, 10, 0); transform.eulerAngles += шинэ Vector3 (5, 20, 5); soundPlayed = худал; } IEnumerator DelayPlaySound () {өгөгдөл нь шинэ WaitForSeconds (.2f) буцаана; GetComponent (). Play (); }}

MoveCar функцийг дээрх зураг дээрх шиг OnInteractiveHitTest арга хэмжээнд нэмээрэй. Хэрэглэгч дэлгэц дээр дарахад энэ нь дуудагдах болно.

Алхам 6: Ламбо хаалга

Ламбо хаалга
Ламбо хаалга

Тиймээс, хэрэв та машины тоглоомын объектыг өргөжүүлж, хаалга олвол хоёр хаалга нь нэг торон болохыг анзаарах болно. Хэрэв бид хаалга онгойлгохыг хүсч байвал бидний цорын ганц сонголт бол босоо чиглэлд нээгддэг Lambo хаалга байх болно. Энэ ажлыг хийхийн тулд бид эхлээд тэдний эргэх цэгийг өөрчлөх хэрэгтэй.

Машины хүүхэд болох хоосон тоглоомын объект хий. Хаалгыг чирж оруулаад тоглоомын шинэ объектын хүүхэд болго. Эцэг эхийн тоглоомын объектыг хаалганы нугасаар эргүүлэх цэг байх ёстой газар руу зөөнө үү. Одоо хүүхдийн хаалгыг буцааж байрлуул. Одоо бид эцэг эхийн хаалгыг эргүүлэх үед эргэх цэг зөв газартаа байна.

Бид таныг машинд ойртоход хаалга онгойлгодог скрипт хийх гэж байна, гэхдээ үүнийг хийхээс өмнө үйл явдлыг "өдөөх" арга хэрэгтэй болно. Хаалганы тоглоомын объектод хайрцаг мөргөлдөгч нэмж, масштабтай болгож, машиныг хоёр чиглэлд бага зэрэг дайран өнгөрнө. "IsTrigger" -ийг шалгана уу. Одоо үндсэн камерт хайрцаг мөрдөгч нэмж, зохих хэмжээгээр нь масштаблаарай. Мөн "isTrigger" -ийг шалгана уу. Хатуу биеийн бүрэлдэхүүн хэсгийг камер дээрээ нэмж "useGravity" -г арилгана уу. Камераа сонгосны дараа байцаагчийн дээд хэсэгт байрлах "MainCamera" гэсэн шошгыг өөрчилнө үү.

"LamboDoorBehavior" нэртэй шинэ скрипт нэмж, доорх кодыг нэмнэ үү. Скриптийг хаалганыхаа эцэг эх рүү чирнэ үү.

System. Collections ашиглах;

System. Collections. Generic ашиглах; UnityEngine ашиглах; нийтийн анги LamboDoorBehavior: MonoBehaviour {private float CurrAngle = 0; хувийн хөвөх хүссэнAngle = 0; // Шинэчлэлтийг хүрээ бүрт нэг удаа дууддаг void Update () {CurrAngle = Mathf. LerpAngle (currAngle, хүссэнAngle, Time.deltaTime * 3f); transform.localEulerAngles = шинэ Vector3 (CurrAngle, 0, 0); } нийтийн хоосон OpenDoors () {хүссэнAngle = 60f; } public void CloseDoors () {хүссэнAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Энэ скрипт нь хоёр цэг (эсвэл энэ тохиолдолд хоёр өнцөг) хооронд интерполяц хийдэг Lerp () функцийг ашиглан AR -тэй ойртоход таны хаалга аажмаар нээгдэх болно.

Алхам 7: AR дээр видео тоглуулах

AR дээр видео тоглуулж байна
AR дээр видео тоглуулж байна
AR дээр видео тоглуулж байна
AR дээр видео тоглуулж байна

Бидний хийх ёстой хамгийн сүүлийн зүйл бол AR дээр видео тоглуулах явдал юм.

Таны машины хүүхэд болсон тоглоомын объект дээр хулганы баруун товчийг дараад Quad гэсэн 3D объект үүсгэнэ үү. Энэ нь quad нь таны машины хүүхэд байх болно. Энэ дөрвөлжинг байрлуулж, хэмжээг нь тохируулаарай, энэ нь таны машины зурвас дотор багтах бөгөөд тэнд байх ёстой юм шиг харагдаж байна. Энэ бол бид видеог тоглуулах гэж байгаа зүйл юм.

Видео тоглуулагчийн бүрэлдэхүүн хэсгийг дөрвөлжиндөө нэмнэ үү. Эх сурвалжийг URL болгон өөрчилж,. MP4 файлын хатуу холбоосыг хайж олох эсвэл видео файлыг өөрийн хөрөнгийн фолдер руу чирээд дараа нь хоосон үүр рүү чирнэ үү. Хэрэв та URL -аас видео дамжуулахыг хүсч байвал Инстаграм бол гайхалтай эх сурвалж юм. Google Chrome дээрх Instagram видео дээр хулганы баруун товчийг дараад шалгах товчийг дарна уу. Видео агуулсан дивийг олоод линкийг тэндээс хуулж аваарай (надад дээрх зураг байгаа).

Хэрэв та нэгээс олон удаа тоглохыг хүсч байвал давталтыг шалгаарай. Энэ тоглоомын объектод аудио эх үүсвэрийн бүрэлдэхүүн хэсгийг нэмж, гаралтын эх үүсвэрийг видео тоглуулагч дээрх аудио эх үүсвэр болгон өөрчилнө үү. Шинээр үүсгэсэн аудио эх сурвалжаа тэр үүр рүү чирнэ үү.

Эцэст нь бид бэлэн боллоо!

Алхам 8: Апп -ийг утсан дээрээ тавь

Апп -ийг утсан дээрээ тавь!
Апп -ийг утсан дээрээ тавь!

Хэрэв та Андройд дээр зориулж бүтээж байгаа бол зүгээр л файл руу ороод утсаа залгаад бүтээгээд ажиллуулаарай.

Хэрэв та iPhone эсвэл iPad дээр ажиллаж байгаа бол Xcode -г апп дэлгүүрээс татаж аваарай. Мөн www.apple.developer.com хаягаар үнэгүй алим хөгжүүлэгчийн бүртгэлд бүртгүүлнэ үү. Файл руу ороод бүтээх дээр дарна уу. Xcode -оос үүсгэсэн файлыг нээгээд утсаа залгаарай. Хөгжлийн багаа сонгоод тоглуулах товчийг дарна уу.

Та камераа бага зэрэг хөдөлгөж магадгүй, гэхдээ секундын дараа дэлгэцийг дарахад машин тань тэнгэрээс газар унах болно. Одоо та дотогшоо алхаж, видео тоглуулах самбар дээр тоглох боломжтой боллоо!

Хөгжилтэй байгаарай, хэрэв танд асуулт байвал сэтгэгдэл дээр надад хэлээрэй!

Зөвлөмж болгож буй: