Unity، OpenXR، و WebXR یک جعبه ابزار همه کاره برای ایجاد تعاملات متنوع در تجربیات فراگیر ارائه می دهند. هدف توسعه برنامههای همهجانبهای است که کاربران بتوانند با استفاده از تجربیات آموخته شده موجود، با آنها تعامل داشته باشند. شما می توانید هر چیزی را طراحی کنید، از ژست های ساده گرفته تا شبیه سازی های پیچیده مبتنی بر فیزیک.
توجه داشته باشید که برنامههای Unity، OpenXR و WebXR فقط در فضای کامل کار میکنند.
با اصول طراحی Android XR آشنا شوید .
ورودی ها
برنامه های XR می توانند شامل تعامل با ردیابی دست، چشم و صورت باشند. حرکات؛ دستورات صوتی؛ و دستگاه های ورودی سنتی مانند صفحه کلید، ماوس و کنترلرها. در نظر بگیرید که برنامه شما برای ارائه یک تجربه کاربری طبیعی و در دسترس به چه ورودی هایی نیاز دارد.
- برای کاهش منحنی یادگیری برنامه، از حرکات آشنا پشتیبانی کنید. هنگام تعامل با رابط کاربری دوبعدی، از حرکات استاندارد سیستم مانند نیشگون گرفتن استفاده کنید. برای تعاملات سه بعدی مانند برداشتن و پرتاب توپ، باید با حرکاتی طراحی کنید که تعامل دنیای واقعی را تقلید کند. این بر دانش موجود کاربر استوار می شود و نیاز به آموزش را کاهش می دهد.
- اگر حرکات اضافی لازم است، مطمئن شوید که یادگیری، به خاطر سپردن و اجرا آسان است. از حرکات پیچیده و چند مرحله ای یا موقعیت های غیرطبیعی که می تواند منجر به ناراحتی و خستگی شود دوری کنید. ارائه راهنماهایی را برای آموزش استفاده از حرکات دست به کاربران در نظر بگیرید.
- اطمینان حاصل کنید که تجربه شما با دست چپ یا راست قابل استفاده است. اگر این امکان پذیر نیست، ترجیحات دستی سیستم را دنبال کنید.
- در حالی که تعاملات دو دستی می تواند غوطه ور باشد، ممکن است برای کاربران با تحرک محدود چالش برانگیز باشد. برای اقدامات ضروری، تعاملات یک دست را اولویت بندی کنید. اگر حرکات دو دستی ضروری است، روش های جایگزین یک دست را برای رسیدن به نتیجه مشابه ارائه دهید.
- برنامههای Unity، OpenXR و WebXR بهطور خودکار از پشته پشتی اندروید بهره نمیبرند. پیادهسازی پشته پشتی را در نظر بگیرید تا به کاربران امکان دسترسی به اشاره عقب Android XR برای لغو عملکردها یا بازگشت با استفاده از پیمایش اشارهای را بدهد.
UI
عناصر رابط کاربری مانند دکمه ها، پانل ها و متن برای تعاملات طبیعی در برنامه های XR ضروری هستند. طراحی باید یک تجربه کاربری بدون درز و بصری را در اولویت قرار دهد. انتخاب های خاص طراحی UI به نیازهای منحصر به فرد برنامه شما بستگی دارد.
- عناصر تعاملی اولیه و محتوای حیاتی را در خط دید و میدان دید طبیعی کاربر قرار دهید. این امر دید را افزایش می دهد و تجربه ای راحت را تضمین می کند. نحوه تعامل کاربران با رابط را در نظر بگیرید تا مشخص شود که در کدام فاصله باید قرار گیرد. به عنوان مثال، آیا آنها با اشاره گر لیزری نشانه می گیرند یا مستقیماً با انگشتان خود روی دکمه ها ضربه می زنند؟ اندازه رابط کاربری خود را بر اساس فاصله مورد نظر از کاربر پیکربندی کنید. به راهنمای اندازه و مقیاس Android XR مراجعه کنید .
- هنگام طراحی عناصر رابط کاربری تعاملی مانند دکمهها، نحوه تعامل کاربران با آنها، سطح دقت مورد نیاز برای هر روش ورودی - ردیابی دست در مقابل ماوس، را در نظر بگیرید و عواملی مانند اندازه هدف و فاصله را بر این اساس تطبیق دهید. اطمینان حاصل کنید که موقعیتهای رابط کاربری امکان تعامل راحت را فراهم میکنند. ارائه بازخورد بصری برای اقدامات کاربر. به راهنمای سبک Android XR مراجعه کنید .
- رابط کاربری دو بعدی مانند پانل ها برای تعاملات مبتنی بر منو مناسب هستند. رابط کاربری سه بعدی مانند دکمههای فیزیکی، اهرمها و سوئیچها میتوانند در تعامل با محیطهای فضایی جذابتر باشند. تعادل دقیق تعاملات مبتنی بر پانل برای خوانایی بالا و اشیاء سه بعدی برای تعاملات متمرکز بر جهان می تواند یک تجربه قدرتمند و همه جانبه ایجاد کند.
- با استفاده از اندازه، انواع و کنتراست فونت مناسب، متن را خوانا کنید. UI را بر اساس فاصله ای که کاربران در حال مشاهده متن خواهند بود، تعیین کنید. از فونتهای Signed Distance Field برای ارائه روان متن در اندازههای مختلف فونت استفاده کنید. به راهنمای تایپوگرافی Android XR مراجعه کنید .
تعاملات فضایی
برخی از غنی ترین تعاملات در XR شامل توانایی کاربر برای تعامل مستقیم با اشیاء سه بعدی است. این می تواند به همان سادگی برداشتن، بازرسی و پرتاب کردن یک شی باشد. همچنین شامل فعل و انفعالات پیچیدهتری مانند کشیدن اهرمها، فشار دادن دکمهها و تعامل با عناصری است که قبلاً توسط کاربر نگه داشته شدهاند - مانند اسپری کردن یک بطری اسپری. برای تعاملات سه بعدی بصری شی، طراحی بر اساس دانش از قبل موجود کاربر از جهان است.
- اگر می خواهید اقدامات واقع بینانه ایجاد کنید، یک موتور فیزیک را یکپارچه کنید. اگر با Unity میسازید، یک موتور فیزیک داخلی دارد. توجه داشته باشید که موتورهای فیزیک چقدر قدرت پردازشی مصرف می کنند و برای عملکرد بهینه سازی می کنند.
- باورپذیری مهمتر از واقع گرایی است. به عنوان مثال، اگر کاربری معتقد است که توپ را به سختی پرتاب کرده است، برنامه باید نیروی بیشتری را به توپ اضافه کند که سنسورهای دستگاه نشان می دهد.
- اشیاء باید به گونه ای ساخته شوند که با توان آنها مطابقت داشته باشد. این بدان معنی است که هر اقدام ممکنی که کاربر می تواند روی یک شی یا با آن انجام دهد باید در برنامه شما در نظر گرفته شود. به عنوان مثال، یک دونات را می توان برداشت، انداخت و خورد. به جای خوردن دونات، این برنامه می تواند صدایی را به کار گیرد که می گوید: "در حال حاضر گرسنه نیستم". این راه حل ها به اقداماتی می پردازند که کاربر انتظار دارد با یک دونات انجام دهد.
- اشیاء را می توان با استفاده از تکنیک های مختلف نگه داشت، از جمله والدین، مفاصل فیزیک، دنبال کردن، و نیروهای فیزیک. هر تکنیکی مزایا و معایب خاص خود را دارد. قبل از اجرای یک روش چنگ زدن سفارشی، تحقیق و آزمایش رویکردهای مختلف برای تعیین مناسبترین آنها بسیار مهم است.
- ارگونومی هنگام طراحی در یک محیط سه بعدی مهم است. برای دسترسی، اضافه کردن دسته به سطوح صاف را در نظر بگیرید تا کاربر بتواند آن را در ارتفاعی راحت تنظیم کند. حتماً هر جسم موجود در فضا را با کاربران مختلف تست کنید، زیرا بدن هر فرد متفاوت است.
طراحی صحنه
صحنهها میتوانند از جهانهای مجازی کاملاً فراگیر تا تجربیات واقعیت افزوده که عناصر مجازی را با محیط واقعی کاربر ترکیب میکنند، متغیر باشند. صحنه هایی را طراحی کنید که راحت، کاربردی باشند و از قابلیت های منحصر به فرد XR بهره ببرید.
- صحنه هایی را که در اطراف کاربر حرکت می کنند مانند پرواز محدود کنید. این می تواند باعث ناراحتی شود، به خصوص اگر بدن فیزیکی کاربر ثابت بماند. برخی از تکنیکهای حرکتی مانند دید تونلی (که در بخش بعدی توضیح داده شد) به کاهش ناراحتی کمک میکنند.
- برای ایجاد تجربیات واقعیت ترکیبی، میتوانید از قابلیتهای درک صحنه Android XR برای ادغام اشیاء مجازی در محیط فیزیکی کاربر استفاده کنید.
- برای کاربردهای واقعیت مجازی، ممکن است بخواهید نماهای محدودی از دنیای واقعی را در فضای مجازی ترکیب کنید. این به کاربران کمک می کند تا از محیط اطراف خود آگاه باشند و بدون ترک تجربه غوطه ور با اشیاء فیزیکی تعامل داشته باشند.
حرکت
تجربههای Android XR تشویق میشوند تا به کاربران اجازه دهند آزادانه در فضای فیزیکی خود همانطور که توسط یک مرز پیکربندی شده تعریف شده است حرکت کنند. به عنوان مثال، برخی از کاربران متوجه می شوند که تجربیات مجازی زمانی که در اطراف یک فضای نویسنده غیر متحرک طراحی می شوند، غوطه ورتر هستند. اگر انتظار دارید که کاربران در فضای مجازی بزرگتر از آنچه که مرز اجازه میدهد حرکت کنند، از تکنیکهای حرکتی استفاده کنید که حرکتی مانند دوربری را تقویت میکند.
با انتقال از راه دور ، کاربر اشاره میکند و یک کنترلر را انتخاب میکند یا از آن برای پرش فوری به مکان جدید استفاده میکند. این روش برای پوشش سریع فواصل بزرگ بسیار عالی است و اغلب روش حرکتی است که کمترین میزان بیماری حرکت را ایجاد می کند. پوشاندن مختصر صفحه در طول انتقال می تواند ناراحتی را بیشتر به حداقل برساند.
سایر روش های جابجایی
اگر از روشهای جابهجایی دیگر استفاده میکنید، پیشنهاد دوربری را نیز به عنوان جایگزین در نظر بگیرید.
- راه رفتن در محل با چرخاندن بازوها : راه رفتن را با چرخاندن بازوها یا بالا و پایین بردن کنترلر شبیه سازی کنید. برخی از کاربران ممکن است این را خسته کننده یا کمتر بصری بدانند.
- حرکت مداوم : از جوی استیک یا انگشت شست کنترلر برای حرکت خود مجازی خود در محیط استفاده کنید. در بیشتر شرایط، باید از این روش اجتناب کنید زیرا این یک علت شایع بیماری حرکت است.
اگر تصمیم دارید از حرکت در تجربه خود استفاده کنید، گزینه های متعددی را برای تطبیق با ترجیحات فردی و بهبود تجربه کاربر ارائه دهید.
بیماری حرکت زمانی رخ می دهد که بین حرکت فیزیکی کاربر و تجربه مجازی او قطع شود. برای بهینه سازی راحتی کاربر در حین حرکت:
- اطمینان حاصل کنید که افق مجازی ثابت و تراز باقی می ماند.
- اگر حرکت مداوم مورد نیاز است، از هر گونه شتاب یا کاهش تدریجی اجتناب کنید. سرعت را ثابت نگه دارید.
- دید تونلی میتواند با محدود کردن میدان دید کاربر در حین حرکت، با یک اثر رنگبندی که حرکت درک شده در نواحی محیطی را محدود میکند، به کاهش بیماری حرکت کمک کند.
- برای چرخش، دیدگاه کاربر را به زوایای خاصی بچسبانید. ممکن است باعث سردرگمی شود، اما بیماری حرکت را کاهش می دهد.
- کاربران دارای سطوح مختلف تحمل هستند. به آنها اجازه دهید تنظیمات راحتی را به دلخواه خود تنظیم کنند، مانند انتخاب روش حرکت، روشن یا خاموش کردن دید تونل، یا تنظیم سرعت حرکتشان.
صوتی فضایی
صدا ابزاری قدرتمند برای ایجاد مناظر صوتی فراگیر است که کاربران را به دنیایی دیگر منتقل می کند و احساسات خاصی را برمی انگیزد. صدای فضایی به طور دقیق صداها را در محیط مجازی قرار می دهد.
- Ambisonics مانند یک skybox برای صدا است که صدایی فراگیر را برای کاربران شما فراهم می کند. از ambisonics برای صداهای محیطی پسزمینه یا سناریوهای دیگری که میخواهید یک میدان صوتی کامل کروی را که شنونده را احاطه کرده است، تکرار کنید.
- نشانه های صوتی فضایی می تواند توجه کاربر را راهنمایی کند.
- جلوه های صوتی را برای افزایش غوطه وری فضایی کنید.
- فضایی کردن صدای صوتی در محل بلندگو به کاربران حس حضور می دهد حتی اگر مستقیماً رو به بلندگو نباشند.
- به کاربران اجازه دهید صدای خود را تنظیم کنند. به عنوان مثال، ممکن است بخواهند صدای موسیقی پسزمینه، جلوههای صوتی یا صدا را غیرفعال یا تغییر دهند.
- اضافه کردن زیرنویس برای افرادی که ناشنوا یا کم شنوا هستند را در نظر بگیرید.
ملاحظات بیشتر برای راحتی
برای اولویتبندی دسترسی، گزینههای قابل تنظیمی را ارائه دهید که تواناییها و ترجیحات مختلف را برآورده میکنند. این تضمین می کند که طیف گسترده ای از کاربران می توانند از تجربه همه جانبه لذت ببرند.
- برنامه خود را با سرعت 72 فریم در ثانیه اجرا کنید : این به کاهش لرزش بینایی و جلوگیری از حالت تهوع کمک می کند.
- به کاربران کنترل بدهید : برای اینکه برنامه خود را برای کاربرانی که سطوح میل متفاوتی با XR دارند، کاربر پسند کنید، به کاربران اجازه دهید تجربه خود را با تنظیمات قابل تنظیم تنظیم کنند. این امکان را در نظر بگیرید که به کاربران اجازه دهید دکمهها و حرکات کنترلکننده را مطابق با نیازها یا ترجیحات فیزیکی خود نقشهبرداری کنند. برای مثال، کاربران با تحرک دست محدود ممکن است از طرحبندی دکمههای مختلف یا کنترلهای ورودی سادهتر و بزرگتر بهرهمند شوند.