اولین نکته در مورد قسمت های سینمایی این دمو است که توسط اعضای تیم اصلی فیلم The Matrix از جمله لانا واچوفسکی، جیمز مک تیگ و جان گاتا با همکاری تیم هایی در «Epic Games» و استودیو های دیگر ساخته شده. این دمو عناصر سینمایی، شخصیتهایی همانند «Keanu Reeves» و «Carrie Anne-Moss» را به عنوان انسانهای دیجیتالی، فوقالعاده واقع گرایانه خلق کرده است. سپس، دمو به یک تجربه تعاملی از تعقیب و گریز ماشین و اکشن تیراندازی سوم شخص سریع تبدیل می شود. این سکانس ها کاملا پویا هستند و دنیای بازی بدون اسکریپت شدن وقایع به شما واکنش نشان می دهد. این به موتور فیزیک Chaos مربوط میشود، موتور فیزیکی با کارایی بالا در Unreal Engine که می تواند سطوح تخریب با کیفیت سینمایی را به صورت پویا ارائه دهد و فیزیک پارچه، مو، وسایل نقلیه و موارد دیگر را شبیه سازی کند.
موتور فیزیک Chaos Physics
Unreal Engine از اواسط تولید موتور گرافیکی نسخه چهارم خود از موتور فیزیک داخلی پیشرفته ای به نام Chaos Physics بهره میبَرد که به مرور زمان در به روز رسانی هایی، ارتقا یافته و محاسبات فیزیک این موتور را به دوش میکشد. Chaos Physics یک راه حل شبیه سازی فیزیک است که در Unreal Engine 5 پیشرفت های عظیمی به خود دیده است که از ابتدا برای رفع نیازهای بازی های نسل بعدی ساخته شده است. این سیستم شامل ویژگی های اصلی زیر است:
- Rigid Body Dynamics : جسم صُلب، شاخهای از علم مکانیک ( مکانیک خود یکی از زیر مجموعه های فیزیک است) است که به مطالعه/محاسبه نحوه حرکت و تداخل سیستمهای به هم پیوسته تحت رفتار نیرو های خارجی میپردازد. حال این توصیف چه معنایی با خود در بر دارد ؟ به این معنی که اجسام به کار گرفته شده تحت تاثیر نیرو های به کار رفته تغییر شکل نمی دهند و به همین سبب تداخلی در فرو رفتن اشیاء رخ نمی دهد و هر جسم، شیء و اصولا هر موضوعی مربوط به بخش مکانیک/فیزیک باشد می تواند به صورت مستقل عمل کند و اجسام در یکدیکر فرو نروند. اگر توجه داشته باشید این یکی از مشکلات عَدیده در بسیاری از بازی های ویدیویی است که اجسام در یکدیگر فرو می روند و به لطف Rigid Body Dynamics در موتور گرافیکی Unreal Engine 5 این مشکل تا حد بسیار زیادی برطرف شده است.
- Rigid Body Animation Nodes and Cloth Physics : ادغام سازی و هماهنگی فیزیک پارچه و انیمیشن ها را در بر می گیرد. در توضیحاتی مربوط به «Rigid Body Dynamics» که برای شما شرح دادم، دقیقا همان کار را زمانی انجام می دهد که فیزیک پارچه و اجسام/اشیاء در کنار هم قرار می گیرند و مانع فرو رفتگی آن ها در یکدیگر می شود. این مشکلی اساسی در بسیاری از بازی های ویدیویی است که توسعه دهندگان با آن دست و پنجه نرم می کنند و در موتور گرافیکی Unreal Engine 5 به لطف Rigid Body همان طور که برای شما توضیح دادم این مشکل تا حد بسیاری برطرف شده و مانع تداخل و فرو رفتگی آن ها در یکدیگر می شود. در ویدیویی که برای شما گذاشته شده، می توانید مشاهده کنید که اجسام/اشیاء به صورت مستقل عمل می کنند و تداخلی با هم ندارند و به صورت پویا و جداگانه محاسبه می شوند. این دستاوردی بسیار بزرگ برای توسعه دهندگان موتور گرافیکی Unreal Engine 5 است و این پیشرفت عظیم به طرز چشمگیری باعث جلوگیری باگ/گلیچ در بازی های ویدیویی می شود.
- Destruction : مربوط به تخریپ پذیری محیط است. چه تخریب پذیری های از پیش رندر شده و چه تخریب پذیری هایی که به صورت پویا پردازش می شوند.
- Ragdoll Physics : نوعی از انیمیشن های حرکتی است که توسط موتورهای فیزیک استفاده میشود و اغلب به عنوان جایگزینی برای انیمیشن های مرگ در بازی های ویدئویی و فیلم های انیمیشن استفاده می شود. بازی های ویدیویی در اوایل حیات صنعت گیم، از انیمیشن هایی که به صورت دستی برای سکانس های مرگ شخصیت ها تولید می شد استفاده می کردند. این روش مزیت استفاده کمتر از CPU را با خود به همراه داشت، زیرا داده های مورد نیاز برای متحرک سازی یک شخصیت “در حال مرگ” از تعداد مجموعه ای از فریم های از پیش ترسیم شده انتخاب میشد. با افزایش قدرت رایانه ها، انجام شبیه سازی های فیزیکی محدود به صورت Real time امکان پذیر شد. بنابر این، ragdoll مجموعه ای از بدنههای سفت و سخت متعدد است (که هر کدام معمولا به یک استخوان در سیستم انیمیشن اسکلتی موتور گرافیکی متصل میشوند) که توسط سیستمی از محاسبات فیزیک به هم گره خورده اند که نحوه حرکت استخوانها را نسبت به یکدیگر محدود می کند. منظور دقیقا این است هنگامی که یک شخص می میرد بدن آنها شروع به فرو ریختن می کند و این محدودیت ها را در حرکت هر یک از مفاصل رعایت می کند، و همین امر باعث می شود شخصیتی که می میرد، هنگام افتادن بر روی زمین استخوان ها و اسکلت بندی بدن او با توجه به مفاصلی که در بدن قرار دارد حرکات طبیعی و منطقی از خود به جا می گذارد.
- Vehicles : وظیفه شبیه سازی وسائل نقلیه را بر عهده دارد.
- Physics Fields : محاسبات و شبیه سازی سیالات، چگالی فیزیک، گرانش و از این قبیل موضوعات است.
- Fluid Simulation : وظیفه شبیه سازی مو را بر عهده دارد.
شما می توانید بخشی از قدرت موتور فیزیک Chaos Physics را در بخش تخریب پذیری بازی به صورت پویا در ویدیوی پایین مشاهده کنید. در ویدیو هایی که برای شما گذاشته می شود طراحان به اهمیت بخش فیزیک در طراحی مراحل بسیار تاکید کرده اند.
به طور مثال در ویدیو رباتی در داخل ساختمان ها پناه میگیرد و شما برای بیرون آوردنش، اقدام به تخریب کردن ساختمان میکنید و رباتی که مخفی شده، از مخفی گاه خود بیرون آمده و به راه خود ادامه می دهد. این دقیقا استفاده درست و به جا از فیزیک در طراحی مراحل در بازی های ویدیویی است و می تواند باعث تغییرات و تحولات ساختاری در طراحی مراحل بازی های ویدیویی در نسل نهم شود.
Matrix Awakens: An Unreal Engine 5 Experience برای ساخت و توسعه از مزیت های کامل کنسول پلی استیشن 5 و به صورت کلی معماری پیشرفته کنسول های نسل نهمی استفاده کرده و بر اساس فناوری های آن ها ساخته شده است. از جمله درایو فوق سریع SSD و CPU – GPU و همین طور در کنار Ray Tracing در کنسول های نسل نهمی. برای انجام این کار و خلق چنین چیزی تیم توسعه دهنده یک شهر open world به وسعت 16 کیلومتر مربع ساخته، که از هفت هزار ساختمان و هزاران قطعه «modular pieces» تشکیل شده است که هر یک از آن ها از میلیونها مثلث ( triangles ) ساخته شده اند.
Modular design چیست ؟
در طراحی معماری و اصولا طراحی هندسی هر ساختمان و مجموعهای، شما با ماژول ها سر و کار دارید که به صورت تکه تکه باید هر کدام از آن ها را طراحی کنید. اصولا طراحی مدولار یک اصل طراحی است که یک سیستم را به بخش های کوچک تری به نام «ماژول ها» تقسیم می کند که می توانند به طور مستقل ایجاد، اصلاح، جایگزین یا با ماژول های دیگر یا بین سیستم های مختلف مبادله شوند.
توضیح: با توجه به قدرت فوق العاده و معماری مدرن سخت افزار کنسول های نسل نهمی و همین طور طراحی موتور گرافیکی Unreal Engine 5 که معماری آن بر اساس سخت افزار های مدرن امروز بنا شده، دست سازندگان در طراحی مراحل ( Level Design ) باز است و می توانند تغییرات و تحولاتی اساسی در پیکره مراحل بازی های ویدیویی از خود نشان دهند. این عکس را مشاهده کنید. آسمان خراش های تو در تویی که در کنار هم قرار گرفته اند. شاید در ظاهر اصلا چنین چیزی برای شما مهم نباشد ! اما طراحی چنین چیزی در کنسول های نسل هشتمی به شدت سخت و طاقت فرسا و می توان گفت غیر ممکن بود. هر چقدر چند ضلعی ها در محیط بیشتر باشند، منابع بیشتری از سخت افزار درگیر می شوند. پس در نسل هشتم و قبل آن شاید طراح دوست داشت که آسمان خراش ها و محیط پویاتر و متراکم تری را خلق کند، ولی سخت افزار اجازه چنین کاری به آن ها نمیداد. اما چنین چیزی همان طور که توضیح دادم با توجه به قدرت سخت افزار و نرم افزار های پیشرفته، امروز تفاوت هایی کرده و در نسل نهم طراحی مراحل می تواند دستخوش تغییر و تحولات اساسی شود.
در ویدیوی پایین به صورت واضح مشاهده می کنید طراحی مراحل به چه صورت در نسل نهم دچار دگرگونی های اساسی خواهد شد. محیط نسبت به دنیای واقعی شباهت بی حد و مرزی دارد. این شباهت ظاهری در این ویدیو، بیشتر منظور تراکم ساختمان ها، آسمان خراش ها، خیابان ها و موارد دیگر است. همین طور 7000 ساختمان در شهر وجود دارد که از صدها عدد «Asset» ساخته شدهاند. هر Asset نیز میلیون ها چند ضلعی را در خود جای داده است که در واقع فقط ساختمان ها به تنهایی حاوی چند میلیارد چند ضلعی هستند. برای ساخت شهر تقریبا 10میلیون Asset منحصر به فرد و تکراری استفاده شده است. بار گذاری کُندی را در بخش بافت ها مشاهده نمی کنیم و به معنای واقعی کلمه این یک دستاورد عظیم است. به این صورت دست سازندگان برای طراحی مراحل نو و مدرن، در نسل نهم به شدت باز است و خلاقیت دیگر قربانی محدود بودن سخت افزار ها نمی شود. حقیقتا این سطح از جزئیات، چند ضلعی های بی مانند، تراکم بی نطیر ساختمان ها، نور پردازی خیره کننده، رنگ بندی واقع گرایانه حیرت انگیز و باور نکردنی است.
فناوری پیشرفته ای به نام Nanite
Mesh اصولا به چه چیزی گفته می شود ؟
اگر می خواهید دید بهتری نسبت به بازیسازی و مواردی که هرگز به صورت ظاهری مشاهده نمی کنید اما در عمل منابع سخت افزاری زیادی را مصرف میکنند داشته باشید ویدیوی زیر را مشاهده کنید. چیزی که مشاهده می کنید همان مثلث/سه گوش ( triangles ) است و میتوانید تعداد مثلث هایی ( triangles ) که در یک صحنه رندر می شوند را ببینید. با نزدیک شدن به این مِشها، منبع اصلی به صورت واضح قابل مشاهده است. اگر این مثلث ها را با آناتومی بدن انسان مقایسه کنیم، کارکردی مشابه با سلولهای بدن انسان دارند. و مجموع قرار گیری تمامی این مثلث ها شاکِله کلی یک ساختمان و اصولا هر چیزی در محیط را در بر می گیرد. همان طور که در ادامه ویدیو مشاهده می کنید دوربین وقتی به جلو و عقب میرود و رفته رفته از صحنه دور تر می شود تعداد این مثلث ها بیشتر و بیشتر می شود و به همین سو هر چه تعداد آن ها در یک صفحه نمایش بیشتر شود، در هنگام پردازش بر روی سخت افزار فشار بیشتری وارد خواهد کرد.
این باعث می شود بخش بزرگی از توان سخت افزار بیهوده هدر نرود و پتانسیل بسیار زیادی از سخت افزار برای طراحی بازی در بخش های مختلف دیگر توسعه بازی مورد استفاده قرار گیرد. Nanite همیشه سعی می کند تفاوت را با منبع مطابقت دهد و در کم تر از یک پیکسل نگه دارد. بنابر این حد اکثر سطح جزئیات مورد نیاز در حال رندر است و خروجی اصلی جزئیات دچار کاهش افت کیفی نخواهد شد و به همین سبب منابع سخت افزاری و بار پردازشی آن بیهوده هدر نمی رود.
منابع روشنایی این جهان خلق شده تنها توسط نور خورشید، آسمان و سطوح ساطع کننده نور تامین میشود. برای 10 ها هزار چراغ موجود در خیابان ها و چراغ ماشین ها هیچ منبع نوری درنظر گرفته نشده است. در شب تقریبا تنها منبع روشنایی شهر نور هایی است که از پنجرهی ساختمان ها به بیرون ساطع می شوند.در شهر 35000 عابر پیاده شبیه سازی شده وجود دارند که با استفاده از فناوری «MetaHuman» خلق شده اند. همین طور 45073 ماشین پارک شده وجود دارد که 38146 تا از آن ها قابل راندن و تخریب هستند.
در ادامه می توانید فهرست دیگر جزئیاتی را که اپیک از این دموی فنی منتشر کرده است، مشاهده کنید:
- عرض شهر ۴.۱۳۸ کیلومتر و طول آن ۴.۹۶۸ کیلومتر است؛ یعنی کمی بزرگ تر از مرکز شهر لس آنجلس.
- مساحت شهر ۱۵.۷۹ کیلومتر مربع است.
- محیط شهر ۱۴.۵۱۹ کیلومتر است.
- در شهر ۲۶۰ کیلومتر خیابان و راه ماشین رو وجود دارد.
- در شهر ۵۱۲ کیلومتر پیاده رو وجود دارد.
- در شهر ۱۲۴۸ چهار راه وجود دارد.
- تنها در کناره خیابان ها ۲۷۸۴۸ چراغ برق وجود دارد.
- در شهر ۱۲۴۲۲ دریچه فاضلاب وجود دارد.
Unreal Engine و توانایی تطبیق پذیری بر روی پلتفرم های گوناگون
اگر بازی دارید که قرار است که روی پلی استیشن 5 و ایکس باکس سری ایکس منتشر شود و همین طور در برخی پلتفرم هایی که قادر از پشتیبانی فناوری Nanite نیستند، مانند موبایل که می خواهید منتشر کنید، پس به یک نسخه جایگزین نیاز دارید. بازگشت پیش فرض برای چنین کاری ویژگی به نام «Proxy Mesh» خواهد بود و به این ترتیب می توانید بازی ها،محیط ها و دارایی های ( assets ) خود را یک بار بسازید و در چند پلتفرم توزیع کنید. بنابر این وقتی بازی را برای پلی استیشن – ایکس باکس و رایانه های سطح بالا ( High End pc ) می سازید، می توانید آن ها را طوری تنظیم کنید که از Nanite استفاده کنند و ویژگی Nanite Mesh در این پلتفرم ها استفاده خواهد شد. اما وقتی بازی را برای موبایل توسعه می دهید، از Proxy Mesh استفاده می کنید که به طور خودکار بر روی LOD 0 تنظیم می شود. باید گفته شود عدد 0 به این معنی نیست که مقدار Mesh به صفر کاهش پیدا می کند، بلکه به این معنی هست که تعداد چند ضلعی به صورت پیش فرض بر روی 2000 تنظیم می شود و به صورت دلخواه می توانید در هر بخش از Mesh در قسمت های مختلف محیط عددی را که دوست دارید انتخاب کنید و تنظیمات را انجام دهید. خروجی چنین چیزی دقیقا همان واژه بهینه سازی است که در صنعت بازی های ویدئویی درباره آن صحبت می شود. البته این فقط بخشی بسیار کوچک از توضیحات داده شده در این رابطه است.
می توان گفت این فقط قسمتی از لایه بندی مربوط به ساخت فونداسیون یک شیء در بازی است و لایه های دیگری همانند چند ضلعی ها، خوشه ها ( clusters ) و موار دیگر هم وجود دارد و هر کدام از این موارد به تنهایی منابع سخت افزار را مصرف می کند. به لطف فناوریهای جدیدی که در موتور گرافیکی UE5 تعبیه گذاری شده، به جای ارائه تصاویری که از قبل رندر گیری شده اند، بهطور پویا همه چیز را به صورت real time پردازش می کنند.
موتور نور پردازی/روشنایی Lumen
بیشتر بازیها نورپردازی سراسری یا Global Illuminitaion را به صورت تقریبی و با پیش محاسبهی آن از طریق سیستمی به نام «Light Maps» نمایش می دهند. نور ها در این حالت به صورت آفلاین تولید شده و در انتها توسط بافت ها درون صحنه ها قرار داده میشوند. با استفاده از این سیستم، صحنه دارای Global Illuminitaion است اما نور ها نمی توانند حرکت کنند و نور پردازی و اشیایی که به وسیله آن تحت تاثیر قرار گرفته اند، کاملا ثابت ( Static ) هستند. نور پردازی در این جا کاملا به سطوح اشیاء موجود در محیط چسبیده شده است.
توضیحاتی پراکنده درباره Lumen :
- هدف اصلی Global Illumination and Reflections Lumen، پشتیبانی از محیط های جهان باز ( open worlds ) و به صورت کلی محیط های پهناور و وسیع است که با سرعت 60 فریم در ثانیه (fps) روی کنسول های نسل نهمی اجرا می شوند.
- تمرکز ثانویه Lumen بر روی روشنایی محیط داخلی با سرعت 30 فریم بر ثانیه در کنسول های نسل بعدی است. سطح مقیاس پذیری Epic موتور حدود 8 میلیثانیه (میلیثانیه) در کنسول های نسل بعدی برای روشنایی جهانی و انعکاس با وضوح داخلی 1080p تولید می کند، با تکیه بر وضوح Super Temporal برای خروجی با کیفیتی نزدیک به 4k.
- Lumen به طور پیش فرض از نرم افزار Ray Tracing در برابر Signed Distance Fields استفاده می کند.در هر سختافزاری که Shader Model 5 (SM5) را پشتیبانی میکند، Lumen توانایی اجرای Ray Tracing را به صورت نرم افزاری دارد.