ایجاد یک انفجار مبتنی بر ذرات با FumeFX
() translation by (you can also view the original English article)
در این آموزش یاد میگیریم که چطور انفجار ایجاد کنیم. این موضوع خیلی جالبی هست، چون نمیتوانیم فرآیند مشخصی را برای ساخت انفجار تعریف کنیم. هر چقدر که ابزار و خلاقیت خود را بکار میگیرید، هر بار نوع متفاوتی از انفجار را بدست میآورید.
مقدمه
در این آموزش، به شما نشان خواهم داد که چطور انفجار نشان داده شده در پیشنمایش بالا را با استفاده از 3ds max و پلاگین FumeFX ایجاد کردم. روشهای مختلفی برای رسیدن به این افکت در FumeFX وجود دارند، اما ما میخواهیم از ذرات برای ساخت این انفجار استفاده کنیم.
برای همین منظور میخواهیم از سه سیستم Particle Flow (جریان ذرات)، یک سیستم Particle Source (منبع ذرات) برای FumeFX، سه نور استاندارد (یک نور نقطهای هدف و دو نور omni) و موتور رندر پیشفرض Scanline (پویش ردیف به ردیف) استفاده کنیم.
یادداشت ویرایشگر: در صورتی که میخواهید با تصاویر رزولوشن بالا پیش بروید، میتوانید آنها را از زیر دانلود کنید:



1. ایجاد سیستم جریان ذرات (Particle Flow) و گرانش
مرحله 1
برای ایجاد انفجار، ذرات انتخاب خیلی خوبی هستند، چون میتوانیم حرکت ذرات را به آسانی کنترل کنیم و اینکه ذرات آتش و دود را بر اساس زمانبندی بوجود آمدن خود تولید میکنند. همینطور تعداد و سرعت ذرات مشخص میکند که چقدر انفجار بزرگ است. بنابراین برای ساخت سیستم شبیهسازی Particle Flow مناسب برای این منظور، مراحل زیر را دنبال کنید:
دو روش برای باز کردن پنجرهی شبیهساز Particle Flow وجود دارد:
- کلید 6 را روی صفحه کلید بزنید.
- به منوی Graph Editors بروید و Particle View را انتخاب کنید.
برای ساخت یک جریان پارتیکلی استاندارد، این مراحل را دنبال کنید: روی مرکز پنجره Particle Flow کلیک راست را بزنید و به منوی New بروید و در Particle System ، گزینه ی Standard Flow را انتخاب کنید.
مرحله 2
منبع جریان پارتیکلی (PF Source 01) را در موقعیت زیر قرار دهید:
Position (موقعیت): X : 0.0 | Y : 0.0 | Z : 6.543
Rotation (چرخش): X : 0.0 | Y : -5.358 | Z : 0.0
مرحله 3
یک سیستم جریان استاندارد (Standard Flow) با عنوان PF Source 02 بر اساس مراحل بالا ایجاد کنید و آنرا در موقعیت زیر تنظیم کنید:
Position (موقعیت): X : 0.0 | Y : 0.0 | Z : 6.543
Rotation (چرخش): X : 0.0 | Y : 0.0 | Z : 0.0
مرحله 4
نهایتا یک سیستم جریان استاندارد (Standard Flow) با عنوان PF Source 03 بسازید و آنرا در موقعیت زیر قرار دهید:
Position (موقعیت): X : 0.0 | Y : 0.0 | Z : 6.543
Rotation (چرخش): X : 0.0 | Y : 13.213 | Z : 0.0
مرحله 5
حالا یک پیچش فضایی گرانش (Gravity) ایجاد کنید. برای ایجاد پیچش فضایی گرانش، به منوی Create Panel بروید و در Space Warps ، گزینه Forces را انتخاب کنید. روی دکمه Gravity کلیک کنید و با کشیدن آن در صفحه نمایش viewport آنرا ایجاد کنید.
و سپس موقعیت را مثل زیر تنظیم کنید:
Position (موقعیت): X : 50.0 | Y : 0.0 | Z : 0.0
Rotation (چرخش): X : -180.0 | Y : 0.0 | Z : 0.0
مرحله 6
پیچش فضایی Gravity را انتخاب کنید و سپس به پنل Modify بروید و تغییرات زیر را به پارامترهایش اعمال کنید:
تحت بخش Force ، مقدار Strength را روی 1 و مقدار Decay را روی 0 تنظیم کنید.



