کار با Anchors

از لنگرها برای اینکه اشیای مجازی در صحنه واقعیت افزوده در جای خود باقی بمانند، استفاده کنید.

چرا از لنگرها استفاده کنیم؟

همانطور که درک محیطی ARCore در طول یک تجربه AR به روز می شود، اشیاء مجازی می توانند از جایی که قرار گرفته اند دور شوند. این می تواند بر واقع گرایی و تجربه کاربری برنامه شما تأثیر بگذارد.

لنگرها اطمینان حاصل می کنند که اشیاء در موقعیت و جهت یکسانی در فضا باقی می مانند و به شما کمک می کنند تا توهم اشیاء مجازی قرار گرفته در دنیای واقعی را حفظ کنید.

نحوه کار لنگرها

اگر در استفاده از لنگرها تازه کار هستید، مرور فضا و ژست های جهان مفید است.

  • فضای جهانی

    • فضایی را که دوربین و اشیاء در آن قرار دارند هماهنگ کنید
    • موقعیت های دوربین و اشیا در فضای جهان از فریم به فریم به روز می شوند
  • ژست

    • نشان دهنده موقعیت و جهت یک شی در فضای جهان است
    • همچنین در iOS به آن تبدیل می شود

هنگامی که یک لنگر ایجاد می کنید، از حالتی استفاده می کنید که موقعیت و جهت را نسبت به تخمین فضای جهان برای فریم فعلی توصیف می کند.

شما یک یا چند شی را به این لنگر متصل می کنید. به نظر می رسد لنگر و اشیاء متصل به آن در جایی که در جهان قرار دارند باقی می مانند. همانطور که ژست لنگر با به‌روزرسانی‌های فضای جهان در هر فریم سازگار می‌شود، لنگر موقعیت‌های اجسام را متناسب با آن به‌روزرسانی می‌کند.

می‌توانید چندین شی را به یک لنگر متصل کنید تا مطمئن شوید که این اشیا موقعیت و جهت نسبی خود را حفظ می‌کنند، حتی زمانی که حالت لنگر تنظیم می‌شود.

از لنگرها در صحنه خود استفاده کنید

برای استفاده از لنگرها در صحنه، کد شما باید:

  • لنگرها را در زمینه Trackable (مانند یک هواپیما) یا ARCore Session ایجاد کنید.
  • یک یا چند شی را به لنگر وصل کنید.

لنگرها می توانند انواع مختلفی از رفتارهای موقعیتی را در اشیاء صحنه شما پشتیبانی کنند.

تعیین زمینه لنگر و تعداد لنگرهایی که برای اشیاء صحنه خود نیاز دارید به رفتار موقعیتی که صحنه AR شما نیاز دارد بستگی دارد. برای اطلاعات بیشتر به بخش های زیر مراجعه کنید.

زمینه لنگر را انتخاب کنید

با استفاده از Trackable یا ARCore Session، لنگرها را به صحنه خود اضافه کنید.

هنگامی که شما می خواهید اشیاء به لنگر را به
در Trackable "جوش داده شده" ظاهر می شود و تحت تأثیرات چرخشی مشابه Trackable قرار می گیرد.
این شامل:
  • به نظر می رسد که به سطح یک هواپیما می چسبد
  • حفظ موقعیت نسبت به Trackable، مانند شناور در بالا یا جلوی آن
قابل پیگیری
به نظر می رسد در تمام مدت تجربه کاربری در فضای جهانی در همان حالت باقی بمانید جلسه ARCore

لنگر یک یا چند شی

می توانید یک یا چند شی را به یک لنگر متصل کنید. به طور کلی، این اشیاء با یک یا چند مورد زیر رابطه فضایی دارند:

  • یکدیگر
  • قابل ردیابی، مانند هواپیما
  • موقعیتی در فضای جهان

دستورالعمل های لنگر

واقع گرایی و عملکرد برنامه شما از استفاده موثر و کارآمد از لنگرها سود می برد.

به نظر می رسد اشیاء متصل به یک لنگر در نزدیکی، جای خود را به طور واقع بینانه و نسبت به یکدیگر در طول تجربه AR حفظ می کنند.

فقط استفاده از لنگرهایی که نیاز دارید به کاهش هزینه های CPU کمک می کند.

