مقاله شروع یادگیری MCG در 3ds Max 2016

در تاریخ شنبه, 06 شهریور 1395 در بخش مقالات توسط محمد بودات (نویسنده میهمان)

آموزش پایه اسکریپت نویسی در 3ds Max بر پایه MCG

مقاله شروع یادگیری MCG در 3ds Max 2016
سلام دوستان عزیز
 
همونطور که می دونید یکی ویژگی های جدیدی که به نسخه های جدید نرم افزار تری دی مکس اضافه شده، ابزار max creation graph یا به اختصار MCG هستش. این ابزار تحول بزرگی توی این نرم افزار بحساب میاد چون بوسیله اون شما بدون اینکه نیاز باشه اسکریپت نویسی یا برنامه نویسی رو یاد بگیرید، می تونید انواع پلاگین های متنوعی رو بر اساس نیاز درست کنید و همین طور پلاگین های که دیگران درست کردن رو اجرا کنید. این ابزار توی نسخه های جدید مدام در حال بروزرسانی هست و در حال تعمیم دادن به بخش های مختلف مکس هست، مثلا توی دو نسخه جدیدش فیزیک رو هم وارد خودش کرده. ما قصد داریم در قالب چند مقاله این ابزار رو شرح بدیم و برای شروع از ترجمه یکی دو مقاله از آقای مارتین اشتون شروع می کنیم و بعد از یادگیری چند اصول اولیه، انشاالله وارد بحث های ساخت پلاگین های متنوعی خواهیم شد. برای همراه شدن با این مقاله لازمه که حد اقل این تاپیک رو مطالعه کرده باشید تا مطالب براتون قابل هضم باشه.
 
با ما همراه باشید ...
 

The Function Connector - اتصال تابع

اگه شما کاربا MCG را تازه شروع کردین، احتمالا از خودتون پرسیدین که این مربع های کوچک function connector چی هستن؟ هدف از این پست اینه که کاربردشون رو یاد بگیریم.
 
01
 
بیاید اینطور تصور کنیم که Map operator یه جادوگره، این ابزار به 2 شرط برای شما کاری رو انجام میده.
  1. اول اینکه اون فقط با آرایه کار می کنه. شما باید مقدار های ورودی این ابزار رو به صورت آرایه در بیارید.
  2. دوم اینکه باید به اون یه فرمول بدین که بتونه مقدار آرایه رو توی اون فرمول استفاده کنه. به عبارت دیگه : جادوگر آرایه ای از اعداد رو می گیره و توی فرمولتون قرار میده و به یه آرایه جدید تبدیل می کنه.
02
 
بیاید یه مثال ملموس تر بزنیم.
 
در نمودار زیر، ما در حال تهیه مپ جادوگر با آرایه ای از پنج شماره: [0، 1، 2، 3، 4] هستیم. همچنین یک فرمول داریم که به سادگی "عدد 1 را به تعداد ورودی ها اضافه می کنه" در نتیجه آرایه تبدیل میشه به: [1، 2، 3، 4، 5].
 
03
 
اضافه کردن یک عدد به یک آرایه کاربردهای خودش را داره، البته تصور درستی نمی شه ازش پیدا کرد. بیایید یه مثال جالب تر بزنیم، در زیر می خواهیم یه مودیفایر MCG ایجاد کنیم که باکس هایی رو در راس یک Mesh درست می کنه.
 
04
 
بطور خلاصه اینکه : اپراتور MeshVertices موقعیت ورتکس های آبجکتمون رو بصورت آرایه ای از نوع Vector3 مشخص می کنه. اپراتور map از این ارایه توی یه فرمول به شرح زیر استفاده می کنه.
 
درست کردن باکس و جابجایی به موقعیت هایی که داده های vector3 در اختیارمون میگذاره. وقتی که همه باکس ها ایجاد و جابجا شدند، همه بعنوان یک Mesh با هم ترکیب می شن. این Mesh با Mesh اصلی ترکیب میشه و سپس با خروجی output مودیفایر درست میشه.
 
05
 
حالا که ما ایده این کار رو داریم، می تونیم یه نگاه دقیق تر به اون بندازیم. به عبارت دیگه یه تابع چی می سازه ؟ برای شروع توجه کنید به ارتباطی که بین دو اسلات توابع هستش.
 
06
 
اپراتور در ابتدا اتصالی از نوع خروجی تابع تعریف می کنه (رنگ  فیروزه ای). در این مورد، نوع خروجی اپراتور OffsetMesh به مقدار TriMesh : این معنی رو میده  که طیف خروجی نیازمند اراده TriMesh است. اگه نوع خروجی از نوع “any” باشه (در مورد مثال اول با  “add” بود) بطور خودکار جستجوگر تلاش می کنه که خروجی تابع رو جستجو کنه (زمانی این اتفاق میوفته که) : Build > Validate, Build > Evaluat رو بزنید یا CTRL+E
 
07
 
وقتی خروجی توابع تو دستتون باشه، شما با گام برداشتن یکی به یکی گره ها، می تونین نمودارتون رو با توجه به مقادیری که برای محاسبه نیاز دارید روی به عقب درست کنید. در توابع پیچیده تر این "مسیر های مورد نیاز" بصورت شاخه ها و با دقت بیشتر و بصورت سلسله مراتبی به هم وابسته درست میشن.
 