2. ویرایش سیستم جریان پارتیکلی Particle Flow
مرحله 1
حالا میخواهیم هر یک از سیستمهای Particle Flow را ویرایش کنیم.
سیستم PF Source 01 را انتخاب کنید، به پنل Modify بروید و تغییرات زیر را به پارامترها اعمال کنید.
Emission (انتشار):
- سایز لوگو: 10
- Icon Type (نوع آیکون): Circle (دایره)
- Diameter (قطر): 20
Quantity Multiplier (مضرب کمیت):
- Viewport 100.0%
- Render 100.0%
نکته: در صورتی مقدار Viewport را روی 50% حفظ کنید، فقط 50 درصد از ذرات را در پنجره نمایش میدهد و بهمین علت پلاگین FumeFX هم فقط دود را با 50 درصد از ذرات ایجاد میکند. پس همیشه این پارامتر را روی 100% حفظ کنید.
System Management (مدیریت سیستم):
- Upper Limit (حد بالا): روی Maximum قرار داده شود.
- Viewport (درجه ادغام در پنجره نمایش): Frame
- Render (درجه ادغام در رندر): Frame
نکته: درجه ادغام کوچکتر میتواند دقت را بهبود بخشد، اما به بهای زمان مورد نیاز برای انجام محاسبات. اما اینجا در این مورد نگرانی نداریم، چون سیستم پارتیکلی ما خیلی پیچیده نیست.
Script (اسکریپت): بهمین صورت آنرا حفظ کنید. (حقیقتش من خودم به این بخش علاقهای ندارم)
مرحله 2
کلید 6 را بزنید تا پنجره Particle View را باز کنید و این تغییرات را اعمال کنید.
Birth 01:
- Emit Start (شروع انتشار): 2
- Emit Stop (توقف انتشار): 3
- Amount (مقدار): 11
- گزینه Subframe Sampling تیک خورده باشد.
گزینه Position Icon 001 را بهمان صورت حفظ کنید.
Speed 01 (سرعت):
- Speed (سرعت): 300.0
- Variation (تغییرات): 50.0
- Direction (جهت): Along Icon Arrow (در راستای فلش آیکون)
- Reverse تیک خورده باشد.
- Divergence (واگرایی): 21.0
یک اپراتور Force و یک اپراتور Delete را کلیک کنید و بکشید و وارد event کنید. پارامترها را بصورت زیر تنظیم کنید:
Force 01:
تحت بخش Force Space Warps، روی دکمه By List کلیک کنید و از فهرست Gravity001 را انتخاب کنید. مقدار %Influence را روی 200 قرار دهید.
Delete 01:
- Remove (حذف شدن): By Particle Age (با سن ذره)
- Life Span (طول حیات): 30
- Variation (تغییرات): 35
Display 001:
- Type (نوع): Ticks (علامت)
مرحله 3
PF Source 02 را انتخاب کنید، به پنل Modify بروید و پارامترها را بطوری ویرایش کنید که با تنظیماتی که برای PF Source 01 استفاده کردیم مطابقت کند.
حالا کلیک 6 را بزنید تا پنجره Particle View باز شود و تغییرات زیر را اعمال کنید:
Birth 02:
- Emit Start (شروع انتشار): 2
- Emit Stop (توقف انتشار): 3
- Amount (مقدار): 9
- تیک گزینهی Subframe Sampling (نمونهبرداری فریم) را تیک خورده حفظ کنید.
Position Icon 02 (موقعیت آیکون 2): این مقدار را به همین صورت حفظ کنید.
Speed 02 (سرعت):
- Speed (سرعت): 320.0
- Variation (تغییرپذیری): 100.0
- Direction (جهت): Along Icon Arrow (در راستای فلش آیکون)
- گزینه Reverse تیک خورده باشد.
- Divergence (واگرایی): 16.0
Force 02:
- Force Space Warps (پیچش فضایی نیرو): Gravity را اضافه کنید.
- Influence (تاثیر): 200
Delete 02:
- Remove (حذف شدن): By Particle Age (با سن ذره)
- Life Span (طول حیات): 30
- Variation (تغییرات): 50
Display 02:
- Type (نوع): Ticks (علامت)
مرحله 4
PF Source 03 را انتخاب کنید، به پنل Modify بروید و دوباره پارامترها را مشابه با تنظیمات PF Source 01 ویرایش کنید.
حالا کلید 6 را بزنید تا پنجره Particle View باز شود و این تغییرات را به آن اعمال کنید:
Birth 03:
- Emit Start (شروع انتشار): 2
- Emit Stop (توقف انتشار): 3
- Amount (مقدار): 8
- گزینه Subframe Sampling (نمونهبرداری فریم) را تیک خورده حفظ کنید.
Position Icon 03 (موقعیت آیکون 03): این مقدار را به همین صورت حفظ کنید.
Speed 02 (سرعت):
- Speed (سرعت): 300.0
- Variation (تغییرپذیری): 200.0
- Direction (جهت): Along Icon Arrow (در راستای فلش آیکون)
- گزینه Reverse تیک خورده باشد.
- Divergence (واگرایی): 8.5
Force 03:
- Force Space Warps (پیچش فضایی نیرو): Gravity را اضافه کنید.
- Influence (تاثیر): 100
Delete 03:
- Remove (حذف شدن): By Particle Age (با سن ذره)
- Life Span (طول حیات): 30
- Variation (تغییرات): 50
Display 03:
- Type (نوع): Ticks (علامت)



