فهرست مطالب:
- مرحله 1: موانع…
- مرحله 2: قطب نما احمقانه
- مرحله 3: در نهایت یک راه حل
- مرحله 4: اجازه دهید برنامه کار کند
- مرحله 5: پیکربندی GameSparks
- مرحله 6: رویدادهای نهایی را اضافه کنید…
- مرحله 7: کد ابری را اضافه کنید
- مرحله 8: ما انجام شده ایم
تصویری: قرار دادن اشیاء AR در مختصات GPS در واقعیت افزوده: 8 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
این دستورالعمل به ساخت برنامه تلفن همراه برای قرار دادن اشیاء AR در مختصات GPS با ARkit و ARCore با استفاده از Unity3D می پردازد. من در مورد راه اندازی پروژه ای که با استفاده از Mapbox انجام دادم ، به شما کمک می کند تا پیام ها را در مکان های خاص GPS برچسب گذاری کرده و آنها را در پایگاه داده GameSparks بنویسید.
همه نرم افزارها و پروژه هایی که در اینجا استفاده می کنیم رایگان هستند.
اگر قبلاً آن را ندارید ، Unity 3D را از اینجا بارگیری کنید:
unity3d.com/
مرحله 1: موانع…
بنابراین این ساده ترین برنامه ای نیست که بتوان با محدودیت های کنونی GPS تلفن همراه و قطب نمای تلفن همراه ساخت.
اگر بخواهیم صادق باشیم ، اشیاء در جایی ظاهر می شوند که احتمالاً حدود 50 of از زمان ظاهر می شوند. بنابراین نتایج عالی نیستند ، اما هرچه به اجسام نزدیک می شوید دقیق تر می شوند.
در هر صورت ، من فکر می کنم یک راه بهتر برای AR مبتنی بر GPS در این مرحله استفاده از نقشه ای مانند بازی pokemon go است و وقتی به یک شی نزدیک می شوید ، دوربین باز می شود و فقط آن شی را درست در مقابل خود مشاهده می کنید. در آینده می خواهم یک آموزش کامل در مورد اجرای ساده تر مانند آن انجام دهم.
در هر صورت من قبلاً از Mapbox استفاده کرده ام و می دانم که آنها یک کلاس تبدیل دارند که عملکردهایی برای تبدیل مختصات GPS به مختصات Unity world دارد. من فکر می کردم فقط می توانم برخی از مختصات GPS را ارسال کنم و آنها در جایی که من می خواهم ظاهر می شوند. کار نکرد
اشیاء نسبت به یکدیگر به درستی نشان داده می شوند اما هرگز در محل مناسب قرار نگرفته اند. بنابراین من تحقیقاتی انجام دادم و متوجه شدم که دوربین Unity من باید با شمال واقعی تراز شود تا اشیاء در مکان مناسب ظاهر شوند.
مشکل این است که قطب نما در تلفن شما هرگز کاملاً دقیق نیست.
مرحله 2: قطب نما احمقانه
مشکل اصلی این است که وقتی اشیاء را دور از دوربین قرار می دهید ، اگر تصور تلفن های شمالی از شمال واقعی حتی چند درجه خاموش باشد ، اشیاء در فاصله بسیار دور ظاهر می شوند.
من تقریبا از این کار صرف نظر کردم اما یکی از دوستان در مورد این پروژه GitHub به من گفت:
github.com/mapbox/mapbox-ar-unity
این تلاشی است برای انجام AR در مقیاس جهانی از Mapbox که اشیاء در مختصات GPS متصل شده اند تا تجربیات واقعیت افزوده بتواند در فواصل طولانی در خارج به جای یک اتاق کوچک در خانه شما کار کند.
پروژه آنها از دلتاهای موقعیت AR و دلتای موقعیت GPS برای محاسبه زاویه ای که از دوربین AR به سمت شمال واقعی تغییر می کند ، استفاده می کند. بنابراین وقتی کاربر برنامه را شروع می کند ، اساساً یک GPS بخوانید و از او بخواهید در یک خط مستقیم راه برود و یک GPS دیگر بخواند. سپس با استفاده از این دو نقطه می توانید تشخیص دهید که آن شخص در چه مسیری قدم می زد (با فرض اینکه دوربین او به سمتی که در حال راه رفتن است اشاره می کند). آنها دریافتند که این کار دقیق تر از استفاده از قطب نما در تلفن است.
مسئله دیگری که آنها سعی در حل آن دارند ، رانش با ARkit است. ردیابی در یک اتاق کوچک مشکلی ندارد ، اما هنگامی که در خارج راه می روید در مسافت های طولانی اشیاء AR از محل مورد نظر دور می شوند.
مرحله 3: در نهایت یک راه حل
بنابراین این پروژه Mapbox راهی برای بدست آوردن جهت قابل اعتماد روبرو نسبت به شمال واقعی ارائه می دهد ، بنابراین تنها چیزی که باقی می ماند فقط قرار دادن اجسام در جهان است.
من این مثال را کمی گسترش دادم تا بتوانم یک پیام متنی را در مکان خاصی از GPS برچسب گذاری کنم و سپس آن اطلاعات را در پایگاه داده GameSparks بنویسم. این همان چیزی است که من به شما نشان می دهم چگونه از آن استفاده کنید.
تنها مشکلی که در این پروژه وجود دارد این است که قبل از استفاده باید از تراز خوبی برخوردار شوید.
منظور من از هم ترازی این است که از آنجا که Mapbox از دلت های موقعیت برای محاسبه عنوان استفاده می کند ، هنگامی که ابتدا برنامه را باز می کنید و باید مطمئن شوید که سطح زمین شناسایی شده است و سپس مدتی در یک خط مستقیم قدم می زنید تا یک تراز مناسب محاسبه شود.
از این نظر UX یک مانع دیگر است ، اما در پیشرفتهای پروژه آنها مثالی را برای قرار دادن مکعب ها در مقابل کاربر قرار می دهند تا از یک تراز خوب اطمینان حاصل کنند.
بنابراین اکنون که محدودیت های این پروژه را می دانید ، اجازه دهید نحوه استفاده از آن را به شما نشان دهم تا بچه ها بتوانند در اطراف بازی کنند. در نهایت باید یک حساب mapbox و یک حساب بازی بازی ایجاد کنید که هر دو رایگان هستند. من فقط از بازی های بازی استفاده کردم تا بتوانم مختصات GPS را در جایی ذخیره کنم زیرا در حین آزمایش شما اغلب برنامه را دوباره راه اندازی و بازسازی می کنید.
همچنین ، این باید با ARkit و ARcore کار کند ، اما من در حال حاضر فقط آیفون دارم تا تنها چیزی باشد که می توانم آزمایش کنم.
مرحله 4: اجازه دهید برنامه کار کند
اولین چیزها ابتدا این پروژه را از GitHub بارگیری کنید:
فایل را در دسکتاپ خود ذخیره کرده و در Unity باز کنید.
به فایل بروید ، تنظیمات را ایجاد کنید و پلتفرم خود را به Android یا IOS تغییر دهید.
حالا به Mapbox.com بروید و اگر قبلاً یک حساب کاربری ندارید ایجاد کنید.
کلید API خود را بگیرید و به Unity برگردید ، روی برگه Mapbox در بالا کلیک کنید و روی پیکربندی کلیک کنید. کلید API خود را در آنجا بچسبانید.
اکنون یک حساب کاربری در GameSparks.com ایجاد کنید و روی دکمه در بالا سمت راست کلیک کنید تا یک برنامه جدید ایجاد کنید.
نام آن را هرطور که می خواهید بگذارید و کلید API و راز برنامه خود را کپی کنید. به یونیتی برگردید و برگه GameSparks را در بالا بیابید. روی پیکربندی کلیک کنید و اعتبار خود را نیز در آنجا بچسبانید.
مرحله 5: پیکربندی GameSparks
اکنون قبل از اینکه برنامه کار کند ، باید پایگاه داده خود را پیکربندی کنیم.
GameSparks از noSQL استفاده می کند ، بنابراین ما باید ابتدا یک مجموعه ایجاد کنیم و رویدادهایی را که برنامه ما برای خواندن ، نوشتن و حذف از سرور استفاده می کند اضافه کنیم.
ابتدا یک مجموعه جدید در وب سایت GameSparks ایجاد کنید و نام آن را هرطور که می خواهید بگذارید.
اکنون باید 3 رویداد ایجاد کنیم.
اولین کاری که برنامه باید انجام دهد نوشتن شی پیام در پایگاه داده است.
یک پیام دارای عرض ، طول جغرافیایی و سپس متن پیام است.
بنابراین به configurator بروید و یک رویداد جدید اضافه کنید. کد کوتاه "SAVE_GEO_MESSAGE" را ایجاد کنید.
هر چه می خواهید برای نام و توضیحات وارد کنید.
کد کوتاه را برای 3 ویژگی اضافه کنید:
"LAT" "LON"
"TEXT"
هر نوع داده را روی رشته تنظیم کنید و مقدار پیش فرض را روی 0 تنظیم کنید. نوع تجمیع پیش فرض هر یک را به "مورد استفاده در اسکریپت" تبدیل کنید.
مرحله 6: رویدادهای نهایی را اضافه کنید…
این برنامه همچنین باید همه پیامها را از پایگاه داده بارگیری کرده و هنگام شروع برنامه آنها را در Unity بخواند تا بتوانیم پیامهای AR را که در پایگاه داده ذخیره شده است قرار دهیم.
یک رویداد دیگر ایجاد کنید و آن را "LOAD_MESSAGE" بنامید
این رویداد نیازی به هیچ ویژگی ندارد. دوباره هر چه می خواهید برای نام و توضیحات قرار دهید.
همین کار را برای یک رویداد دیگر انجام دهید و آن را "REMOVE_MESSAGES" بنامید
این حتی نیازی به هیچ ویژگی ندارد.
در حال حاضر آخرین کاری که باید انجام دهیم این است که مقداری "کد ابری" یا کد سمت سرور اضافه کنیم که هنگام شروع هر رویداد از برنامه ما فراخوانی می شود.
مرحله 7: کد ابری را اضافه کنید
در GameSparks به تنظیم کننده و کد ابری بروید.
ما باید یک اسکریپت به هر رویدادی که تازه ساخته ایم اضافه کنیم.
در رویداد LOAD_MESSAGE این کد را اضافه کرده و ذخیره کنید:
var messageData = Spark.runtimeCollection ("GeoMessage") ؛
var cursor = 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 کلیک کنید و در کنسول "دستگاه تأیید شده …" را مشاهده کنید.
حالا به فایل بروید ، تنظیمات را بسازید و روی ساخت کلیک کنید. اگر تا به حال برنامه ای برای Android یا IOS ایجاد نکرده اید ، ممکن است نیاز به ایجاد یک حساب توسعه در Google یا Apple داشته باشید.
هنگامی که برنامه روی تلفن شما قرار دارد ، ابتدا باید مطمئن شوید که ARKit یا ARCore یک سطح زمین را تشخیص می دهد. حالا روی دکمه log در گوشه پایین سمت چپ کلیک کنید. چند قدم جلو بروید و خواهید دید که "تراز محاسبه شده" به رنگ آبی روشن ظاهر می شود. اکنون دکمه های UI باید ظاهر شوند و در صورت بارگیری هرگونه پیام در پایگاه داده شما ، در جهان قرار می گیرند.
برای برچسب زدن پیام GPS جدید AR به جایی بروید که می خواهید پیام باشد و روی نماد پیام در سمت راست بالای صفحه کلیک کنید. هر پیامی را که می خواهید تایپ کنید و روی دکمه pin کلیک کنید!
توصیه شده:
GlobalARgallery - گالری واقعیت افزوده جهانی: 16 مرحله
#گالری جهانی - گالری واقعیت افزوده جهانی: #گالری جهانی فرصتی است برای مدارس (و سایرین) که به صورت ناهموار در سراسر جهان با یکدیگر ارتباط برقرار کرده و تجربیات ، آثار هنری ، داستانها ، جدول زمانی ، نمایشگاه ها ، ارائه ها و هر چیز دیگری را که می توانید تصور کنید به اشتراک بگذارید. همه این موارد در A
قرار دادن یک کپی روی دکمه کلیپ بورد در یک صفحه وب: 5 مرحله (همراه با تصاویر)
قرار دادن یک کپی روی دکمه Clipboard در یک صفحه وب: این ممکن است ساده به نظر برسد ، و ممکن است برای نصب آن در Instructables احمقانه به نظر برسم ، اما در واقع ، به این راحتی ها نیست. CSS ، Jquery ، HTML ، برخی از جاوا اسکریپت فانتزی وجود دارد ، و خوب ، می دانید
آردوینو شیشه - هدست واقعیت افزوده منبع باز: 9 مرحله (همراه با تصاویر)
آردوینو شیشه - هدست واقعیت افزوده منبع باز: آیا تا به حال به فکر دریافت هدست واقعیت افزوده افتاده اید؟ آیا شما نیز از احتمال واقعیت افزوده شگفت زده شده اید و با دل شکسته به قیمت آن نگاه کرده اید؟ بله ، من نیز! اما این من را در آنجا متوقف نکرد. من شجاعتم را تقویت کردم و در عوض ،
CityCoaster - یک زیرانداز واقعیت افزوده اختصاصی برای کسب و کار خود بسازید (TfCD): 6 مرحله (همراه با تصاویر)
CityCoaster - زیرپوش واقعیت افزوده خود را برای تجارت خود بسازید (TfCD): شهری زیر جام شما! CityCoaster یک پروژه متولد شده است که در مورد محصولی برای فرودگاه روتردام لاهه فکر می کند که می تواند هویت شهر را بیان کند و مشتریان منطقه سالن را با واقعیت افزوده سرگرم می کند. در محیطی مانند
ویترین محصول واقعیت افزوده (TfCD): 11 مرحله (همراه با تصاویر)
ویترین محصولات واقعیت افزوده (TfCD): امروزه فروش محصولات در طول پرواز رواج بیشتری پیدا کرده است. با این حال ، در هواپیما اولین و تقریباً تنها اطلاعاتی که مسافر (خریدار احتمالی) می بیند یک بروشور چاپ شده است. این دستورالعمل راهی برای نوآوری در هوا نشان می دهد