سلام برای فعالیت در این زمینه ها نرم افزار های افترافکت و تری دی مکس کاملا...
نگاهی ساده به مکانیزم تخریب اجسام
بررسی اصول اولیه و پایه درخصوص شکستن و خرد کردن در دنیای CG

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

خب پس باید همیشه در نظر داشته باشیم اگر قراره شبیه سازی انفجار رو انجام بدیم. باید در زمان کم انرژی زیادی رو آزاد کنیم. بطور مثال ویدیو زیر ارتباط بین زمان و انرژی آزاد شده رو در 2 سناریو متفاوت بهمون نشون میده.
مشخصات
مدت زمان : 11 ثانیه
کیفیت : 720p - HD
حجم : 5 مگابایت
تو خیلی از موارد هوا و ملکول های هوا عامل انتقال انرژی هستند. مثلا وقتی رعد و برقی به زمین برخورد میکنه. به خاطر اختلاف دمایی که بوجود میاد موج انفجار بوجود میاد و این موج باعث تخریب خیلی زیادی میشه. این موج انفجار همان انتقال دما بین ملول های هوا هست که باعث جنبش زیاد ملکول ها میشه. خب دوستان پس تا اینجای کار به این نتیجه میرسیم که وقتی قراره چیزی رو تخریب کنیم اولین سوالی که باید از خودمون بپرسیم اینه که : چه چیزی باعث این تخریب میشه ؟ چگونه کار میکنه؟ به چه جهاتی انرژی ازاد میشه و به چه مقدار؟ در مرحله بعد باید بفهمیم چگونه باید تخریب کرد. این بخش خیلی خیلی مهم هست و سختترین مراحل کار هم تو این مرحله انجام میشه.

مواد مختلف به خاطر ساختاری مختلف ملکولی و اتمی که دارند در مقابل نیروی زیاد، رفتارهای مختلفی از خودشون نشون میدم. بطور مثال اشیا کریستالی مثل شیشه حالت شکننده گی زیادی دارند و بر خلاف اون چوب دارای ساختار پیوسته و فیبر مانندی هست که اجازه نمی ده مثل شیشه خورد بشه.
خب اینجا دو تا سوال مطرح میشه :
خب اینجا دو تا سوال مطرح میشه :
- جسم ما چگونه خورد میشه ؟
- چگونه باید این کار را انجام داد ؟
خب جواب سوال اول بیشتر تجربی هست و باید دید جسم ما در دنیای واقعی چگونه نسبت به انرژی واکنش نشون میده. باید تحقیق کرد و اطلاعات جمع آوری کرد.
و اما جواب سوال دوم. چگونه باید تخریب رو انجام داد. دوستان چون ما قراره از نرم افزارها و پلاگین های فعال تو این زمینه استفاده کنیم باید در نظر بگیریم که باید تمام ساختارهای مورد نیاز رو تعریف کنیم. بطور مثال قبل از شبیه سازی باید بتونیم تعریف کنیم جسم ما چگونه خورد میشه. برای درک بهتر بذارید با مثال بریم جلو. فرض کنید قراره یک تنه درخت رو در معرض یک گلوله قرار بدیم.
اولین سوال: چه چیزی قراره باعث تخریب بشه ؟ حرکت سریع گلوله. خب میشه اینگونه استنباط کرد که حرکت سریع گلوله باعث شکسته شدن سریع بافت های چوب میشه. حالا سوال دوم: چوب چگونه واکنش نشون میده؟ برای جواب پیشنهاد میکنم ویدیو زیر رو ببینید.
مشخصات
مدت زمان : 3 ثانیه
کیفیت : 720p - HD
حجم : 800 کیلوبایت
چوب بخاطر بافتی که داره زیاد اجازه خورد شدن به خودش رو نمیده. و اگر هم خورد بشه در راستای بافت چوبیش خورد میشه. حالا میتونیم با این اطلاعات وارد نرم افزارمون بشیم و تمام موارد که نیاز هست رو شبیه سازی کنیم. برای اینکار اول گلوله رو به تنه درخت شلیک میکنیم. خیلی ساده یک sphere رو از یک استوانه در طول 10 فرم عبور میدهیم.

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

