هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

طراحی و اجرای ردیابی دستی در Myst

تاریخ:

با استفاده از API ارتقا یافته ردیابی دستی Presence Platform، ما ردیابی دست را با آخرین به روز رسانی خود معرفی کردیم میست در پلتفرم متا کوئست، با عنوان «دست‌ها و بیشتر». ما فوق العاده هیجان زده هستیم که بالاخره به مردم اجازه بازی می دهیم میست در کوئست بدون کنترلرهای فیزیکی! در این پست، در مورد تکامل و تکرار پیاده سازی ردیابی دست در بحث خواهیم کرد میست- و به ویژه، افزودن پشتیبانی بیشتر برای آن در Unreal Engine 4.27.2.

مقاله مهمان توسط هانا گامیل

Hannah Gamiel مدیر توسعه در فیروزه ایاستودیو پشت نسخه اصلیMyst' بازی‌ها - و به توسعه جدید کمک کردند Myst (2020)' که شامل پشتیبانی VR است. او که در اصل از یک پس‌زمینه‌ی صرفاً فنی می‌آید، اکنون به رهبری تولید در تمام عناوین کمک می‌کند و تلاش‌های تجاری و فنی را در Cyan مدیریت می‌کند. او روی عناوینی مانند "Myst" (2020)، "شاهد"، "Braid، Anniversary Edition"، "Obduction"، "Firmament" (به زودی!) و غیره کار کرده است.

فاز طراحی و ملاحظات

طراحی ناوبری برای ردیابی دست

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

هنگامی که در حالت تله پورت هستید، می توانید به جایی که می خواهید بروید اشاره کنید و حلقه تله پورت در مقصد شما ظاهر می شود. هنگامی که شما "نقطه گشایی" می کنید (با دراز کردن بقیه انگشتان، یا به سادگی کشیدن انگشت اشاره گر خود به کف دست)، تله پورت اجرا می شود.

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

هنگام بازی تست حرکت با اشاره، متوجه شدیم که ردیابی دست گاهی اوقات می تواند با انگشت اشاره گر و انگشت وسط شما غیرقابل اعتماد باشد، زمانی که با بقیه دست شما مسدود شود. سیستم مطمئن نیست که آیا آن انگشتان به طور کامل در دست شما هستند یا کاملاً "محصور" هستند. ما مقداری عامل "فاج" را به کد اضافه کردیم تا شروع/اجرای حرکت پایدارتر در این قسمت را در نظر بگیریم - که کمی بعد در مورد تغییرات ایجاد شده در ردیابی دستی خارج از جعبه بحث خواهیم کرد. پشتیبانی در Unreal Engine

عطف

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

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

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

پس چگونه این را حل کردیم؟ ما در نهایت به جای اشاره با اشاره اشاره گر، ژست «شست به بالا» را تعیین کردیم.

تصور کنید که یک شست بالا می‌دهید. حالا مچ دست خود را به راست و چپ بچرخانید. توجه داشته باشید که با وجود اینکه دامنه حرکتی زیادی ندارید، در این حرکت با انگشت شست خود به سمت چپ و راست اشاره می‌کنید.

این همان چیزی است که ما برای تبدیل در حالت ردیابی دستی به آن رضایت دادیم. اگر چه به نظر نمی رسد که با انگشت شست اشاره کنید بصری ترین راه برای چرخاندن باشد انجام داد در نهایت راحت ترین و ثابت ترین راه برای انجام این کار است.

با چرخش سریع، چرخش مچ دست به سمت چپ یا راست از حالت شست بالا باعث می شود که یک چرخش سریع شروع شود. سپس باید دست خود را به موقعیت «مرکز» (مستقیم به بالا) برگردانید تا ضربه محکم و ناگهانی را تنظیم مجدد کنید، و همچنین منتظر بمانید تا خنک شدن بسیار کوتاهی رخ دهد تا دوباره چرخش سریع شروع شود.

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

مدیریت تضاد بین حرکت و موقعیت های تعامل شی

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

روشی که ما از وقوع حرکت در زمانی که بازیکن در حال تعامل با چیزی است جلوگیری می کنیم، این است که وقتی دستی که ژست «حرکت» را انجام می دهد در محدوده معینی از یک شی قابل تعامل باشد، از پخش کد حرکتی جلوگیری می کنیم. این محدوده چندین بار بهینه شده است تا بر اساس تست بازی به یک "نقطه شیرین" خوب برسد.

