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

قبل از شروع دوست دارم این مقاله را تقدیم کنم به همه کودکان سرطانی که واقعا معصومانه و بی گناه در این دنیا زندگی می کنند و ممنون می شوم اگر برای سلامتی شان یک سوره حمد قرائت کنید شاید این کمتر کاری باشد که هرکدام از ماها بتوانیم برای این بچه ها انجام دهیم .

ما انسانها در دنیایی زندگی می کنیم که همه چیز در آن بصورت متعادل در جریان هست و وقتی یک عامل باعث به هم خوردن این تعادل می شود در ناخودآگاه ما احساس بدی ایجاد می شود بر همین اساس ذهن ما به سمت اجزایی می رود که در آن تعادل وجود داشته باشد . در هنر نیز که مهمترین هدف آن انتقال مفهوم هست ایجاد تعادل بین اجرای آن بسیار مهم می باشد تا بتواند ارتباط خوبی با مخاطب خود بر قرار کند .اهمیت این موضوع به قدری هست که در صورت عدم تعادل تمام اثر خدشه دار مي شود و تأثيرگذاري خود را از دست مي دهد.

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

شاید این سوال برای شما هم پیش آمده چرا با وجود این همه زمانی که برای ریگ کاراکترهایم می گذارم ولی باز نتیجه مطلوب را نمی گیرم؟
و یا چرا با این که blend shape ها و کنترلرهای من فرمهای بسیار خوبی ایجاد می کنند ، اما وقتی وارد انیمیت می شوند اصلا نتیجه خوبی از حرکت آنها گرفته نمی شود در عین حال که یک کارگردان هنری بسیار خوب بر روی کار نظارت داشته ؟
فرم ها و حالت های مختلفی که در بدن کاراکتر ایجاد می شود حاصل حرکت مفصل ها و ماهیچه های مختلف می باشد و شاید به سختی بتوان حرکتی را در بدن ایجاد کرد که تنها با جابجایی یک مفصل یا یک ماهیچه ایجاد شده باشد . به عنوان مثال تعداد ماهیچه های صورت حدود 90 ماهیچه هست که به روایتی در هنگام خندیدن از 17 ماهیچه و هنگام اخم کردن از 40 عضله استفاده می شود . شناخت بعضی از این ماهیچه ها برای ریگر ها ضروری هست . دکتر پل هکمن کسی هست که به صورت تخصصی روی این موضوع کار کرده و چندین دوره در پیکسار و شرکت های بزرگ انیمیشن در دنیا ورکشاپ برگزار کرده تیم ایشان یک سیستم کد گذاری برای ماهیچه ها در نظر گرفته و حالت های مختلف صورت را با نوشتن یک کد نشان می دهند پل هکمن معتقد هست ده ها نوع خندیدن وجود دارد و کد هرکدام متفاوت از دیگری است که نتیجه مهم این موضوع حاکی از تنوع حالات مختلف در بدن است اما نکته اینجاست که این تغییرات به گونه ای نیست که ماهیت خنده را تغییر دهد و فرم آن زیاد متفاوت باشد ، تقریبا همه ما از خندیدن یک تصویر واحد در ذهن داریم بلکه مقصود این است که به عنوان مثال در یک نوع خندیدن ماهیچه شماره 14 نسبت به نوع دیگر خنده بیشتر کشش داشته باشد . خوب دانستن این موضوع چه کمکی به ما می کند چون قرار نیست که ما هم به تعداد ماهیچه های صورت ماهیچه یا کنترلر بسازم ؟
در پاسخ باید بگویم البته که قرار نیست ما تمام ماهیچه ها را بسازیم چون بیشتراین ماهیچه ها ریز هستند و حرکات جزئی دارند اما ماهیچه هایی که نقش اصلی در ایجاد یک فرم دارند را باید بشناسیم و بدانیم به چه شکل حرکت می کنند و برای خودمان تصویر سازی کنیم که حرکت به تنهایی آن ماهیچه چه فرمی را ایجاد می کند که ما نیز دقیقا همان حرکت و فرم را برای کنترلرمان شبیه سازی کنیم. و همینطور ماهیچه مجاور آن نیز خودش به تنهایی چه فرم و همچنین همراه با ماهیچه های مجاور خود چه فرمی را ایجاد می کنند. به این مقوله در کار ما ریگر ها بالانس کردن گفته می شود . اگر بخواهیم در یک جمله بالانس کردن را توضیح دهیم می شود حرکت چندین کنترلر با هم ، بدون این که حرکت یکی از این کنترلر ها باعث خراب شدن فرم کنترلر دیگر شود به تعبیری حرکت اینها مکمل همدیگر شود طبق مثال بالا زمانی که در حالت خندیدن هستیم و برای ایجاد تنوع در خندیدن نیاز به حرکت چند کنترلر دیگر داریم حرکت این کنترلر ها باعث خراب شدن فرم اصلی خندیدن نشود بلکه مکمل آن بوده و یک فرم زیبایی به آن اضافه کند. مبحث بالانس کردن یکی از مهمترین مباحث حوزه ریگ کاراکتر محسوب می شود که هم نیازمند دانش تکنیکی و شناخت فرمولهای ریاضی می باشد و هم دانش هنری . برای روشن تر شدن مسئله بیایید یک مثال را با هم بررسی کنیم.