3. ایجاد منبع Particle Source در پلاگین FumeFX
مرحله 1
میخواهیم از یک منبع Particle Source در پلاگین FumeFX استفاده کنیم تا انفجار را ایجاد کنیم.
برای ایجاد منبع پارتیکلی برای FumeFX، به پنل Create بروید، روی Helpers کلیک کنید و از لیست کشویی FumeFX را انتخاب کنید.
روی دکمه Particle Src کلیک کنید و کلیک را نگه دارید و آنرا روی پنجره نمایش viewport بکشید تا آنرا ایجاد کنید. و سپس نام آنرا از FFX Particle Scr01 به FFX Explosion Src تغییر دهید.
مرحله 2
آنرا در موقعیت زیر قرار دهید:
Position (موقعیت): X : 0.0 | Y : 0.0 | Z : 0.0
Rotation (چرخش): X : 0.0 | Y : 0.0 | Z : 0.0



4. یک Container در FumeFX ایجاد کنید
مرحله 1
حالا وقت آن رسیده که Container را در پلاگین FumeFX ایجاد کنیم. برای ایجاد Container، به پنل Create بروید، روی بخش Geometry کلیک کنید و از منوی کشویی FumeFX را انتخاب کنید.
روی FumeFX کلیک کنید و با کلیک و کشیدن آن در پنجره نمایش viewport یک container ایجاد کنید. نام آنرا از FumeFX01 به Explosion-Container تغییر دهید.
مرحله 2
Explosion-Container را در موقعیت زیر قرار دهید:
- X: -20.559
- Y: -12.908
- Z: 0.0



5. کانتینر FumeFX را ویرایش کنید
پنج بخش مهم در کانتینر FumeFX وجود دارد که میخواهیم آنها را ویرایش کنیم.
- A: بخش Gen - عمومی
- B: بخش Sim - شبیه سازی
- C: بخش Rend - رندرینگ
- D: بخش illum - روشنایی
- E: بخش Obj/Src - آبجکتها و منابع
مرحله 1
FumeFX را باز کنید، به بخش Gen بروید و پارامترهای زیر را برای هر بخش تنظیم کنید.
پارامترهای عمومی:
- Spacing (فاصلهگذاری): 0.7
- Width (پهنا): 500.0
- Length (طول): 500.0
- Height: 500.0 (ارتفاع)
- Adaptive (قابل تطبیق): On (فعال)
Output (خروجی):
- Start (شروع): 0
- End Frame (فریم پایانی): 100
- Exporting Channels (کانالهای خروجی): Fuel (سوخت) , Smoke (دود)
- Output Path (مسیر خروجی): روی دکمه کوچک کنار Output path کلیک کنید، یک فولدر جدید در درایو ذخیره خود بسازید و فایل کش با فرمت fxd را با عنوان Explosion_test_ در آن فولدر ذخیره کنید.
Playback (بازپخش):
- Play From (شروع پخش از فریم): 0
- Play to (پخش شدن تا فریم): 100
- Start Frame (فریم شروع): 0