08
 
در این تابع ما می تونیم ببنیم که چطور OffsetMesh نیاز به پارامتری مانند CreateBox داره و CreateBox نیاز به "پارامتر اندازه باکس" داره. ما از این سلسله مراتب وابستگی به عنوان بدنه تابع “body” برای خروجی تابع استفاده می کنیم.
 
09
 
آخرین مرحله، شناسایی ورود های تابع هست که شما می تونید ورودی یک تابع توسط اسلات ورودی بی ارتباط رو، توی بدنه تشخیص بدید. در این تابع ما، فقط یه اسلات ورودی بی ارتباط داریم. یعنی offset که Vector3 از اپراتور OffsetMesh هست. بنابراین تابع Vector3 به عنوان  یه ورودی که به طور خودکار به اسلات “offset” اتصال پیدا می کنه.
 
10
 
حالا که با همه قسمت های تابع آشنا شدیم، نگاه کلی به این تابع داشته باشیم :
  1. یه ورودی از نوع Vector3 داره
  2. باکس درست می کنه و با استفاده از ورودی Vector3 اونا رو جابجا می کنه
  3. باکس رو مانند یه TriMesh در میاره
11
 
در نتیجه : اپراتور Map با استفاده از این تابع مجموعه ای از بردارها را به یک آرایه از TriMeshes تبدیل می کنه.
 
منبع: وبسایت اتودسک
نویسنده : Martin Ashton

 
با تشکر از همه دوستان که تا پایان مقاله همراه ما بودن. منتظر مقاله بعدی ما باشید ...
 
با آرزوی موفقیت برای همه شما دوستان عزیز
 
محمد بودات

محمد بودات (نویسنده میهمان)

 