ما متوجه شدیم که این نقطه شیرین حدود 25 سانتی متر از محل فضای جهانی استخوان نوک انگشت اشاره فاصله دارد. میست پر از اشیاء تعاملی با اندازه های مختلف (از دکمه های کوچک گرفته تا اهرم های بسیار بزرگ) است که هم در فضاهای باز و هم در راهروهای باریک چیده شده اند، بنابراین برای حل این تعداد کمی آزمایش لازم بود. ما در ابتدا 60 سانتی‌متر (حدود دو فوت) را امتحان کردیم، اما وقتی بازیکنان هنوز نیاز داشتند به یک جسم نزدیک‌تر شوند، این حرکت از رخ دادن حرکت جلوگیری کرد. به همین ترتیب، هر چیزی کمتر از 25 سانتی‌متر باعث می‌شود زمانی که بازیکنان سعی می‌کردند یک شی را بگیرند یا لمس کنند، حرکت ناخواسته بازیکن ایجاد شود.

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

گفته می شود، 25 سانتی متر چیزی است که به طور خاص برای آن کار می کند میست. بازی‌های دیگر اگر می‌خواهند چیزی مشابه را با در نظر گرفتن معیارهای خودشان پیاده‌سازی کنند، ممکن است نیاز به تنظیم این عدد داشته باشند.

طراحی تعاملات شی برای ردیابی دست

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

فعل و انفعالات، چیزی را که قبلاً برای آن تنظیم کرده بودیم، بازمی گرداند میست با کنترلرهای لمسی در آنجا، فشار دادن دکمه گرفتن به طور خودکار نمایش مش درون بازی دست شما را در حالت «گرفته» ترکیب می‌کند، یا دستتان را در مشت (در صورت خالی بودن) قرار می‌دهد یا یک شی را می‌گیرد. با ردیابی دست، کدی را اضافه کرده‌ایم که می‌تواند حدس بزند که چه زمانی انگشتان خود را به اندازه کافی حلقه کرده‌اید تا چیزی را بگیرید و همان منطقی را که قبلا ذکر شد آغاز کنید.

برای مثال، وقتی از ردیابی دست استفاده می‌کنید و دستتان روی چیزی که قابل گرفتن است شناور می‌شود، رنگ دستتان نارنجی می‌شود (این دقیقاً همان چیزی است که وقتی از ردیابی دست استفاده نمی‌کنید اتفاق می‌افتد. میست VR نیز). هنگامی که یک شی قابل تعامل را با شروع به حلقه کردن انگشتان خود به صورت مشت می گیرید، یک کره نارنجی رنگ جایگزین مش دست شما می شود و نشان دهنده محل اتصال دست به جسم است.

دلیل اینکه ما به جای ساختن مش های قابل تنظیم سفارشی برای دستان شما از این روش استفاده کردیم - یا اجازه می دهیم دست ها / انگشتان شما به صورت فیزیکی با بخش هایی از این اشیاء تعامل داشته باشند - به این دلیل است که ما می خواستیم این تعاملات با آنچه ما در ارائه می دهیم برابر باشد. در حال حاضر سمت کنترلر لمسی

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

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

تعاملات منو/UI

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

انتقال همه اینها به بازیکن

از آنجا که ردیابی دست به اندازه کنترلرهای لمسی ورودی در Quest رایج نیست و ممکن است افرادی در حال بازی باشند. میست برای اولین بار (یا حتی اولین بازی VR آنها را انجام می‌دادیم!)، ما سعی کردیم به نحوه انتقال همه این اطلاعات در مورد ردیابی دست به بازیکن توجه کنیم. ما مطمئن شدیم که نسخه دیگری از "نمودار کنترل کننده" خود را که به طور خاص برای توصیف تعاملات ردیابی دستی (در صورت فعال بودن در میست)، و اعلان‌های تخصصی پخش‌کننده را نشان می‌دهیم که دقیقاً به آنها می‌گوید چگونه با دستان خود حرکت کنند.

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

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

ادامه در صفحه 2: ​​تغییرات موتور ساخته شده در غیر واقعی »

نقطه_img

جدیدترین اطلاعات

نقطه_img