در صورت امکان از لنگرها استفاده مجدد کنید

در بیشتر موارد، به جای ایجاد یک لنگر جدید برای هر شی، باید از یک لنگر برای چندین شی نزدیک استفاده کنید.

اگر شی نیاز به حفظ یک رابطه فضایی منحصر به فرد با یک Trackable یا موقعیتی در فضای جهان دارد، از یک لنگر جدید برای یک شی استفاده کنید.

به خاطر داشته باشید که اگر هر شی در یک صحنه لنگر مخصوص به خود را داشته باشد، این لنگرها در پاسخ به برآورد ARCore از فضای جهان در هر فریم، وضعیت جسم را مستقل از یکدیگر تنظیم می کنند. اشیاء لنگر جداگانه می توانند نسبت به یکدیگر جابجا شوند یا بچرخند و توهم صحنه AR را که در آن اشیاء مجازی باید نسبت به یکدیگر در جای خود باقی بمانند، از بین می برند.

مثال
به عنوان مثال، تصور کنید که برنامه شما به کاربران اجازه می دهد قطعات مبلمان مجازی را در اطراف یک اتاق قرار دهند. یک کاربر برنامه را باز می کند و ARCore شروع به ردیابی یک میز و یک طبقه در اتاق به عنوان هواپیما می کند. کاربر یک لامپ مجازی را روی میز قرار می دهد. سپس کاربر یک صندلی مجازی را روی زمین قرار می دهد.

در این مرحله، صحنه شما باید دارای یک لنگر به صفحه رومیزی و دیگری متصل به صفحه کف باشد.

اگر کاربر یک لامپ مجازی دیگر را به میز اضافه کند، می‌توانید از لنگر که قبلاً به صفحه رومیزی متصل شده است، دوباره استفاده کنید. به این ترتیب، هر دو لامپ به نظر می رسد که به صفحه رومیزی می چسبند و مکان خود را نسبت به یکدیگر حفظ می کنند. صندلی همچنین موقعیت خود را نسبت به سطح کف حفظ می کند.

اشیاء را نزدیک لنگرها نگه دارید

هنگام لنگر انداختن اشیا، مطمئن شوید که آنها به لنگر مورد استفاده شما نزدیک هستند. از قرار دادن اجسام دورتر از هشت متر (8 متر) یا بیست و شش فوت (26 فوت) از لنگر برای جلوگیری از حرکت چرخشی غیرمنتظره به دلیل به روز رسانی های ARCore به مختصات فضایی جهان خودداری کنید.

اگر می خواهید یک شی را بیش از هشت متر از یک لنگر موجود قرار دهید، یک لنگر جدید نزدیکتر به این موقعیت ایجاد کنید و جسم را به لنگر جدید متصل کنید.

لنگرهای استفاده نشده را جدا کنید

هر لنگر را که دیگر به آن نیاز ندارید جدا کنید تا برنامه شما عملکرد بیشتری داشته باشد.

برنامه شما برای هر Trackable هزینه CPU را متحمل می شود و ARCore Trackable هایی را که لنگرهای متصل دارند منتشر نمی کند.

انواع لنگر

انواع لنگر بر اساس دامنه اعتبار آنها، از محلی تا سراسری، متمایز می شوند.

  • لنگرهای محلی با برنامه به صورت محلی ذخیره می شوند و فقط برای آن نمونه از برنامه معتبر هستند. کاربر باید از نظر فیزیکی در مکانی باشد که لنگر را در آن قرار می دهد.

  • Cloud Anchors در Google Cloud ذخیره می‌شوند و ممکن است بین نمونه‌های برنامه به اشتراک گذاشته شوند. کاربر باید از نظر فیزیکی در مکانی باشد که لنگر را در آن قرار می دهد.

  • لنگرهای جغرافیایی بر اساس عرض جغرافیایی، طول و ارتفاع جغرافیایی، به علاوه داده‌های سیستم موقعیت‌یابی بصری (VPS) گوگل، برای ارائه مکان دقیق تقریباً در هر نقطه از جهان هستند. تا زمانی که برنامه به اینترنت متصل باشد و بتواند از VPS استفاده کند، کاربر ممکن است یک لنگر از یک مکان راه دور قرار دهد.