مرحله 2
به بخش Sim بروید و پارامترهای زیر را برای هر بخش تنظیم کنید.
Simulation (شبیه سازی):
- Quality (کیفیت): 5
- Maximum Iteration (حداکثر تکرار): 200
- CFL Conditions (شرط ریاضیاتی کورانت-فردریشز-لهوی): 5.0
- Maximum Simulation Steps (حداکثر مراحل شبیهسازی): 1
- Advection Stride (گام پیشبینی): 0.5
- Time Scale (زمان اسکیل): 1.0
System:
- Gravity (گرانش): 0.05
- Vorticity (میدان مماس): 0.7
- X Turbulence (تلاطم): Animated* (انیمیشن شده)
توجه: ما میخواهیم پارامتر Turbulence را انیمیشن کنیم، چون میزان تلاطم بعد از فریم 20 کاهش می یابد. پس کاری که میکنیم این است که مقدار Turbulence را در فریم 0 تا 14 روی 2 تنظیم کنیم و در فریم 17، مقدار Turbulence را روی 0.5 قرار میدهیم و در فریم 20، مقدار Turbulence را 0.1 میکنیم.
Turbulence Noise (نویز تلاطم):
- Scale (اندازه): 3.0
- Frames (فریمها): 2.0
- Detail (جزئیات): 5.0
Blocking Sides (مسدود کردن طرفین):
- X : None | Y : None | Z : Both
Simulate Fuel (شبیهسازی سوخت):
- Fuel Buoyancy (شناوری سوخت): 0.1-
- Ignition (احتراق): 100
- Burn Rate (نرخ سوختن): 18.1
- Burn Rate Variation (تغییرات نرخ سوختن): 1.0
- Heat Production (تولید گرما): 10.0
- Expansion (توسیع): 1.5
- Fire Creates Smoke (آتشی که دود تولید میکند): تیک نخورده باشد
توجه: هیچ پارامتری از بخش Smoke (دود) یا Temperature (دما) را تغییر ندهید و آنها را بصورت پیشفرض حفظ کنید.

مرحله 3
به بخش Rend بروید و پارامترهای زیر را تنظیم کنید.
پارامترهای رندرینگ:
در این بخش چیزی را تغییر نمیدهیم.
Fire (آتش):
- Color (رنگ): Gradient (گرادینت)
- Opacity (شفافیت): 1.0
یادداشت ویرایشگر: میتوانید فایل گرادینت رنگ را از بخش ضمیمهها در بالای این صفحه دانلود کنید.
Smoke (دود):
- Ambient (محیطی): R: 0 | G: 0 | B: 0
- Smoke Color (رنگ دود): R: 66 | G: 66 | B: 66
- Opacity (شفافیت): 0.2
- Cast Shadows (سایه افکندن): تیک خورده باشد
- Receive Shadows (دریافت سایهها): تیک خورده باشد
توجه: همه پارامترهای دیگر را بصورت پیشفرض حفظ کنید.

مرحله 4
قبل از اینکه کار در بخش illum شروع کنیم، لازم است چند تا نور به صحنه اضافه کنیم. ما از سه نور زیر استفاده میکنیم.
- نور نقطهای Target Spot
- نور omni
- نور omni
با رفتن به بخش Create و سپس Lights و سپس Standard Lights، گزینه Target Spot را انتخاب کنید تا یک نور نقطه ای Target Spot ایجاد کنید.
Light Position (موقعیت نور): X: 642.252 | Y : -486.928 | Z: 932.155
Target Position (موقعیت هدف): X: -13.825 | Y: 0.0 | Z: 200.066
مرحله 5
سپس به پنل Modify بروید و تنظیمات نور را تغییر دهید:
- گزینه Shadows را فعال کنید.
- وارد منوی کشویی Shadow Parameters (پارامترهای سایه) شوید و گزینه Atmosphere Shadows (سایههای اتمسفری) را فعال کنید.
- Multiplier (مضرب): 0.6
- Light Color (رنگ نور): R: 255 | G: 255 | B: 255
توجه - بقیه موارد بصورت پیشفرض حفظ کنید.
مرحله 6
به بخش Create بروید و در Lights و سپس در Standard Lights، روی گزینه Omni کلیک کنید و آنرا به پنجره نمایش Viewport بکشید تا یک نور Omni ایجاد کنید و سپس موقعیت آنرا بر اساس مختصات زیر تنظیم کنید:
Position (موقعیت): X: 657.659 | Y: -557.434 | Z: 178.75
مرحله 7
سپس به پنل Modify بروید و تنظیمات نور را بصورت زیر تغییر دهید:
- گزینه Shadows را فعال کنید.
- به منوی کشویی Shadow Parameters بروید و گزینه Atmosphere Shadows را فعال کنید.
- Multiplier (مضرب): 0.3
- Light Color (رنگ نور): R: 255 | G: 255 | B: 255
توجه: بقیه موارد را به همان صورت پیشفرض حفظ کنید.
مرحله 8
یک نور Omni دیگر ایجاد کنید و موقعیت آنرا در مختصات زیر قرار دهید:
Position (موقعیت): X: 425.011 | Y: -677.873 | Z: 130.717
مرحله 9
مجددا به پنل Modify بروید و تنظیمات نور را تغییر دهید:
- گزینه Shadows را فعال کنید.
- به منوی کشویی Shadow Parameters بروید و گزینه Atmosphere Shadows را فعال کنید.
- Multiplier (مضرب): 0.15
- Light Color (رنگ نور): R: 255 | G: 255 | B: 255
توجه: بقیه تنظیمات نور را بصورت پیشفرض حفظ کنید.
مرحله 10
به پلاگین FumeFX برمیگردیم، به بخش illum میرویم و نورها را میکشیم و در فهرست Lights قرار میدهیم، سپس مقادیر را بصورت زیر تغییر میدهیم:
- گزینه Multiple Scattering (پراکندگی چندگانه) را فعال کنید.
- Maximum Depth (عمق حداکثر): 6
- Fire (آتش): 1.0
- Smoke Strength (نیروی دود) : 1.0
- Falloff (انحراف): 8.0