از نشانه بالانس بودن کنترلرهای دور لب با همدیگر این هست که وقتی تمام این نقاط با هم جابجا شوند فرم اصلی لب حفظ شود و با همان فرم اولیه کل لب بالا ، پایین یا چپ و راست شود و هر کدام از این کنترلرها بصورت جدا نیز یک فرم درست و زیبایی ایجاد کند ویا هر کنترلر که از لب بالا را انتخاب کنیم وقتی کنترلر روبروی آن را در لب پایین انتخاب و جابجا کنیم فرم لبها به هم نخورد و لبها بصورت بسته شده جابجا شود .برای درک بهتر مطالبی که گفتم فیلم روبرو را ببینید تا بهتر متوجه موضوع شوید . بعد از دیدن فیلم ممکن است همه تصور کنند که یک ریگ پیچیده به همراه نودها و دستورات زیادی در بک گراند این کار وجود دارد ولی واقعیت امر این است که بیشتر این فرم ها توسط 10عدد joint ایجاد شده و برخی جاها برای بهتر شدن کار از بلندشیپ به عنوان corrective استفاده شده منتهی هم joint ها با هم بالانس هستند و هم فرم blend shape ها . ابتدا باید بالانس شدن بر روی joint ها توسط weight ها صورت بگیرد و در درجه دوم برای رسیدن به فرم های دقیقتر از blend shape به عنوان corrective استفاده شود .مشکل کار اینجاست که تنظیم کردن weight این joint ها کار بسیار طاقت فرسا و دشواری هست که نیاز به حوصله و دقت بسیار بالایی دارد، در حدود 3 سال پیش من برای تنظیم weight این joint ها ماشین حساب کنارم بود و برای هر vertex جدا اینها رو محاسبه می کردم که فقط برای تنظیم weight لبها بیشتر از یک تا دو  روز زمان می برد شاید خیلی ها این کار را احمقانه بدانند ولی من این کار را می کردم چون نتیجه کار بسیار عالی بود ولی مدام ایده های متفاوت برای اجرای سریعتر ، بهتر و دقیقتر این کار به ذهنم می رسید و با کد نویسی ها به کار سرعت دادم که حاصل آن یک اسکریپت بسیار کاربردی به نام weight_balance شد که بیش از دهها بار باز نویسی شد .

تا بحال هیچ دمویی از این اسکریپت منتشر نکردم اما چون ممکن هست برایتان علامت سوال باشد که این چه طور اسکریپتی هست یک فیلم بسیار کوچک از روش کار این اسکریپت اینجا گذاشتم شاید شما هم با دیدن آن ایده های بهتری به ذهنتان برسد چون مهمترین چیز در کار ما ایده های خوب و عالی هستند ممکن است یک فرد با سن وسال و تجربه پایین کاری را انجام دهد که اصلا به ذهن بزرگترین سوپر وایزرهای دنیا هم نرسیده باشد از این جهت همیشه جای امیدواری برای ماها وجود دارد و وقتی به این مطلب فکر می کنیم خیلی انگیزه می گیریم .
چند مدت پیش character TD یکی از شرکت های خارج از ایران به من ایمیل داد که از نحوه اجرا و بالانس weight شانه و دست کاراکتر سمسار بسیار لذت برده و مشتاق بود این ایده و روش را با او هم share کنم و برای خودم جای سوال بود که واقعا این موضوع اینقدر پیچیده و جذاب بوده که پاسخ آن همان ایده خوب بود . همیشه ایده ها بسیار مهم تر از تجربه ها هستند حتی ممکن است از افرادی که هیچ تجربه ای در زمینه سه بعدی ندارند ایده هایی دریافت کنید که قبل از آن هیچ سه بعدی کار با تجربه دریافت نکرده اید .
برمی گردیم به موضوع اصلی، در مثال قبلی ما نحوه بالانس شدن weight کنترل لب ها را بررسی کردیم اما این کنترلرها باید با کنترلرهای خارج از محدوده لب مانند بینی وsquint هم بالانس باشند و در مورد ابروها نیز به جز بالانس بودن با دیگر کنترلر های محدوده خودش باید با کنترلر های خارج از محدوده خودش مانند چشم و دور چشم و squint بالانس باشد مثالهایی که ما در بالا استفاده کردیم برای زمانی بودند که بخواهیم از دیفرمری مثل joint یا cluster استفاده کنیم ، که blend shape ها نیز به عنوان corrective به کار اضافه می شدن ولی در صورتی که بخواهیم از blend shape به تنهایی استفاده کنیم نیز تفاوت چندانی در نتیجه نهایی ندارد و باید همان فرمها به دست آید تنها تفاوت اینجاست که در مثال قبلی ما توسط weight ها فرم ایجاد شده را کنترل می کردیم ولی در blend shape ها با جابجایی دستی vertexها این فرم را ایجاد می کنیم آن چیزی که مهم می باشد نتیجه نهایی کار هست. به طور کلی استفاده از joint و cluster بسیار بهتر و حرفه ای تر از blend shape می باشد وشرکت های بزرگ دنیا از این روش استفاده می کنند ، چون آزادی بسیار زیادی در حرکت به ما می دهد و می توان به گونه ای آنها را جابجا کرد که بر روی سطحی حرکت کنند به عنوان مثال می توان ابروها را بر روی سطح جمجه بالا پایین کرد که یک مسیر منحنی را طی کنند و یا لبها بر روی سطح صورت که به شکل منحنی می باشند جابجا شوند و مانند blend shape بصورت خطی و صفر تا یک حرکت نمی کند .
چون اکثر مثال های ما برای صورت کاراکتر بود شاید اینطور به نظر آید که این موضوع فقط در ناحیه صورت کاراکتر کاربرد دارد ، ولی این طور نیست چون مهمترین اصل در اسکین همان بالانس بودن هست که شامل اسکین بدن کاراکتر هم می شود . البته نرم افزارهای سه بعدی معمولا گزینه ای به نام normalize دارند که بصورت اتومات این weight ها را بالانس می کنند و پیش فرض آن فعال می باشد اما زیاد قابل کنترل نیست و ممکن هست با تغییر weight یک joint , weight باقی joint ها خراب شود در عین حال که به جز در مواردی خاص نمی توان آن را غیر فعال کرد . اگر این گزینه دستکاری نشود اسکین بصورت پیش فرض بالانس می باشد اما به جز بالانس بودن از نظر weight باید بالانس بودن از نظر فرمی نیز داشته باشیم که گفتیم این فرم ها توسط blend shape ها به عنوان corrective بر روی اسکین استفاده می شوند که تمام زیبایی اسکین بدن هم در اجرای خوب corrective هایی است که برای آن زده می شود و باز مهمتر از آن بالانس بودن این corrective ها که همدیگر را خراب نکنند معمولا این قضیه در ناحیه شانه و دست کاراکتر بسیار ایجاد مشکل می کنند و تنظیم کردن آنها کمی پیچیده است .