نظرات (31)

  • مصطفی رضایی

    مصطفی رضایی

    06 شهریور 1395 ساعت 12:54 |
    درود محمد جان

    خیلی خیلی ممنون ... عالی بود ... مفید و کاربردی
    چقدر این ابزار MCG دوست داشتنی ـه ... چند وقتی باهاش کار کردم و یجورایی عاشقش شده بودم ... اصن دنیایی داره ... خیلی دوست دارم براش یکسری آموزش ویدئویی بسازم ولی فعلا که فرصت ندارم ...

    بازم ممنون :) مقاله جالبی بود
    • محمد بودات

      محمد بودات

      06 شهریور 1395 ساعت 21:12 |
      مصطفی جان. واقعا کار باهاش لذت بخشه . به شرطی بفهمی چی به چیه. داشتن یه مقدار اطلاعات در مورد توابع و ریاضیات راه گشاست. ایشالا تو مقاله اینده به این نتیجه می رسیم. که "خدا روشکر این همه ریاضی خوندیم کاربردش رو هم دیدیم".
  • hamed

    hamed

    06 شهریور 1395 ساعت 14:20 |
    دمت گرم بودات خیلی چیز قدرتمندی به نظر میاد
    • محمد بودات

      محمد بودات

      06 شهریور 1395 ساعت 21:04 |
      حامد جان تشکر. بله بعضی اوقات پیش میاد که کارهایی رو بصورت تکراری بخوای انجام بدی. باساختن پلاگین های کوچیک می تونی کارت رو خیلی راحت کنی.
  • mohammadreza

    mohammadreza

    06 شهریور 1395 ساعت 15:10 |
    سلام خیر ببینی تشکر داداش
    انشاالله بیشتر از این کارا ببینیم....
    یاعلی
    • محمد بودات

      محمد بودات

      06 شهریور 1395 ساعت 21:06 |
      ممنون محمد رضا جان. بله . حتما ادامه میدم. منتظر باشید
  • عبدالجلیل سلطانی

    عبدالجلیل سلطانی

    06 شهریور 1395 ساعت 16:23 |
    با درود جناب محمد بودات

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

    خیلی ممنون از وقتی که گذاشتین
    • محمد بودات

      محمد بودات

      06 شهریور 1395 ساعت 21:08 |
      جناب سلطانی عزیز مچکریم. در خصوص این موضوع بله.کمتر منبعی پیدا میشه. قصد داشتم ویدیویی تهیه کنم. ولی دیدم بدلیل در دسترس بودن کل کطلب یکجا . بهتره از مقالات شروع کنم. ایشالا در اینده . سراغ آموزش ویدیویی خواهیم رفت
  • مهدی هادی

    مهدی هادی

    06 شهریور 1395 ساعت 18:17 |
    جناب بودات خیلی مچکر :)
    منتظر ادامه هستیم :)
    • محمد بودات

      محمد بودات

      06 شهریور 1395 ساعت 21:09 |
      مهدی عزیز. تشکر دارم. منتظر باش
  • saeed

    saeed

    06 شهریور 1395 ساعت 21:51 |
    سلام و درود
    • محمد بودات

      محمد بودات

      07 شهریور 1395 ساعت 00:51 |
      سلام. همچنین
  • محمدیان19546797660

    محمدیان19546797660

    07 شهریور 1395 ساعت 00:47 |
    ممنون از اطلاعرسانیتون
    جناب بودات ، مشهدیها هوادارتونن حضور شما در ورکشاب گام بزرگی برای هنرمندان مشهدیهاست .
    باتشکر
    • محمد بودات

      محمد بودات

      07 شهریور 1395 ساعت 00:59 |
      جناب محمدیان عزیز. سلام. از تمام مشهدیا کمال تشکر رو دارم. من خوزستان هستم. شاید توفق نباشه . خدمت دوستان برسم. سپاسگزار
  • مجتبی اعرابی

    مجتبی اعرابی

    07 شهریور 1395 ساعت 10:42 |
    ممنون از شما . امیدوارم برای کاربران این نرم افزار مفید باشه این اموزش
    • محمد بودات

      محمد بودات

      07 شهریور 1395 ساعت 18:08 |
      سپاس از صمیم قلب
  • MH Behzadi

    MH Behzadi

    07 شهریور 1395 ساعت 21:03 |
    خسته نباشید آقای بودات. بسیار ممنونم. عالی بود. مشتاقانه منتظر سری های بعدی این آموزشها مخصوصا بصورت تصویری هستم. موفق باشید.
    • محمد بودات

      محمد بودات

      08 شهریور 1395 ساعت 19:57 |
      سلام جناب بهزادی عزیز. ایشالا اگه زنده بودیم حتما شرو می کنیم
  • فرزاد

    فرزاد

    08 شهریور 1395 ساعت 12:02 |
    سلام خیلی از اموزشها نیمه کاره متاسفانه رها میشه انشالله که اقای بودات ادامه بده بحث MCG رو ممنون
    • محمد بودات

      محمد بودات

      08 شهریور 1395 ساعت 20:00 |
      بله . کاملا باهاتون موافقم. خودم هم آموزش زیبراش رو نیمه کاره گذاشتم. تو برنامه دارم. ولی هنوز فرصتش پیش نیومده. در مورد mcg ایشالا دو سه مقاله هست . که ادامه میدم. بعدش میرم سراغآموزش ویدیویی
  • madmaster_3d

    madmaster_3d

    08 شهریور 1395 ساعت 20:41 |
    مرسی بودات جان
    • محمد بودات

      محمد بودات

      08 شهریور 1395 ساعت 23:10 |
      مچکریم
  • محسن رجبی

    محسن رجبی

    09 شهریور 1395 ساعت 12:03 |
    سلام و خسته نباشید

    مقاله خیلی خوبی بود و امیدوارم ادامه داشته باشه
    • محمد بودات

      محمد بودات

      09 شهریور 1395 ساعت 17:55 |
      سلام محسن جان. ایشالا ادامه میدیم.
  • sajadNAAM

    sajadNAAM

    09 شهریور 1395 ساعت 19:04 |
    چقدر جالب، خسته نباشی ممنون بابت زحمتی که کشیدی
    • محمد بودات

      محمد بودات

      10 شهریور 1395 ساعت 20:55 |
      سلامت باشید. سپاسگزار
  • kaveh

    kaveh

    11 شهریور 1395 ساعت 20:40 |
    درود دستتون درد نکنه و یه سوال چطور می تو نیم از این مدیفای ها خرو جی اسکر یپت بگیریم یعنی با درگ ساده هر وقت می خواهیم از یه درایو دیگه استفاده کنیم و بعد تمام . به طور کلی در مورد فر مت ها و استفاده از نو دها کدها که بعضی جا ها گیر می یار یم چطور یه اسکر یپت جد ید در ست کنیم با سپاس
    • محمد بودات

      محمد بودات

      13 شهریور 1395 ساعت 00:04 |
      سلام. فک کنم. توی خروجی ها out put maxscript هم هست از اون می تونید استفاده کنید
  • hoseinsh

    hoseinsh

    13 شهریور 1395 ساعت 05:38 |
    fsdhv عالی
    • محمد بودات

      محمد بودات

      13 شهریور 1395 ساعت 20:56 |
      مچکرم
  • امید تری دی

    امید تری دی

    14 اسفند 1395 ساعت 02:36 |
    خیلی عالی بود ممنون برای من مفید بود...

نظرتان را بنویسید :

اظهار نظر به عنوان مهمان .

جدیدترین نظرات ثبت شده در بخش بلاگ

با سلام

با توجه به اینکه نرم افزار اصلیم مکس نیست این ویدئو رو بررسی نکردم...

سعید حدادیان سعید حدادیان 08. فروردین, 1396 |

آموزش فوق العاده ای بود!
تصورش هم برام سخت بود بشه با ویوپورت مکس همچین...

Moein Moein 08. فروردین, 1396 |

سلام. درمورد موتور رندر کوییک سیولر باید بگم تمام کارهایی که در این آموزش...

احسان شمسی احسان شمسی 08. فروردین, 1396 |

Thanks for your feed back
I'm not a master...there is still a long long way to be one...still learning...maybe a hundred years later...

احسان شمسی احسان شمسی 08. فروردین, 1396 |