خورد کردن تنه درخت باعث به وجود اومدن یک مشکل میشه دوستان. باعث میشه دیگه مدل ما یک پارچه نباشه و وقتی وارد شبیه سازی داینامیکی میشه مثل یک تنه عمل نکه و تمام قطعات خورد بشن و بریزند روی زمین.
مشخصات
مدت زمان : 4 ثانیه
کیفیت : 720p - HD
حجم : 900 کیلوبایت
اینجا باید یک خاصیت جدید رو تعریف کنیم تا بتونیم تیکه های چوب رو به هم بچسبونیم و وقتی از همه جدا بشند که گلوله به اونها برخورد کرده باشه. من میتونم اسمش رو بذارم نیروی بین قطعات یا هر چیزی. با این کار میتونم تمام قطعات رو منسجم کنار هم داشته باشم. ولی باید این نکته رو در نظر بگیرید که برای این نیرو محدودیت بذارید. یعنی اگر گلوله وارد چوب شد بتونه نیرویی بین قطعات رو خنثی کنه و باعث خورد شدن قطعات بشه. برای این منظور من نیرویی بین قطعات رو درست می کنم تا قطعات به هم بچسبند. خط های آبی نیروی بین قطعات هستند که مانند یک طناب قطعات رو کنار هم نگه می دارند. خب در این شرایط اگر گلوله به سمت تنه پرتاب بشه چه اتفاقی می افته؟ تو ویدیو زیر خواهیم دید.

مشخصات
مدت زمان : 2 ثانیه
کیفیت : 720p - HD
حجم : 60 کیلوبایت
حالا که تنه درخت منسجم شده مانند یک جسم واحد عمل میکنه. تو این مرحله باید سیستمی رو پیاده کنیم تا وقتی گلوله رد میشه یکسری از نیرو ها حذف شوند تا چوب هایی که جلوی گلوله هستند خورد شوند. تو ویدیو زیر که تا حدودی slow motion شده می تونیم شاهد این قضیه باشیم.
مشخصات
مدت زمان: 3 ثانیه
کیفیت: 720p - HD
حجم: 200 کیلوبایت
حالا میخوایم کاری کنیم که تنه درخت به زمین هم چسبیده باشه تا کل تنه به حرکت گلوله واکنش نشون نده. خیلی ساده بین زمین و تنه رابطه برقرار می کنیم. خطوط قرمز بین زمین و تنه درخت رابطه برقرار کرده. و نتیجه میشه ویدیو زیر.

مشخصات
مدت زمان : 2 ثانیه
کیفیت : 720p - HD
حجم : 900 کیلوبایت
خب دوستان تا اینجا یاد گرفتیم که چطوری آبجکت رو برای تخریب آماده کنیم و در نهایت بتونیم سیستمی رو برای تخریب آماده کنیم. حالا اگر بخوایم کمی سختتر به قضیه نگاه کنیم، باید این سوال رو بپرسیم که چگونه باید یک دیوار به همراه پنجره رو تخریب کنیم. خیلی سریع این قضیه رو توضیح میدم و شک ندارم می فهمید باید چکار کنید.

