آموزش کپی ( clone ) گرفتن در تری دی مکس + تفاوت های روش های کپی instance و reference و copy با یکدیگر
مقدمه
در این مقاله می خواهم برای شما انواع روش های کپی گرفتن در تری دی مکس را شرح دهم.ساده ترین روش clone است روش های پیشرفته تری نیز وجود دارند که امکانات و خاصیت های بیشتری در اختیار ما می گذارد.
آموزش clone گرفتن از آبجکت در تری دی مکس
ابتدا یک آبجکت مثلاً teapot در صفحه ترسیم می کنیم. در حالتی که آبجکت ما فعال است کلید ترکیبی Ctrl+V را از صفحه کلید فشار می دهیم. در این صورت پنجره clone options باز می شود. این پنجره دارای دو ستون است. ستون object و ستون controller .که بخش controller غیر فعال است.
کپی گرفتن در تری دی مکس چندین حالت دارد:
clone گرفتن از نوع copy
در حالت عادی کپی ما بر روی instance فعال می باشد. ابتدا حالت را بر روی copy قرار میدهیم . در قسمت name هم میتوانیم یک نام برای کپی جدیدمان اختصاص دهیم . سپس برای ok کلیک می کنیم .
سپس آبجکت teapot مان را جابجا می کنیم. همانطور که می بینید کپی جدید در جای خودش اعمال شده و این دو آبجکت با هم هیچ وجه مشترکی ندارند. اگر مقادیر یکی از آنها را تغییر دهیم مقادیر دیگری تغییر نمیکند . هر کدام پارامترهای اختصاصی خود را دارد.
clone گرفتن از نوع instance
روش دیگر کپی گرفتن از آبجکت در تری دی مکس این است که به جای فشردن کلید ترکیبی Ctrl + v از صفحه کلید ، دکمه shift را پایین نگه دارید. سپس آبجکت مورد نظر را در جهت یکی از محورها جابجا کنیم.
یعنی اشاره گر ماوس را بر روی یکی از محورهای مختصات برده کلیک ماوس را نگه میداریم . آبجکت را جابجا می کنیم . بعد از رها کردن دکمه ماوس پنجره clone options باز میشود که میتوانیم نوع کپی را مجدداً مشخص کنیم.
کادر تنظیمات clone options
در این پنجره یک گزینه دیگر نیز اضافه شده است گزینه number of copy . که می توانیم مشخص کنیم که در فاصله ای که بین آبجکت اول و دوم ایجاد کردیم چند عدد آبجکت دیگر نیز ایجاد شود.
در این قسمت عدد ۳ را وارد میکنیم. این دفعه نوع کپی را بر روی instance میگذاریم . سپس بر روی ok کلیک می کنیم.
در حالت instance پارامترهای آبجکت ها به هم پیوسته است . تغییر در مقادیر یکی باعث تغییر مقادیر سایر آبجکتها میشود. این نوع کپی که از نوع instance می باشد. در مواقعی که شما می خواهید از یک آبجکت کپی بگیرید و صحنه بسیار شلوغ است کمک می کند.
بدین شکل که وقتی تعداد زیادی آبجکت را در صحنه داریم و تعداد face ها و پلی گان های آن زیاد است میزان رم زیادی از سیستم مصرف می شود . اما وقتی که کپی ما از نوع instance باشد باعث میشود که رم کمتری از سیستم ما اشغال شود و صحنه به نسبت سبک تر خواهد بود.
تفاوت کپی گرفتن از نوع copy و instance با هم
اگر شما بخواهید که پارامترهای یکی از کپی هایتان را به صورت مجزا تغییر دهید آن آبجکت را انتخاب کنید. در قسمت command pannel بر روی گزینه make unique کلیک کنید . این همان حالت copy می باشد که پارامترهای آن مجزا و اختصاصی تغییر میکند و بقیه آبجکت ها با تغییر پارامترهای این آبجکت تغییر نمیکند.
در کپی از نوع instance وقتی که پارامترهای یکی را تغییر میدهیم پارامترهای بقیه نیز تغییر می کند. فقط در صورتی که یک آبجکت را با ابزار scale، تغییر مقیاس دهیم تغییرات آن در سایر کپی ها اعمال نمی شود.
فقط اگر پارامترهای آن را تغییر بدهیم یا یک مدیفایر به یکی از آبجکت های کپی مان اعمال کنیم و روی بقیه هم اعمال می شود . فقط در صورتی که با کمک ابزارهای move ,rotate, scal و … هر تغییری که در یک کپی بدهیم در بقیه اعمال نخواهد شد.اگر تمایل دارید کار با ابزارهای move و rotate را یاد بگیرید بر روی لینک ان ها کلیک کنید.
کپی از نوع reference :
مجدد مثل دفعه قبل دکمه shift را فشار می دهیم آبجکت مان را جابجا می کنیم. پنجره clone option باز می شود . در این پنجره نوع کپی را از نوع reference قرار میدهیم . در قسمت number of copies هم تعداد آن را بر روی 4 تنظیم میکنیم و برای ok کلیک می کنیم.
آبجکت های ما ایجاد شده اند. بر روی هر یک از آبجکت ها که کلیک می کنیم پارامترهای آن را نمی توانیم مشاهده کنیم.
به صورت پیش فرض یک نوار خاکستری رنگ در بالای کادر لیست آبجکت های ما قرار دارد . حالت انتخاب بر روی این نوار خاکستری رنگ است . پس ما باید برای مشاهده پارامتر ها باید بر روی نام آن در لیست کلیک کنیم .
در این حالت نیز پارامترهای آبجکت ما به هم متصل اند و تغییر یکی باعث تغییر اندازه در بقیه می گردد اگر هم بخواهیم این تغییرات را بر روی یک آبجکت اعمال کنیم باید بر روی دکمه make unique کلیک کنیم.
تفاوت کپی reference و instance در چیست ?
همانطور که گفتم وقتی که یک آبجکت از نوع reference را انتخاب کنیم نوار انتخاب ما به جای اینکه بر روی نام آبجکت باشد بر روی نوار خاکستری رنگ بالای کادر آن می باشد.
وقتی که شما یک مدیفایر مثلاً editpoly را بر روی آبجکت فعال در صفحه اعمال کنید هر کاری که با دستورeditpoly بر روی آن آبجکت انجام دهید مثلا قسمتی از آن را حذف کنید بر روی بقیه آبجکتها اعمال نمیشود.
حال اگر این مدیفایری را که برای یک آبجکت از نوع reference اعمال کردید را با کلیک و درگ کردن به زیر نوار خاکستری منتقل کنید مدیفایر به همه آبجکت ها اعمال میشود.
خوب برویم سراغ ستون controller در پنجره clone option
در حالت عادی وقتی که از یک آبجکت clone می گیرید ستونcontroller آن غیر فعال است. این قسمت در صورت فعال میشود که ما چندین آبجکت را همزمان کپی بگیریم و آن آبجکت ها با هم group باشند. برای مثال در صفحه 2 آبجکت ترسیم میکنیم و آنها را با هم انتخاب میکنیم.
از منوی group با کلیک بر روی گزینه group آنها را در یک گروه قرار می دهیم. وقتی که بر روی آبجکت ها عملیات group را اعمال کنید آنها در یک گروه قرار میگیرند و به تنهایی قابل جابجایی نیستند. اگر بخواهید آنها را به تنهایی جابجایی کنید باید بر روی گزینه ungroup کلیک کنید.
یا اینکه بر روی open در منوی group کلیک کنید. در حالت ungroup، گروهبندی آبجکت ها از بین میرود. اما در حالت open می توانید آبجکت ها را باز کنید. آنها را جابجا کنید . یا مقادیر آنها را تغییر دهید. وقتی که گروه close باشد نمیتوانیم مقادیر آن را تغییر دهید و باید گروه open باشد.
خوب بعد از گروه بندی آبجکت ها shift را پایین نگه میداریم و آبجکت گروه بندی شده مان را جابجا می کنیم. در پنجره clone option ستون controller فعال شده است که میتوانیم کنترل کردن آبجکت ها در گروهمان از نوع copy باشد یا از نوع instance.
بخش پایانی
شما میتوانید ستون object را از نوع copy تنظیم کنید . ستون controller را در حالت instance تنظیم کنید . تعداد کپی ها را می توانید بر روی 2 بگذارید. خوب حالا بر روی ok کلیک میکنیم.
اگر group مان را open کنیم و پارامترهای یکی از آبجکت ها را در گروه تغییر دهیم و بر روی همان آبجکت در گروه دیگر ما هیچ تغییری اعمال نمیشود چراکه نوعی کپی ما در بخش object از نوع copy بوده است.
اما اگر همان آبجکت را در گروهش move, rotate ,scal و … کنیم بر روی آن آبجکت در گروههای دیگر نیز این عملیات اعمال میشود چراکه ستون controller از نوع instance بوده است.