برای گرفتن نتیجه بهتر توصیه می کنم کاراکترهایی که بسیار حرفه ای ریگ شدن را بررسی کنید و هر نقطه آن را جابجا کنید و فرم های ایجاد شده توسط آن را به دقت بررسی کنید اگر به این نمونه ریگ ها دسترسی ندارید بهترین گزینه بررسی دقیق پشت صحنه انیمیشن های مطرح می باشد برای دیدنشان حتما از player هایی استفاده کنید که فیلم را بصورت فریم به فریم به شما نشان می دهد چون نیاز هست هنگام نمایش کاراکترها، آن را فریم به فریم بررسی کنید و مهمتر از همه اینها ، موضوعی بود که ابتدا هم به آن اشاره کردم و آن درگیر شدن ذهن و تحلیل حرکت هر مفصل بصورت مجزا هست باید بتوانیم فرم هایی که روی صورت ایجاد می شود را خورد کنیم و هر بخش را روی یک کنترلر قرار دهیم توصیه می کنم هرگز به سمت این روش نروید که برای هر فرم یک blend shape کلی داشته باشید در این صورت برای ایجاد صدها فرم متفاوت باید صدها blend shape متفاوت بسازید و برای گفتن دیالوگ اصلا نیاز نسیت برای حروف blend shape مجزا در نظر بگیرید اگر کنترلرها به درستی ریگ و بالانس شده باشند با آنها می توان تمام فرم ها را ایجاد کرد اما به جای اینکه با جابجایی یک نقطه به آن فرم برسید شاید نیاز باشد چند نقطه را حرکت دهید ولی در عوض هم تنوع در کار دارید و هم بی نهایت فرمهای متفاوت. اما برای سرعت بخشیدن به کار بهتراست از اسکریپت هایی مثل studio library استفاده کنید و فقط یکبار این pose ها را آرشیو کنید و با زدن یک دکمه به فرم مد نظر بروید . روش دوم برای سرعت دادن به کار استفاده از Node ها و یا Expression ها می باشد به عنوان مثال برای ایجاد خنده ممکن هست از کنترلرهای گوشه لب و گونه و دور چشم و خود چشم و بینی بصورت مشترک استفاده شود ، وظیفه ریگر این هست که با استفاده از Node ها و یا Expression ها یک ارتباط منطقی بین این نقاط ایجا کند و خروجی آن را به یک نقطه وصل کند که با جابجایی آن همه نقاط به میزان درستی جابجا شوند.

چند توصیه و نتیجه گیری :

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

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

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

پیروز و سربلند باشید
سید ابوالفضل موحدی

3 replies
  1. محمد
    محمد says:

    خیلی عالیه امیدوارم بازم مقالاتتونو ادامه بدید جناب موحد

    Reply
  2. yashar
    yashar says:

    ali bood abolfazl en balance weight kheily daghdaghe bood vase karaee mesle Cloudy with a Chance of Meatballs bedard mikhore

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published.