ما چند جنس مختلف داریم که باید بدونیم چگونه این اجسام خورد میشن.
شیشه: خورد شدن تیز و کریستالی
دیوار سنگی: علاوه بر اینکه سنگ ها هر کدام یک قطعه برای تخریب هستند خودشان هم خورد می شوند.
چوب دور شیشه یا زوار: خورد شدن در جهت بافت چوب. در این شرایط باید برای هر قطعه کاری که در مثال انجام دادیم رو انجام بدیم و علاوه بر اون لازمه که رابطه ای بین شیشه و زوار - زوار و دیوار شکل بگیره. یعنی لبه های شیشه که با زوار درگیر هستند به زوار وصل بشند و زوار به دیوار.
دوستان کلیات این مبحث به زبان ساده همین نکاتی بود که گفتم. امیدوارم برای دوستانی که علاقمند به اینجور مباحث هستند مفید بوده باشه.
حتما تو نظرات شرکت کنید و هر نقد و انتقادی داشتید همینجا مطرح کنید.
تا مقاله و آموزشی دیگر بدرود
نظرات (44)
مصطفی رضایی
عالی بود. عالی ...
میدونی ناصر این مقالات چون بر گرفته از تجربیات شخصی نوشته میشن مطالعشون خیلی جذابه. چون انگار با مطالعه اونها مسیر سختی که نویسنده مقاله طی کرده رو ما میانبر میزنیم.
ناصر بحثی که شروع کردی خیلی جذابه. یک نتیجه گیری عالی هم در انتهای مطلب داشتی. نمونه تصویری که قرار دادی و برای تخریب آنالیزش کردی.
درضمن بزودی سعی میکنم توی تالار گفتگو یه تاپیک جدید بسازم و ویدئوهای آموزشی جذابی رو در همین خصوص برای نرم افزار 3ds Max قرار بدم که مطمئنم یک مجموعه ارزشمندی میشه.
عالی بود ناصر جان
خسته نباشی
ناصر اسلامی
خیلی ممنون که همیشه تو انتشار مقالات کمکم میکنی.
آره راستش و بخوای برای نوشتن این مقاله اصلا از نرم افزار حرف نزدم و بیشتر دوست داشتم تا بچه ها مفهوم رو دریابند.
با این مطلب تمام دوستان می تونند بفهمند که وقتی قراره تو نرم افزارشون دنبال ابزار مناسب بگردند چه چیزی رو باید یاد بگیرند و دنبال چه ابزارهایی باشند.
بی صبرانه منتظر انتشار این آموزش ها برای مکس هستم .
ممنون از حضورت مصطفی جان.
حمید.معمار
ناصر اسلامی
موفق باشی
میثم شجاعی
ناصر جان خیلی خوب و کامل بود ٬ ترکوندی
ناصر اسلامی
تشکر از حضورت عزیز
محمد رضا غلامی
خسته نباشی ، اطلاعات خوب و مفیدی بود
ناصر اسلامی
تشکر از حضورت عزیز
عرشیا
آقا خسته نباشی :) . عالی بود :) .
ناصر اسلامی
تشکر از حضورت عزیز
رسول شاکری
البته ناگفته نماند که پلاگین thinking particles برای 3dmax در این زمینه شاهکار عمل کرده.
ناصر اسلامی
آره شاهد بود بچه ها دنبال یه پلاگین هستند برای مایا. میدونی امیدوارم بچه ها با خوندن این مطلب بفهمند پلاگین باید چکار بکنه و ابزار مناسب خودشون رو پیدا کنند.
مکس هم که دیگه خودش انواع ابزارهارو برای این کار داره
ممنون از حضورت رسول جان
عبدالجلیل سلطانی
عالی , عالیه , بخاطر استفاده از نیروها در تخریب و اثر اون در اجسام مختلف , یه کار 100% آکادمیک بیس .
ممنون از آموزشهای ویژه ایی که همیشه زحمت میکشین .
ناصر اسلامی
ای کاش برای ما هم چنین مطالب اصولی هم بود. ما به سختی یاد گرفتیم امیدوارم دوستان استفاده کنند.
تشکر از حضورت عزیز
time
در مورد تجزیه ی آبجکتها یا همون فراگمنت هم می گفتی چون برای خیلی ها{از جمله خودم} سواله که چگونه آبجکتها این شیوه ی آرایش درونی رو به دست میارن!!!!؟؟
خسته نباشید
ناصر اسلامی
آره قبول دارم این اصول خیلی تو اموزش ها نیست.
ببین تجزیه آبجکت ها خیلی به ابزارت بستگی داره. همین که بدونی باید دنبال چه تخریبی باشی خودش نصف راه بقیه اش کار با چندتا گزینه بیشتر نیست.
ممنون از حضورت عزیز
Sharif Taghizadeh
ناصر جان عالی بود، خیلی وقت بود دنبال همچین مقاله ای بودم
آقای اسلامی فقط یه سوال، تو هودینی برای اینکه ما جسمی رو تخریب کنیم میشه خصوصیات دقیق یک آبجکت خاص و به جسمی که ساختیم برای تخریب اختصاص بدیم؟؟؟ مثلا دقیقا رفتارش مثل چوب باشه یا شیشه یا هر ماده ی دیگه ای؟؟ بعد این کار تو هودینی خیلی دشواری خاصی داره؟؟
ناصر اسلامی
راستش و بخوای هودینی چیزی رو تعریف نمی کنه و باید خودت دستی همه چیزهارو تنظیم کنی. مثلا چوب یه چگالی داره- یه روش تخریب داره- یه نیروی خاص درونی داره- و سایر خصوصیات دیگه اش هم برمیگرده به متریال و شیدر که وقتی چوب خورد میشه بافت داشته باشه و ادامه قضایا
کلا این کارها در کنار بار تکنیکی زیادی که داره نیاز به صبر و حوصله و تست زیاده تو هر نرم افزاری حالا شاید تو هودینی یکم بیشتر یا کمتر
ممنون از حضورت عزیز
محمد بودات
ناصر اسلامی
تشکر از حضورت عزیز
Emad
ناصر اسلامی
سیدعارف رضوی
ناصر اسلامی
احسان شمسی
خیلی وقت ها ما یک افکت رو تولید میکنیم ولی نمیدونیم در پشت پرده نرم افزار بر اساس چی کار میکنه؛ این میشه که اکثرا اون نتیجه ای که میخاهیم رو نمیگیریم ولی اگه بدونیم منطق کار به چه شکلیه باعث پیشرفت چند برابری توی کارمون میشه.
به عنوان نمونه علاوه مواردی که توی آموزشت بود این قضیه توی انیمیت هم هست.مثلا وقتی قوانین 12 گانه ی دیزنی رو بررسی میکنیم میبینیم تماما مسائل قیزیک و ریاضی ای هستن که به فرض تو دبیرستان خوندیم و چ بسا فقط درشون عنصر اغراق وجود داره.
اینطور آموزش ها به نظرم خیلی کلیدی و کاربردی هستن.
موفق باشی رفیق
ناصر اسلامی
معمولا بعد از این آموزش ها یه آموزش عملی و نرم افزاری هم می چسبه که وقت نشد متاسفانه
تشکر از حضورت احسان جان
madmaster_3d
مرسی
ناصر اسلامی
تشکر از حضورت
محمود عسگری
ناصر اسلامی
تشکر از حضورت
محمد ایازی
آقا ناصر عالی بود منتظر یه همچین مبحثی بودم ، اگه همین مبحث تو Houdini ادامه پیدا کنه عالیه چون خداروشکر مبحث تخریب تو Thinking Particles بستم و تخریب هودینی هم یاد بگیرم دیگه معرکه میشه فقط امیدوارم ادامه داشته باشه مثل مباحث Constraint & Friction و مباحث مفهومی در مورد voronoi و ...
باز هم تشکر ، راستی تولدتون هم مبارک باشه :)
ناصر اسلامی
ببین کل مطلب همین بود
خورد می کنی و روابط رو بین قطعات مشخص می کنی و بعد تو محیط داینامیکی همه رو به هم ربط میدی.
برای یادگیری می تونی از منو هودینی گزینه help/example file/dynamic node example
بعد دنبال مثال های constraint میگردی.
در مورد تولد هم خیلی خیلی ممنون بچه ها خیلی لطف دارند واقعا :C
تشکر از حضورت محمد جان
houdinian
بسیار مطلب جالبی بود سپاس گزارم.
فقط یک مشکلی که توی این شبیه سازی ها هست ناصر جان رفتار عجیب موتوره شبیه سازی bullet هست.
اگر شما همین شبیه سازی هایی که ویدیوهاش رو گذاشتین با موتور جسم صلب هودینی انجام بدین، شبیه سازی بسیار بسیار کند جلو میره و اگر از bullet استفاده کنید شبیه سازی پر از ایراد هایی نظیر:
پرش قطعات چوب
تداخل قطعات چوپ
قطعات چوب با سرعت بالایی به دور خودشون میچرخن
لرزش و حرکت های عجیب قطعات
و....
ناصر جان این جا تکلیف چیه؟ چیکار کنیم؟ bullet موتور خوبیه ولی خیلی باید باهاش سرو کله بزنید تا یک نتیجه ی معمول رو بهتون بده.
ناصر اسلامی
ممنون
ببین ارش موتور bullet برای شبیه سازی های تا حدودی دقیق هست. یعنی مثلا فرض کن موتور سبکی برای شبیه سازی هایی هست که نیاز نباشه خیلی دقیق باشه و سریع باشه. خب این خیلی خوبه
ولی یکسری مشکلاتی بوجود میاد.
برای رفع این مشکلات به نظرم سعی کن قطعات ریزی نداشته باشه. یا در نهایت Geometry Representation رو روی concave بذار یا روی همون convex hull یکسری از پارامترهارو باید تغییر بدی.
این کارها خیلی بیشتر سیستم رو درگیر میکنه آرش
ممنون از حضورت عزیز
سعید ابراهیمی
ناصر اسلامی
تشکر از حضور و حمایت همیشگیت
مهدی هادی
ممنون اقای اسلامی
اشنایی با علم شبیه سازی خیلی مفیده
دوستان اگ مثال رو انجام دادن قرار بدن
تشکر:)
ناصر اسلامی
نبی سروی
آکادمیک و سر حال ...
امیدوارم بتونم با وقت گذاشتن بیشتر به کار ببرمش ...
خسته نباشی رفیق
ناصر اسلامی
امیدوارم بترکونی و ترکیده نشی
ممنون رفیق
موفق باشی
محمد جواد کسایی
ناصر اسلامی
سلامت باشی و تشکر از حضورت
yousef barzgar
مرسی واقعا
خسته نباشید...
ناصر اسلامی
موفق باشی