مرحله 11
مرحله قبل از اینکه دکمه simulation را بزنیم، تنظیم بخش Obj/Src است.
FFX Explosion Src را به فهرست Objects اضافه کنید. وقتی FFX Explosion Src را انتخاب میکنید، بخش دیگری با عنوان Particle Source Parameters (پارامترهای منبع پارتیکلی) ظاهر خواهد شد. حالا تمام سیستمهای منبع ذرات را به فهرست Particles اضافه کنید و پارامترها را بصورت زیر تغییر دهید:
Radius (شعاع):
- Radius (شعاع): 4.187
- Variation (تغییرات): 643.572*
میبینید که یک دکمه با عنوان Particle Radius (شعاع پارتیکل) درست زیر نوشته Var داریم. روی آن کلیک راست را بزنید و گزینه Enable (فعال کردن) را انتخاب کنید. حالا میبینید که پنجره نوشتاری پارامتر فعال شده است. پارامتر را به 0 تغییر دهید.
در صورتی که از این آپشن استفاده کنید، شعاع پارتیکل بصورت خودکار انیمیشن خواهد شد. میبینید همینطور که پارتیکل از حالت انتشار بسمت محو شدن میرود. اندازهی Particle Radius از مقدار بزرگ به کوچک انیمیشن میشود.
Velocity Multiplier (مضرب سرعت):
- Amount (مقدار): 1.0
- Variation (تغییرات): 10.0
Fuel (سوخت):
- Amount (مقدار): 100.0
- Variation (تغییرات): 10
Temperature (دما):
- Amount (مقدار): 300.0
- Variation (تغییرات): 10.0
Smoke (دود):
- Amount (مقدار): 10.0
- Variation (تغییرات): 10

6. شبیهسازی را شروع کنید
دکمه Simulation را فشار دهید. حدودا 10 تا 12 ساعت طول میکشد تا شبیه سازی 100 فریم انجام شود.
میخواهم یک چیز مهم را با شما در میان بگذارم. در صورتی که میخواهید با پلاگینهایی مثل FumeFX و RealFlow کار کنید، به یک سیستم بسیار قدرتمند نیاز دارید، چون در صورتی که روی صحنه بزرگی کار کنید و به چنین سیستمی مجهز نباشید، برنامه هر بار کرش میکند (دچار مشکل میشود و قادر به ادامه اجرا نیست) و شما هم قادر نخواهید بود که پروژه را سر وقت تحویل بدهید یا ممکن است اصلا نتوانید تحویل بدهید.
من از یک پردازنده Intel Core i7 - 2700K CPU @ 3.50GHz و 16 گیگابایت RAM استفاده میکنم و حدودا 10 تا 12 دقیقه طول میکشد تا یک فریم این انفجار رندر شود.



7. رندرینگ
وقتی که شبیهسازی تمام شد و تنظیمات صحنه را انجام دادید، به بخش تنظیمات رندر بروید (کلید F10). موارد FumeFX Fire و FumeFX Smoke را در بخش Render Elements اضافه کنید و سکانس را در رزولوشن HD 1280x720 رندر کنید.
8. کامپوزیت در سطح پایه
مرحله 1
افترافکت را باز کنید و سکانس تصاویری که در برنامه 3ds max رندر کردید را لود کنید.
میتوانید افکتهای زیر را به لایه Fire اضافه کنید.
- Color Balance برای ایجاد تعدیل رنگ
- Sharpen برای شارپ کردن
- Glow برای ایجاد درخشش (ترجیحا افکت Glow از پلاگین Genarts Sapphire)
مرحله 2
لایه Smoke را اضافه کنید و این افکتها را به آن اعمال کنید.
-
Brightness & Contrast برای تنظیم روشنایی و کنتراست
- Sharpen برای شارپ کردن









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