صنایع واقعیت افزوده (AR) و واقعیت مجازی (VR) هنوز در مراحل اولیه خود هستند. اگرچه، این همان علتی است که بهترین زمان برای یادگیری چگونگی ایجاد محتوا برای این تکنولوژی ها است. آن ها نیازمند جهش به مرحله بعدی اقتباس و پذیرش هستند.
خوشبختانه، از دیدگاه برنامه نویسان، مهارت های مورد نیاز برای ورود به عرصه AR و VR مشابه هستند و موانع ورود هنوز نسبتاً کم است. در این مقاله به مروری کلی از چگونگی شروع می پردازیم.
مهم ترین مهارت های مورد نیاز
مهم نیست که شما فرد تازه کار در برنامه نویسی هستید یا یک کهنه کار با سال ها تجربه در این زمینه هستید، مهارت های عمده برای تبدیل به یک برنامه نویس AR/VR شدن در حوزه 3D است. در حقیقت، این حوزه با ساخت بازی های 3D متفاوت نیست.
به این خاطر که AR و VR درباره محیط های همه جانبه است که می توان با آن در سه بعد تعامل داشت، مانند دنیای واقعی.
بنابراین بسته به اینکه تا چه حد شما می خواهید پیش بروید، ممکن است نیاز باشد درباره مدلسازی یا اسکن سه بعدی، موتورهای بازی های سه بعدی، تصاویر و فیلم های 360 درجه، و مقداری ریاضی و هندسه، زبان های برنامه نویسی مانند C#/C++/C و کیت های ساخت نرم افزار (SDKs) و چگونگی طراحی تجربه برای کاربران در سه بعد، یاد بگیرید.
بنابراین در ادامه نگاهی اجمالی به موضوعاتی می اندازیم که پرداختن به آن ها برای یک برنامه نویس AR/VR شدن لازم است. با VR شروع می کنیم.
سخت افزار
واقعیت افزوده/مجازی (و به طور کلی ساخت سه بعدی) نیازمند سخت افزار high-end است. اگرچه، با کاهش مداوم قیمت سخت افزار، مانند سال های گذشته مشکل ساز نخواهد بود.
اگر نگاهی به الزامات دو پلت فرم معروف VR (Oculus Rift & HTC Vive) VR بیندازیم، خواهیم دید که اساساً مشابه هستند. این موارد مشخصات توصیه شده سخت افزاری است:
Processor – Graphics – Memory – Ports – Operating System
ابزارهای واقعیت مجازی
در این حوزه، گزینه های زیادی داریم. می توانیم معروف ترین این موارد را براساس میزان آزادی (DOF) دسته بندی کنیم که اشاره به راه هایی دارد که در آن یک object می تواند حرکت کند. ما دو گزینه داریم: سه و شش DOF.
سه DOF بدین معناست که شما می توانید با استفاده از یک نمایشگری که به سر نصب شده (HMD)، با دنیای مجازی سه بعدی با حرکت سر تعامل داشته باشید (یک دستگاه مختصات X، Y و Z). اگرچه، شما نمی توانید به جلو یا عقب حرکت کنید.
با شش DOF، شما می توانید به جلو/عقب، بالا/پایین، و چپ و راست حرکت کنید، بنابراین شما در این حالت سه نوع حرکت بیشتر و در نتیجه اسم بیشتر، دارید.
ابزارهای زیر سه DOF را پشتیبانی می کنند:
Google Cardboard – Google Daydream – Samsung Gear VR
حال آنکه ابزارهای زیر می توانند شش DOF را پشتیبانی کنند:
HTC Vive – Oculus Rift
البته هر ابزار SDK ها، زبان های برنامه نویسی متفاوتی استفاده می کند و محدودیت های مختلفی دارد. اما، در برخی موارد با هم مشترک هستند:
– اصول طراحی یک تجربه واقعیت مجازی مشابه هستند.
– بیشتر آن ها برای تعامل با دنیای مجازی با کنترل کننده های حرکت سازگار هستند..
– ابزارهای سه DOF از گوشی های هوشمند به عنوان نمایشگرهای نصب شده بر روی سر استفاده می کنند.
– ابزارهای شش DOF از headset های دسکتاپ استفاده می کنند.
زبان های برنامه نویسی و موتورهای بازی سه بعدی
در تحقیقی اعلام شده زبان های برنامه نویسی #C و C++/C بیشترین استفاده را برای ساخت AR/VR داشته اند. این امر اتفاقی نیست. معروفترین موتور های بازی که شما باید آن ها را یاد بگیرید از آن استفاده می کنند:
– Unity که از #C به عنوان زبان برنامه نویسی اول استفاده می کند.
– Unreal Engine که از ++C و زبان های بر مبنای node به اسم Blueprints Visual Scripting استفاده می کند.
خبر خوب این است که تمام دستگاه های VR برای هر دو موتور SDK دارند. بنابراین، شما می توانید تنها از یکی از آن ها برای ساخت اپلیکیشن های AR/VR استفاده کنید و بیشتر از یک دستگاه را هدف قرار دهید.
خبر بد این است که منحنی یادگیری برای هر دو نسبتاً شیب دار است. هنگام شک و تردید، بیشتر افراد به خاطر یادگیری ساده تر و در دسترس بودن منابع بیشتر، Unity را توصیه می کنند. اگرچه، Unreal می تواند گرافیک بهتر و توان بیشتری بدهد.
بعلاوه لازم به ذکر است که گوگل SDK ها را برای Android (در Java) و iOS (در Objective-C) فراهم کرده تا برای دستگاه های Daydream و Cardboard ساخته شود.
Asset ها را بسازید یا پیدا کنید
اولین چیزی که برای ساخت AR/VR نیاز دارید asset های هنری است، مخصوصاً مدل های 3D. در اینجا شما دو گزینه دارید: مدل های خود را بسازید یا از ساخت دیگران استفاده کنید.
ساخت مدل های سه بعدی توسط خودتان سخت ترین گزینه است. هرچند، در بلندمدت بهترین و به صرفه ترین گزینه است. اگر این راه را انتخاب کنید، باید برنامه هایی را یاد بگیرید. مانند:
Blender – Autodesk Maya – Austodesk 3ds Max
یک تکنولوژی که می تواند به شما در ساخت مدل خودتان کمک کند 3D scanning است. اساساً، چیزهایی که توسط یک 3D scanner در دنیای واقعی ضبط می شوند تبدیل به یک مدل 3D می شوند. اگرچه ممکن است هنوز کامل نباشند، ولی می توانند در شروع کار به شما کمک کنند. همچنین، گزینه های زیاد دیگری با قیمت های متفاوت وجود دارند. برخی از آن ها عبارتند از:
DAVID SLS2 – Da Vinci 1.0 AiO – Structure Sense (plus an iPad
در غیر اینصورت، ممکن است بخواهید از مدل های 3D از دیگر مکان ها استفاده کنید. مانند:
TurboSquid – Free3D – CGTrader – Sketchfab
زمانی که خودتان می خواهید شروع کنید و توانایی های لازم را ندارید، این گزینه خوب است. هرچند دیر یا زود، برای رسیدن به آنچه می خواهید باید اصلاحات را انجام دهید. بنابراین، پیشنهاد این است که زمانی که یاد می گیرید مدل خود را بسازید، دو گزینه را با هم ترکیب کنید.
از ساخت وب تا واقعیت مجازی
ممکن است شما سابقه ساخت وب داشته باشید و بخواهید بدانید که دانش در JavaScript می تواند به شما کمک کند.
خوشبختانه، WebVR یک open standard با JavaScript API است که امکان تجربه VR را در browser شما فراهم می کند.
این امکان با بیشتر دستگاه های VR کار می کند. اما از آنجاییکه هر browser سازگاری این کار را برای شما انجام خواهد داد (حتی در تلفن Android/iOS) شما به هیچ کدام از plugin ها نیاز نخواهید داشت.
اگرچه دانش اصطلاحات 3D و مدلسازی هنوز به کار گرفته می شوند، اگر شما JavaScript بلد باشید، می تواند انتخاب خوبی برای شروع با WebVR به جای VR SDK، Unity یا Unreal باشد.
در این حوزه، دو framework ارزش ذکر کردن دارد:
A-frame – React VR