در دو قسمت ابتدایی این مجموعه مقاله تحت عنوان «آموزش طراحی ۳ بعدی در بازیهای ویدیویی» با تکستچرها (Textures)، متریالها (Materials)، شیدرها (Shaders) و فرآیند بدست آوردن UVهای مدل آشنا شدید. در این قسمت و قسمت بعدی سه روش اصلی ساخت انواع تکستچرها را توضیح خواهیم داد.
مطابق معمول به کاربران عزیز سایت توصیه میشود که قسمتهای مختلف مقالات، به ترتیبی که بر روی سایت قرار میگیرند و از قسمت اول مطالعه شوند، چرا که مطالب این مجموعه مقالات در یک فرم پیوسته هستند. برای مثال برخی مطالب که در قسمتی از مقاله ذکر شدهاند، توضیح آنها در قسمتهای قبلی آمده است.
روشهای تولید تکستچر (Textures Generating Methods)
همانطوری که پیشتر گفتیم تکستچرها چیزی نیستند جز یک سری فایلهای تصویری که به صورت Bitmap وجود دارند و میتوانند انواع فرمتهای رایج تصویری مثل JPG و PNG و TGA را داشته باشند. اگر وجود جزئیات تکستچر برای شما مهم باشد فرمت PNG توصیه میشود. چرا که الگوریتم کمپرس شدن فایل و تبدیل به PNG از لحاظ کاهش کیفیت تصویری بهتر از JPG است اما به هر حال تصاویر PNG حجم بالاتری نسبت به JPG دارند. بنابراینJPG از لحاظ حجمی بهینه تراست.
به طور کلی میتوانیم به سه روش کاملا متفاوت انواع تکستچرها را خلق کنیم:
۱. Photo Texturing
۲. Procedural Texturing
۳. Painting Texturing
هریک از این سه روش مزایا و محدودیتهای مخصوص به خود را دارند که در ادامه شرحی کلی بر این روشها خواهیم داد. البته روشهای دیگری نیز برای تولید تکستچر به جز این سه روش وجود دارد. اما به دلیل اینکه روشهای دیگر بسیار کمتر استفاده میشوند و اینکه درواقع، ساز و کارشان بیشتر تلفیقی از این سه روش هستند، در این مقاله مورد بحث قرار نمیگیرند.
۱. Photo Texturing
روش اول تولید تکستچر بسیار سادهتر است و برای اجرای آن زمان کمتری به نسبت روشهای دیگر می برد. در این روش یک دوربین عکاسی خوب و داشتن نور مناسب محیط بسیار تأثیرگذار است. چرا که در این روش تکستچرهای ما، تقریبا همان چیزی هستند که توسط دوربین عکاسی ثبت شده اند، و هر دوربینی از جمله پیشرفتهترین دوربینها برای گرفتن یک عکس ایده آل نیاز مبرم به محیا بودن شرایط ایده آل برای نور محیط دارند.
فرض کنید در یک استودیو بازیسازی مشغول به کار هستید. شما در بخش طراحی تکستچر فعالیت میکنید. در دوران کوید ۱۹ به سر میبرید و دور کار هستید. در رویا فرو نروید! شما یک کارمند جزء هستید، در یک استودیو بازیسازی کوچک که از قضا با مشکلات بودجه هم دست و پنجه نرم میکند و در شرف برشکستگی است. در عین حال این استودیو نگون بخت به شدت با ناشر بازی که به زحمت پیدا شده است، به جهت هرچه زودتر منتشر شدن بازی، درگیر هستند.
Lead Designer استودیو طی تماس تلفنیِ فوری، از شما میخواهد هر چه زودتر و نهایتا در طی ۴۵ دقیقهی آینده تکستچرهای بخشی از Terrain (زمین بزرگ) بازی را درست کنید و بفرستید. وی ذکر نمیکند که به چه روشی تکستچرها را درست کنید و یا چه جزییاتی را مدنظر قرار بدهید، فقط از شما میخواهد هر چه سریعتر کار را تحویل دهید و کار هم طوری نباشد که موجبات تمسخر منتقدها را و بازی بازها را فراهم کند!
شما هم از آنجایی که اصطلاحا «بچه زرنگ» هستید و خود را انسانی ساخته شده برای روزهای سخت و پر فشار میدانید، به سرعت دوربین عکاسی DSLR (دوربینهای عکاسی حرفه ای) را با لنزی که فاصلهی کانونی آن ۵۰ mm است و نسبت کانونی آن f/۱.۸ است (مشخصات حداقلی لنز برای Photo Texturing) برمی دارید و سری به پارک سر کوچه میزنید.
مطالب مرتبط:
یک زمین خالی از چمن که پوشیده از سنگ ریزه و خار و خاشاک است را انتخاب میکنید. دوربین را طوری تنظیم میکنید که کمترین فوکوس را داشته باشد و طوری آن را نگه میدارید که دقیقا در بالای زمین قرار گرفته باشد و لنز بر سطح زمین کاملا عمود باشد و تصویر کاملا دو بعدی به نظر برسد. از آنجایی که خیلی وقت ندارید، به سو و جهت نور توجهی نمیکنید و فقط سعی میکنید که پشت به نور نباشید که سایهی خودتان بر روی عکس نمایان شود.
ولی با توجه به اینکه یک کار فوری میخواهیم و عجله دارید، سایههای ریزی که در واقع سایهی سنگ ریزههای درون کادر هستند را، نادیده میگیرید. چرا که با خود فکر کردید که میتوانید از طریق Photoshop تمام این سایههای هر چند ریز ولی تاثیرگذار را حذف کنید. درست است که شما با، رو به نورِ خورشید ایستادن، جلوی سایه انداختن «نور مستقیم» بر روی کادرتان را تا حدودی گرفتید، اما یک چیزی به نام «نورهای غیرمستقیم» هم داریم که عمدتا حاصل بازتابش نور مستقیم تابیده شده به اجسام درون کادر است، که بدیهی است که در یک روز آفتابی با همچنین مشکلی مواجه خواهید شد.
چرا که بهترین حالت نور برای عکس گرفتن به جهت تهیه تکستچر، نور یک روزِ روشنِ ابری است که شدت نورِ مستقیم بسیار کم است و نورهای غیر مستقیم بسیار ضعیف و در نتیجه از لحاظعدم وجود سایه درون عکس، خیالتان راحت است. چند موردی هم که ممکن است به وجود بیاید به راحتی از طریق Photoshop قابل Edit کردن هستند. و از آنجایی که سایههای احتمالی به شدت ضعیف هستند، تصحیح آنها در فتوشاپ منجر به مصنوعی شدن عکس نمیشود.
نکته ای دیگر که در نظر میگیرید. فرمت عکس گرفته شده است که باید RAW باشد. در این فرمت هیچ گونه تغییر و کمپرسی درون دوربین به صورت اتوماتیک بر روی عکس انجام نمیشود. و فرآیند تغییر فرمت را باید خودتان در مرحلهی Edit کردن عکس انجام دهید. به هر حال چند تا عکس میگیرید و به سرعت و نفس و نفس زنان به خانه بر میگردید.
یکی از بهترین عکسهایی که گرفتید را انتخاب میکنید و درون نرم افزارGIMP که در واقع میتوان گفت یک Photoshop جمع و جور، سریع و پر کاربرد است، عکس را باز میکنید و با استفاده از ابزارهایی، تا جای ممکن انحناهای عکس، در دور آن را که منجر به ۳D دیده شدن عکس میشود تصحیح میکنید و یک عکس کاملا دو بعدی تهیه میکنید.
در اینجا چون با زمین صاف طرف بودید کار شما برای در آوردن یک عکس دو بعدی، بسیار ساده بود. اما تصور کنید، که قرار بود تکستچرهای تنهی درخت را بسازید که یک سوژه عکاسی کاملا استوانهای و انحنادار است. در این حالت بدون اینکه قسمتهای زیادی از کنارههای عکس را Edit کنید و از جزییات بکاهید نمیتوانستید یک تصویر دو بعدی از این استوانه به دست آورید و کار شما مشکلتر میشد.
به هر حال به فتوشاپ میروید و Contrast و Brightness و Light عکس را تنظیم میکنید. اما یک سری سایههای ریز را نمیتوانید حذف کنید. به هر حال از طریق همان فتوشاپ از همین عکسِ گرفته شده و با استفاده از یک سری ابزارها، انواع Map های لازم را از روی همین یک عکس بدست میآورید. با استفاده از این تکستچرها، متریال یک زمین پوشیده شده از گل و سنگ ریزه را تهیه کرده و درون موتور بازیسازی Unreal Engine ۴ تست میکنید.
مشاهده میکنید که Terrain در نقاطی که تاریک به نظر میرسد (به دلیل همان سایههای ریز)، جزییات آن به خوبی نمایان نیستند و خیلی سه بعدی به نظر نمیرسند و از آنجایی که این یک عکس بوده و به خوبی Seamless نشده (به فرآیند جلوگیری از تکرار جزییات تکستچر به صورت و منظم در جاهای مختلف Terrain میگویند) مشاهده میکنید که یک سنگ ریزه که ظاهرِ آن کمی نسبت به بقیه بیشتر در دید است، در جاهای مختلف آن، سیکلوار تکرار شده است.
اما این مسئله نیز تا حدودی با استفاده از تکنیکهای مختلف قابل حل است. (امیدوارم در آینده فرصتی پیش بیاید که در مورد Seamless کردن تکستچرها در فرآیند Untilling بیشتر صحبت کنیم. چرا که مسئلهای است که تقریبا همیشه و در هر نوع تکستچری پیش میآید و تکنیکهای حل این مسئله بسیار جالب و کاملا علمی هستند).
از آنجایی که عکس گرفته شده بسیار با کیفیت بوده، حجم آن به شدت بالا رفته است، و کمپرس کردنِ بیش از حدِ آن نیز منجر به کاهش کیفیت میشود. اما چارهای نیست و بهینهسازی را فدای زمان میکنید.
به هر حال کار را به موقع ارائه میدهید و تکستچر نیز در بازی استفاده میشود و بازی نیز منتشر شده و امتیاز امیدوارکنندهای از منتقدین میگیرد. رئیستان نیز از شما بسیار راضی است که به خوبی در هر چه سریعتر Gold کردن بازی (پایان مراحل ساخت بازی) نقش داشتید. و موقعیت شغلی شما را در استودیو ارتقا میبخشد. و همه نیز خوشحال و خندان به زندگی ادامه میدهند.
در بالا به ترتیب تصاویر مربوط به تکستچرهای ساخته شده برای Terrain را مشاهده کردید. از بالا به پایین به ترتیب مپهای Base Color و Normal و Roughness و AO را داریم. در ادامه این تکستچرها، متریال Terrain مذکور را ساخته و در موتور بازیسازی Unreal Engine ۴ به Terrain اعمال میشوند.
اما در مجموعه نقدهای بازی، ۲-۳ نفر از منتقدان کار بلد و متخصص که خود دستی در کار دارند، به بازی یک ایرادی گرفتند که از چشم خیلیهای دیگر دور مانده بود. آنها از کیفیت تکستچرهای بازی بالاخص در ناحیه Terrain خیلی راضی نبودند و یکی از آنها که از قضا منتقد معروفی هم نبود به این موضوع اشاره کرده بود. او در نقد خود بر بازی ذکر کرده بود که «به نظر میرسد در طراحی تکستچر Terrain، از صفر تا صدِ آن از روش Photo Texturing استفاده شده و انگار زمان کافی برای Polish کردن آن اختصاص نداده اند».
وی جز به جز به برخی از مشکلات آن اشاره کرد. هر چند که بیشترِ آن ناحیهای که ضعف تکستچر در آن دیده میشد، توسط برخی تکنیکها از جمله پوشاندن آن قسمت با گل و علف و سبزه و یا Painting (در آینده صحبت خواهیم کرد) رفع شده بودند. اما از شانس بد دوست زرنگمان که تکستچر را تهیه کرده بود، آن منتقد سِرتق از آنجایی که وقتی میخواهد بازی از لحاظ رندرینگ را نقد کند به وجب به وجب دنیای بازی سرک میکشد و مو را از ماست میکشد، به ناحیهای دست یافته بود که ضعفهای ساخت یک تکستچرِ۴۵ دقیقهای در آنجا خیلی پوشانده نشده بودند.
چرا که Level Designer ها از آنجایی که بسیار برای گُلد کردن بازی عجله داشتند، از وقت گذاشتن برای مواردی که دور از دسترس بودند خودداری کرده بودند و پیش خود حساب کردند که مثلا بازی منتشر شود تا بعدا از طریق Update کردن بازی به برخی مشکلات رسیدگی کنیم.
به هر حال منتقد پیگیر داستان ما این مشکلات را مطرح کرد و آن را دور ازشان بازیای که نمرهی سبز (بازهی نمرات سایت متاکریتیک برای یک بازی خوب) گرفته، دانست. از آنجایی که نقد او در سایت معروفی که در دنیا صاحب نظر باشد، چاپ نشده بود، کسی متوجهی این داستان نشده و اندک افرادی هم که نقد را خوانده بودن، منتقد متخصص داستان ما را به هِیتر بودن (واژهی Hater عموما در زمینه صنعت سرگرمی به معنی شخصی است که از روی دشمنی و نفرت از پلتفرم رقیب و یا یک محصول بخصوص راجع به آن نظر میدهد و دیگران نظرات او را ناشی از عداوت و دشمنی میدانند و به او صفت Hater به معنی پراکنده کنندهی نفرت، میدهند) متهم کردن و این داستان ختم به خیر شد.
با توجه به این ماجرا فهمیدیم که اصولا Photo Texturing به خودی خود روش بدی نیست، و طبق شرایطی بسیار کاربردی است، و اگر آن شرایط به خوبی برقرار باشند، میتوان روی آن به عنوان یک راه حل و روش سریع برای ساخت تکستچرهای قابل قبول حساب کرد.
بنابراین اگر بیشتر از ۴۵ دقیقه روی آن وقت بگذاریم مطمئنا به نتایج خوبی خواهیم رسید. از آنجایی که همه چیز در دنیا یک Trade off است، این روشهای مختلف ساخت تکستچر نیز همین ویژگی را دارند. یعنی شما همواره باید به جهت استفاده از ویژگیهای مثبت یک روش انتخابی، برخی مسائل را فدای آن کنید. ولی به هر حال این روش کار شما را راه انداخت.
دقت شود تکستچری که در تصاویر این بخش مشاهده میکنید از روش Photo Texturing ساخته شده است و در آنریل انجین نیز بر روی یک Terrain قرار گرفته اند. عکس مربوط به این تکستچر از روی زمین فضای سبز پیاده رو خیابان، گرفته شده است. در قسمت بعدی مقاله، با دو روش دیگر ساخت تکستچر آشنا خواهیم شد. تا هفته آینده، با تکفارس همراه باشید.
نظرات