ورود

نسخه کامل مشاهده نسخه کامل : آموزش * Max Script *



*Forgotten*
26-04-2009, 01:10
maxscript زبان داخلی 3dmax هستش که قدرت فوق العاده ای در مدلینگ ریگینگ و انیمیشن یا نور پردازی یا هر چیز دیگر دارد
شما هر چقدر هم روی استفاده از ابزارهای داخلی مکس مسلط باشید باز هم یک جا کم میارید
لذا مکس اسکریپت از جایگاه بسار مهمی در 3dmax برخورداره

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

من مکس اسکریپتو با کمک help و dvd های cgacademy یاد گرفتم و دارم یاد میگیرم البته help مکس اسکریپت خیلی کلی توضیح داده و بعضی از کدها درکشون تقریبا بدون مثال و توضیح غیر ممکن مگه رو ریاضیات خودتو قوی کنی

خلاصه اینکه اگر میخوای روی ریگگینگ و انیمیشن تسلط داشته باشی باید مکس اسکریپتو یاد بگیری

*Forgotten*
26-04-2009, 13:15
مکس اسکریپت دارای چند نوع پنجره برای بکار گیری و اجرای اسکریپتها میباشد

اولین اونها maxscript Listener که بیشترین کاربرد این پنجره زمانی است که مخواهید یک اسکریپت یا برنامه را شروع به نوشتن کنید
با استفاده از این پنجره میتوانید یک کد را یا خطی از کدهارااجرا کنید و همزمان جواب اونو دریافت کنید خوب اگر کد دارای ترکیب درستی باشد مکس اسکریپت یک جواب با خط آبی به آن میدهد

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

هر زمانی که یک اسکریپت اجرا میشود نتیجه کار را در این پنجره خواهید دید

معمولیترین روش اجرا در پنجره maxscript Listener این است که بعد نوشتن کد در حلی که مکان نما در جلوی کد قرار دارد enter را بزنید

maxscript Listener دارای دوقسمت است پنجره صورتی رنگ و سفید رنگ
اگر کد را در پنجره صورتی رنگ بنویسید و اجرا کنید جواب کد را در قسمت سفید رنگ خواهد داد
اگر کدر را در قسمت سفید رنگ بنویسید و اجرا کنید جواب آن را در همان پنجره سفید رنگ خواهد داد ,یعنی یک خط کد و یک خط جواب

این پنجره را میتوانید از منوی مکس اسکریپت باز کنید
-------
پنجره دیگر new script هستش که میتوان از منوی فایل maxscript Listener یا خود منوی Maxscript اونو باز کرد

با استفاده از این پنجره میتوانید کدهای خود را باهم بنویسید و یک جا اجرا کنید
برای اجرای کدها از منوی فایل در new script گزینه Evaluate All را بزنید ولی جواب کدهارا در پنجره maxscript Listener خواهید دید
------

با استفاده از گزینه open script میتوان اسکریپتی را که قبلا ذخیره شده باز کرد را بدون اجرا باز کرد

با استفاده از گزینه run script میتوان اسکریپتی را که قبلا ذخیره شده اجرا کرد این گزینه را میتوان در منوی فایل maxscript Listener یا منوی اصلی Maxscript مشاهده کرد


تمرین
====
پنجره maxscript Listener را از منوی اصلی maxscript باز کنید یا f11 را بزنید
در قسمت صورتی رنگ تایپ کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نکته:اگر قسمت صورتی رنگ دیده نمیشود این کار را انجام دهید,نوار کوچکی در maxscript Listener وجود دارد اونو به پایین بکشید


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

...........................

سوالی بود مطرح کنید

Borhan72
26-04-2009, 13:56
خوب شروع نمیکنی؟؟؟

omid_3dsmax9
26-04-2009, 14:25
خیلی تصمیم خوبی گرفتی دوست عزیز! ما منتظریم.. ولی پیشنهاد می کنم از پائین ترین سطح شروع کنی که اینجا بشه یک کلاس مخصوص مکس اسکریپت از مفدماتی تا پیشرفته.. :20:

*Forgotten*
26-04-2009, 19:21
به علت محدودیت کاربر جدید آموزشها قبل از قرار گرفتن در مبحث باید تا یید شوند لذا پستها دیرتر ارسال میشوند

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

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

با تشکر

*Forgotten*
27-04-2009, 07:43
میخام بعضی از قوانین یادگیری maxscript رو بگم ,البته برای اونایی که جدی میخان دنبال کنند.

.. یادگیری کتابهای ریاضی راهنمایی و دبیرستان
.. در عین حال بکار گیری اونا در maxscript

.. وتر مثلث به چه درد میخوره؟ خیلی خیلی مهمه برای maxscript فکرشو نمیکردید نه؟

.. مختصات xy...حتما توی کتابهای ریاضی مدرسه یه نگاهی بهش بندازید وگرنه تو maxscript کم میارید

.. هر چیزی تو maxscript یاد میگیرید حتما روی کاغذ اونو برای خود توضیح دهید

-------------------------------



قبل از شروع جدی maxscript باید بعضی از قانونهای محاسباتی maxscript را توضیح بدم.

maxscript برای محاسبه یک معادله اتکا زیادی به پرانتزها داره ( maxscript) , پس باید در استفاده از پرانتزها
وحتی در استفاده نکردن از آنها کاملا مسلط باشید. خیلی خیلی مهم "به کتابهای درسی ریاضی مراجعه شود"

MS مثل یک ماشین حساب میمونه

پرانتزها مثل یک مرز محاسباتی میمونند


اگر در یک محاسبه پرانتزی یا مرزی مشخص نکرده باشیم به این صورت محاسبه میشود
... ابتدا توان محاسبه میشود ^
... سپس تقسیم محاسبه میشود /
... سپس ضرب محاسبه میشود *
... سپس جمع و تفریق محاسبه میشود + - "که در این مورد آخر ترتیب محاسباتی لازم نیست"

همچنین اگر هر کدام از این عملگراها نباشد دیگری برای محاسبه مقدم خواهد شد , یعنی مثلا در یک محاسبه توان نباشد پس تقسیم مقدمتر است .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


ابتدا 2 به توان 5محاسبه مشود
سپس 7 تقسیم بر 8محاسبه میشود
سپس6ضرب در 4 محاسبه میشود
در آخر سر جمع وتفریق میکنیم

جواب
8.875

:20:

*Forgotten*
27-04-2009, 13:44
فرض کنیم می خواهیم در یک معادله ابتدا جمع انجام گیرد سپس ضرب وبعد بقیه معادله , در اینجاست که از پرانتزها استفاده میکنیم, یعنی یک مرز محاسباتی تعیین میکنیم.

مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

توضیحات بیشتر در مورد این مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*Forgotten*
27-04-2009, 22:44
خواندن کدها در MS دارای شرایطی است , که دانستن این مطلب بسیار مهم است

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

... اگر MS عبارتهای منطقی خود را در آن خط پیدا نکند (به هر دلیلی) به خطهای بعدی خواهد رفت. (در بعضی شرایط خطهای قبلی را نیزخواهد خواند) تا عبارت منطقی خود را پیدا کند تا جواب مناسب را بدهد, جواب درست یا error

... این شرایط برای خطهای بعدی نیز تکرار خواهد شد

... MS دارای سرعت فوق العاده بالایی در خواندن کدها میباشد
برای مثال: شما می خواهیدیک فضای بزرگ از ستارگان درخشان بسازید و نیاز به 4000 کره دارید با سایزهای گوناگون و قرار گرفتن آنها در مکانهای تصادفی,تاحالا فکر کردید به صورت دستی چقدر طول میکشه؟؟؟

اما این کار برای MS فقط چند لحظه است

برای درک بیشتر مطالب, بعضی توضیحات را با مثال می گم

مثال1


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


MS ابتدا متغیر a را برابر 10 قرار میدهد( پس خواندن خط اول تمام شد) جواب خط اول 10 است
سپس a را که همان مقدار 10 است در 5 ضرب کرده (پس خواندن خط دوم تمام شد) جواب خط دوم 50 است
10
50

مثال2


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MS ابتدا میخواهد b را در 2 ضرب کند مشکل اینجاست ک حرف b برای MS بی معنی است و عدد 2 در یک حرف مجهول قابل ضرب نیست( پس خواندن خط اول تمام شد) جواب خط اول یک خطا است -- No ""*"" function for undefine

متغیر b را برابر 15 قرار میدهد (پس خواندن خط دوم تمام شد) جواب خط دوم 15 است

بیایید مثال دوم را برای بار دوم اجرا کنیم , چه اتفاقی می افته ؟



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


کد بدون مشکل برای بار دوم اجرا خواهد شد, چرا؟؟
جواب خط اول 30
جواب خط دوم 15
ok
علت این است که زمانی که کد را برای بار اول اجرا کردیم خط اول با خطا مواجه شد اما در خط دوم مقدار b تعیین شد, این مقدار تا زمانی که برنامه 3dsmax فعال باشد در حافظه موقت ذخیره خواهد شد

زمانی که همین کد را برای بار دوم اجرا میکنیم چون مقدار b قبلا در اجرای بار اول تعیین شده در خط اول قرار خواهد گرفت و 15 در 2 ضرب میشود و جواب خط اول 30 است
------------------------------------------
پس می بینیم که هر کد باید در مکان مناسب خودش بکار برده شود تا نتیجه ای که میخواهیم را بما بدهد

برای آشنایی با سرعت وقدرت MS این کد را اجراکنید


از منوی maxscript گزینه newscript را انتخاب کنید,
کد را در پنجره باز شده کپی کنید
از منوی فایل پنجره بازشده evaluate all را بزنید
سپس در آخر سر play کنید



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

:5:

p30worldapm
28-04-2009, 14:23
ممنون
اينا خيلي عاليه
شرمنده همشون رو فهميدم به غير از اين يكي:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*Forgotten*
28-04-2009, 16:19
ممنون
اينا خيلي عاليه
شرمنده همشون رو فهميدم به غير از اين يكي:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



دوست عزیز dir مخفف direction هستش به معنی جهت و سمت وسو به طور کلی هم جهت شدن یک موضوع یا موازی شدن یک موضوع با یک محور را direction میگویند

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

*Forgotten*
29-04-2009, 02:28
اگر توجه کرده باشید من در بعضی کدها بعد از موضوع یک نقطه قرار میدم و سپس یک کد دیگه
مثل


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


به این کدهای کوچک در مکس اسکریپت Property میگن یا تنظیم کننده


مثال: ما یک کره داریم در یک کره تنظیماتی چون radius تعداد segment ها,slice وغیره داریم به اینها میگن property ی کره ما

ما یک باکس داریم در یک باکس ما تنظیماتی چون طول عرض ارتفاع تعداد segmentهای طول عرض ارتفاع و غیره داریم به اینها میگن property های بکس ما

ما یک موضوع داریم که به editable polygon تبدیل شده ما تنظیماتی چون vertexها polygonها extrode وغیره داریم به اینها میگن propertyهای موضوع من


برای دسترسی به propertyی یک موضوع بعد از آن نقطه یا dot قرار میدهیم سپس property ی موضوع را تایپ میکنیم




property ها یا تنظیم کننده ها اصولا دو تا کار در موضوعات اصلی انجام میدهند

1* با عث تغییر در تنضیمات موضوع میشوند

اگر property ی یک موضوع را بنویسیم سپس مساوی جلوی آن قرار دهیم و مقداری را بعد از مساوی قرار دهیم و اجرا کنیم ما باعث تغییر propertyی آن موضوع شدیم


مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

----------------------

2* باعث اطلاع از مقدار تنظیمها میشوند

اگر property ی یک موضوع را بنویسیم و تغییری در آن ندهیم با اجرای آن فقط information ی از مقدار آن property در آن موضوع به ما میدهد


مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

---------------------------


اصولا propertyها سه دسته اند

propertyهای مختص به یک موضوع
propertyهای سرتاسری یا Global
propertyهای مختص به یک کلاس یا دسته
--------------------

propertyهای مختص به یک موضوع
مثلا موضوعی مانند کره دارای radius یا شعاع هست اما نمیتوان اونو به یک باکس نسبت داد چون باکس دارای طول و عرض هستند و برعکس

propertyهای سرتاسری یا Global
مانند position _rotation_direction_scale و غیره

مثلا بیشتر موضوعات در مکس قابلیت اینو دارن که مختصات اونهار تغییر داد
بیشتر موضوعات در مکس قابلیت چرخش یا rotation دارن


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


propertyهای مختص به یک کلاس یا دسته

فرض کنیم ما نمیتوانیم یک دوربین را به یک موضوع editatble poly تبدیل کنیم اما یک موضوع هندسی یا geometry مانند سیلندر بکس کره وغیره قابل تبدیل هستند پس در دوربینها نمیتوان property ی editatble poly
پس این مخصوص geometryها هستند

:20:

Borhan72
29-04-2009, 16:43
خیلی عالیه...
قول میدم اگه تا آخرش همینطور خوب توضیح بدی یه آموزش pdf بسازم از حرفات...
ممنون:7:

*Forgotten*
30-04-2009, 22:42
بعد از توضیحات قبلی در مورد properties الان مشکل این جاست چطور بفهمیم که یک موضوع دارای چه propertyهای هست و نوع مقدارهایی که این propertyها قبول میکنه چیه

=========================================

سه نمونه از بیشترین مقدارهایی که در مکس اسکریپت کاربرد دارد شامل

*integer یا عددهای صحیح مثل 1 _ 2 _3 455_ 800 _10 _0 _1020

*float یا اعشاری مثل 2.5 _ 80.50 _ 13.0 _ 0.0 _ 1.0

*boolean یا درست و نادرست مثل true _false _on _off

........
بیشتر property ها این سه مقدارها را قبول میکند

مثال:

فرضا در propertyهای یک box هر سه این مقدارها مورد استفاده هستند

طول و عرض box مقدارهای Float را میپذیرند مثل 25.0 4.1 10.2
اگر یک مقدار عدد صحیح وارد شود به عنوان عدد اعشاری شناخته میشود

تعداد segmentهای یک box عددهای integer را میپذیرند مثل 5 10 15
ما نمیتوانیم تعداد segmentih ها را 2.5 کنیم اگر این عدد وارد شود به عنوان 2 آن رامیشناسد

روشن و خاموش کرد property ی realWorldMapSize در تنظیمات box توسط مقدارهای boolen یعنی true و false یا on ,off انجام میشود

============================================

برای اینکه بفهمیم در هر موضوع چه نو propertyهایی وجود داره باید از تابع


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


استفاده کنیم. طریقه استفاده در این مثال بیان شده

مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


================================
جواب این تابع همیشه از دو بخش تشکیل شده است


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*اسم propertyهایی که در این موضوع قابل استفاده است

*مقداری که هر property میتواند آن را بپذیرد مثل integer,float,boolean,.....

*Forgotten*
03-05-2009, 17:24
حتما با مفهوم random آشنا هستید ,یعنی به صورت تصادفی یا شانسی از بین یک مجموعه یک چیزی را انتخاب کردن.
در maxscript تابعی وجود داره به نام random که با استفاده از اون میشه دو عدد مختلف یا دو position مختلف را
randomize کرد.

مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


اما من اینجا مخوام دو عمل مختلف را randomize کنم نه دو عدد یا دو position را
فرض کنیم یک موضوع داریم و مخواهیم از بین rotation و position هر بار به صورت تصادفی یک حالت را انتخاب کنه
پس مینویسیم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*در قسمت اول اسکریپت>

اعداد صفر و یک را randomize کردیم

*در قسمت بعدی اسکریپت شروطی تعیین کردیم>

که اگر مقدار ran یک شد , جسم یا اجسامی که در حالت انتخاب باشند پوزیشن آنهارا تغییر دهد
اگر مقدار ran صفر شد جسم یا اجسامی که در حالت انتخاب باشند, بچرخند


*فرمول مربوط به حرکت دادن یک موضوع در مکس اسکریپت


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


حرکت موضوع به مقدار داده شده در محورهای مورد نظر


مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


در این مثال ما box را در محور x به مقدار 10 واحد حرکت دادیم
اگر این مثال را 20 بار دیگر اجرا کنیم با این کار box ما 200 واحد حرکت خواهد کرد هر بار 10 واحد



*چرخش موضوع به واحد درجه در محورهای تعیین شده


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


با استفاده از این تابع موضوع را در واحدهای درجه به مقدار لازم در محورهای مور نظر میچرخانیم
کلمه کلیدی eulerangles باید قبل از محورها وارد شود تا چرخش به میزان درجه محاسبه شود
اگر این مثال را فرضا 10 با اجرا کنیم box ما در محور x صد درجه خواهد چرخید و در محور z پانصد درجه

*علامت $ یعنی>

هر موضوع یا موضوعاتی که در حالت انتخاب باشند

=====
=====

حالا auto key را روشن کنید هر بار timeSlider را 20 فریم حرکت دهید و همچنین اسکریپت را اجرا کنید


>>>>>>>>>>>>>>>
تمرین:

با راندوم کردن مقدارهای move و rotation در مثال



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

آن را پیشرفته تر کنید

در همین تاپیک اونو قرار دهید
:31:

*Forgotten*
04-05-2009, 08:20
فقط یک توضیحو فراموش کردم در مورد کد


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این شکل دیگری از فرمول چرخش هستش که به صورت تک محوری عمل میکنه
صورت کلی به این صورت هستش


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

محاسبه به درجه خواهد بود

*Forgotten*
08-05-2009, 12:10
دستور FOR دستوری است که یک حالت loop یا حلقه تکرار ایجاد میکند
loop ها عملیات تکراری هستند که به maxscript میگن یک مجموعه فرمان را تکرار و اجرا کن
loop ها استفادههای زیادی برای کار با گروهای بزرگی از objectها دارند به طوری که فقط با یک گروه از فرمانها میتوان تغییرات خود را در تعداد زیادی از موضوعات ایجاد کرد

برای مثال :
شما میخواهید 50 box بسازید میتوانید کد مربوط به ساخت box را توسط دستور for پنجاه مرتبه تکرار کنید
این کار خیلی سریعتر نسبت به اینکه کد را پنجاه بار تایپ کنید

همچنین یکی دیگر از کاربردهای loop ها تغییر در properties ها موضوعات مختلف هست

چند نوع loop داریم اینجا یکی از پراستفاده ترین آنها را بیان میکنیم
صورت کلی فرمول


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مثال :

با اجرای این کد پنجاه جعبه ساخته خواهد شد
که دارای position های random هستند


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این کدرو در یک newscript کپی کنید سپس از منوی فایل گزینه evaluate all را بزنید

اگر قصد انیمیشن کردن این boxهارو دارید قبل از اجرای اسکریپت auto key را روشن روی فریم 20 قرار دهید سپس اسکریپت را اجرا کنید در آخر سر play کنید

....................................
درمورد loop ها بعدا بیشتر توضیح میدم

*Forgotten*
10-05-2009, 23:05
حتما با اصطلاح Variables یا متغیرها در زبانهای برنامه نویسی آشنا هستید
Variables یا متغیرها یک ویژگی مشترک دارند که به نام Scope معروف است
scope یا هدف یا دامنه ویژگی ای هست که یک حافظه کوچک در 3dsmax ایجاد میکند که مقادیر در آن حافظه ذخیره میشوند

در کل variable یا متغیرها حافظه هایی هستند که مقدارهای مارو در خود نگاه می دارن
اما چرا ما به متغیرها , متغییر میگوییم ,این یکی از ویژگی هاش هستش یعنی مقدارهای داخل آن میتوانند هر لحظه که ما بخواهیم تغییر کنند

مانند


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مقدار 10 در a ذخیره شده
یا
مقدار های ساخت یک باکس در متغیر mybox ذخیره شده

.................
بعد از این مقدمات بر گردیم به loops یا حلقه های تکرار

این صورت کلی که یادتون هست


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

قسمت var_name همون متغیر ماست یکی از ویژگیهای loops اینه که متغیر لحظه به لحظه تغییر میکنه
در فرمول بالا مقدار متغیر یک مقدار عددی هستش

به مثال زیر توجه کنید



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


در این مثال متغیر mytavan به این صورت تغییر میکند که >
اگر loop ما یک بار تکرارشود متغیر mytvan برار 1 خواهد شد
اگر loop ما برای بار دوم تکرار شود متغیر mytavan برابر 2 خواهد شد
اگر loop ما برای بار سوم تکرار شود متغیر mytavan برابر 3 خواهد شد
و به همین صورت بر اساس مقدار تکرارloop , متغیر آن مقدار را لحظه به لحظه میپذیرد

پس متغیر mytavan به صورت افزایشی مقدارهای 1 تا 5 را میپذیرد
پس نتیجه میگیریم عدد دو در تکرار اول به توان 1 میرسد
در تکرار بار دوم loop عدد دو به توان 2 میرسد و به همین صورت تا توان 5


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با استفاده از این ویژگی میتوان چنین مثالی زد


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا play را بزنید تا نتیجه کار را بعد از اجرای این script ببنید
ما در این اسکریپت box خود را در فریمهای

10
20
30
40
50

چرخاندیم هر بار 45 درجه

----------------------------------------------------

مثالهای خود را در همین تاپیک قرار دهید :5:

*Forgotten*
19-05-2009, 12:09
در این اسکریپت من یک موضوع رو در یک مسیر دایره ای با یک شعاع معین حرکت خواهم داد
و از توابع sin و cos استفاده میکنم


در اینجا فرض میکنیم شما با توابع مثلثاتی آشنا هستید ,اگر نه پس به کتابهای دبیرستان یه نگاهی بندازید



طبق قوانین مثلثات هر چی زاویه در cos به صفر نزدیکتر باشد مقدار cos افزایش می یابد و بر عکس
طبق قوانین مثلثات هر چی زاویه درsin به صفر نزدیکتر باشد مقدار sin کاهش می یابد و بر عکس



طبق این دو قانون اگر یک موضوع که در یک مسیر دایرهای حرکت میکند اگر از مختصات x کم شود به مختصات y اضافه میشود و بر عکس
پس مینویسیم



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


توضیح توابع
========================


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


با استفاده ار این تابع میتوان تعیین کرد که
TimeSlider هم اکنون در چه فریمی قرار دارد


مثال


timeslider
را در فریم 50 قرار دهید سپس
بنویسید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


=========================================

as یک convertor هستش که بعضی از مقادیر خاص را به یک کلاس تبدبل میکند برای درک بهتر به مثال توجه کنید

مثال :
ما یک عدد اعشاری داریم مانند 2.5 مخواهیم اونو به یک عدد صحیح با Integer تبدیل کنیم یعنی عددی بدون اعشار, پس مینویسیم



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


یا تبدیل اعداد صحیح به اعشاری



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


---------------------
در اسکریپت اصلی ما چون مقدار currenttime یک مقدار زمانی هستش نه یک عدد صحیح پس نیاز به تبدیل داره
فرض کنیم currenttime ما در فریم 1f قرار دارد پس مینویسیم



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


اما ما یک مشکل داریم زمانی که فریم 1f رو به حالت عدد صحیح یا integer تبدیل میکنیم

عدد 160 را در جواب داد در حالی که ما انتضار داشتیم مقدار 1f رو به عدد صحیح 1 تبدیل کنه

علت این است که هر فریم به کوچکترین واحد خود تبدیل شده یعنی هر فریم برابر 160tick هستش



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


پس اسکریپتو اینجور اصلاع میکنیم



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


=============================================

مقدار c همان شعاع دایره خواهد بود

مقدار mm همان زاویه ما خواهد بود برای sin , cos



مقدارهای sin و cos مختصات ما در دو بعد x و y خواهند بود
مقدار z را صفر در نظر میگیریم

در آخر سر, موضوع که در حالت انتخاب هستش position اونو تعیین میکنیم

--------------


برای بکار بردن اسکریپت به اینصورت عمل کنید


*اندازه نوار زمان رو روی 360 فریم تنضیم کنید
time slider رو در فریم صفر قرار داده AutoKey را روشن کنید و اسکریپت را اجراکنید


*سپس time slider را در هر بار 45 فریم جلو برده و اسکریپت را اجرا کنید

یعنی در فریمهای



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

باید اسکریپت اجرا شود


*در آخر سر
play کنید

======================================

*Forgotten*
19-05-2009, 12:51
پروژه تعطیل شد:13:

*Forgotten*
13-02-2010, 18:43
سلام به همگی
میخوام بعد از مدتها به این تاپیک مرده یه حالی بدم

از این به بعد به علت سنگینی موضوع و دست تنها بودن هر وقت تونستم آموزشها رو میزارم

برای ساده تر شدن آموزشها اونهارو به صورت مثالهای کوچک تقسیم میکنم و بیشتر روی تکنیکهای ریگگینگ کار میکنم

*Forgotten*
13-02-2010, 22:49
خوب شاید برای خیلی سوال باشه چجور میشه حرکت یک جسم رو به دو موضوع متصل کنیم
راهای مختلفی وجود داره من آسونترینشونو آموزش میدم که سریع کارتونو راه میندازه
خوب ما برای این کار باید به باکس اول دو محور حرکتی z تنظیم میکنیم

1: سه تا باکس بسازید (باکس اول با حرکت هر یک یا هردو باکس دیگه واکنش خواهد داد) , (حرکتو به محور z محدود میکنیم)

2: باکس یک رو انتخاب کنید واز پنل Motion در کرکره Assign Controller حالت position:position_xyz رو انتخاب کنید

سپس بر روی علامت سوال کوچک در همین کرکره کلیک کرده و از پنجره باز شده Position list را انتخاب کرده ok کنید

حالت position:position_xyz به position:position List تغییر میکنه

سپس بر روی علامت مثبت کوچک کنار position:position List کلیک کرده تا باز شود و Available ا در حالت انتخاب در بیارید

دوباره بر روی علامت سوال کوچک در همین کرکره کلیک کرده و از پنجره باز شده position_xyz ا انتخاب کرده ok کنید

تا اینجا ما دو position_xyz به box01 تنظیم کردیم برای دیدنشون کرکره position:position List رو باز کنید

که اولی رو به box02 و دومین position_xyz رو به box03 متصل میکنیم

3: اتصال دو محور Z باکس اول به باکس دو و سه
خوب برای اینکار box01 رو در حالت انتخاب قرار دهید از منوی Animation گزینه Wire Parameter>Wire parameters رو انتخاب کرده

در این حالت یک پنچره کوچک نمایان میشه که ابتدا روی Transform سپس Position در اینجا دوتا position_xyz می بینیم که اولی را

انتخاب میکنیم که در آخر سر zPosition را انتخاب میکنیم با این کار یک خط کوچک نمایان میشه که باید اونو بر روی box02 کشیده و

انتخاب کنید بعد از این کار دو باره یک پنجره سفید رنگ ظاهر میشه که مربوط به box02 است که به ترتیب Transform>Position>ZPosition را انتخاب میکنیم

با انجام اعمال مرحله 3 پنجره Parameter Wiring #1 ظاهر میشه که دارای دو بخش اصلی هست
حالا باید دقت کنید که اگر اسم box01 در بالای پنجره در بخش چپ قرار دارد فلشی که جهت اون به سمت چپ است انتخاب کنید
گر اسم box01 در بالای پنجره در بخش راست قرار دارد فلشی که جهت اون به سمت راست است انتخاب کنید
بعد از انتخاب فلش بر روی Connect کلیک کنید , با این کار box02 باید box01 رو در محور z کنترل کنه


همه اعمال مرحله سه رو برای box03 هم تکرار کنید با این تفاوت که Position_xyz دومی رو برای box03 انتخاب کنید

بعد از اتمام کار پنجره هارو ببندید و سعی کنبد box02 یا box03 را به صورت مجزا و یا باهم در محور Z حرکت دهیم
میبینید که box01 به حرکت دو باکس دیگر واکنش میده و حرکتشونو دنبال میکنه

*Forgotten*
17-02-2010, 13:34
میخام تو چند تا آموزش ریگینگ ساده یک موتور سیکلت به صورت کامل توضیح بدم


--------------------------------------------------------------------------------------------
*ریگینگ داخلی*


1: ساخت ساختار کلی
2: تنظیم HELPERS به ساختار کلی
3:اتصال ساختار کلی به HELPERS
4:لینک و ساخت واکنشهای مربوط به HELPERS
5:کنترل فرمان موتور سیکلت توسط پنجره wireparameters و اسکریپت نویسی
--------------------------------------------------------------------------------------------
*مجبور کردن تایرها به دنبال کردن پستی و بلندیهای زمین *


برای این کار نیاز به اسکریپت نویسی داریم اما من این مرحله از کار رو توضیح نمیدم فقط اسکریپت رو براتو به صورت آماده میزارم تا فقط اجراش کنید شاید در آموزشهای دیگه این اسکریپت رو توضیح بدم چون توضیحات طولانی میخاد
--------------------------------------------------------------------------------------------
*تنظیم موتور سیکلت به یک لاین*

این مرحله از کارو حتما همه میدونن, استفاده از تابع Path constrain برای ساخت مسیر موتور سیکلت
--------------------------------------------------------------------------------------------
*چرخاندن تایرها متعادل با حرکت موتور سیکلت*

این آخرین مرحله این آموزش خواهد بود که با اسکریپت نویسی انجام میدم همچنین آموزش خود اسکریپت
--------------------------------------------------------------------------------------------



به زودی قسمت اول آموزش رو میزارم

*Forgotten*
18-02-2010, 09:23
قبل از شروع آموزش فایل اولیه که شامل اسکلت اصلی است رو از اینجا دانلود کنید ( ساخته شده با 3dsmax 9 )





برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



جاگذاری HELPERS

**تایر جلو**

1: از پنل helpers دو تا dummy یکی بزرگ یکی کوچک بسازید

بزرگتر رو اسمشو بزارید MS_dum
کوچکترو بزارید front_body_dum

MS_dum رو با ابزار Align در Front_wheel pivot , تایر جلویی تنظیم کنید

front_body_dum با ابزار Align در FRONT_BODY pivot در حالی که هر سه چک باکس Align Orientation (Local
تیک خورده تنظیم کنید با این تنظیم front_body_dum حدود -30 درجه خواهد چرخید

حالا یک سایکل با نام Front_wheel_dum با شعاع 4.507 بسازید و مقدار steps یک بزارید

Front_wheel_dum رو با ابزار Align در Front_whee pivot تایر جلویی تنظیم کنید

تا اینجا جاگزاری helpers در تایر جلو تموم شده
************************************************** ****************

**تایرعقب**

یک سایکل با نام Back_wheel_dum با شعاع 4.507 بسازید و مقدار steps یک بزارید

از پنل shapes حالت TEXT رو باز کرده و تایپ کنید <Look< سایز رو 2.6 قرار دهید و اسمشو بزارید Lookme و از پنل
pivot hirrarchy بزارید Center TO Object

Back_wheel_dum و Lookme رو با ابزار Align به Back_wheel , تایر عقبی تنظیم کنید


تا اینجا جاگذاری helpers در تایر عقب تموم شده




[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



************************************************** ****************
**plane ها و rectangle های اسکریپت شده برای حرکت روی پستی بلندیهای زمین**

دوتا plane با طول و عرض 13 و 35 بسازید و اسم یکی رو بزارید g1 , ویکی دیگه رو g2

مختصات g1 رو بزارید
x= 20.341 y= 0 z= -13.014

مختصات g2 رو بزارید
x= -26.21 y= 0 z= -13.014

هر دو plane دقیقا می افتن زیر تایر جلو و عقب


از قسمت shapes دوتا rectangle با طول و عرض 15 و 44 بسازید و اسم یکی رو بزارید Laser1 , ویکی دیگه رو Laser2


مختصات Laser1 رو بزارید
x= 20.341 y= 0 z= 100

مختصات Laser2 رو بزارید
x= -26.21 y= 0 z= 100

هر دو rectangle دقیقا می افتن بالای g1 , g2


تا اینجا جا گذاری مر بوط به plane ها و rectangle های اسکریپت شده برای حرکت روی پستی بلندیهای زمین تموم شد

************************************************** ****************

** کنترل کامل موتور سیکلت توسط MASTER**

برای حرکت موتورسیکلت به اطراف و گردش به چپ و راست ما به یک Object نیاز داریم که این کار بکنه اسمشو میزاریم MASTER

از قسمت shape یک سایکل با شعاع 90 بسازید step رو 6 بزارید و به اسم MASTER تغییر دهید
MASTER رو به editable spline تبدیل کرده و ورتکسهای 1 , 2 , 4 رو انتخاب کرده کلیک راست کنید و گزینه Corner رو انتخاب کنید , با این کار MASTER به صورت فلش در میاد که برای تشخیص جلو و عقب موتور سیکلت بکار میره



مختصات MASTER رو بزارید
x= 0 y= 0 z= 100


تا اینجا جاگذاری همه HELPERS ها تموم شده
قسمت بعدی اتصال اونها به همدیگر


فایل که شامل helper هاست را از اینجا دانلود کنید





برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


************************************************** ****************
************************************************** ****************
************************************************** ****************
************************************************** ****************




اتصال Helpers ها و اسکلت اصلی به هم



**قسمت جلویی موتور سیکلت**


لینک کردن Front_wheel با ابزار select and Link به Front_wheel_dum

لینک کردن Front_body با ابزار select and Link به front_body_dum

لینک کردن Front_wheel_dum با ابزار select and Link به front_body_dum

لینک کردن Back_body با ابزار select and Link به MS_dum

لینک کردن front_body_dum با ابزار select and Link به MS_dum

لینک کردن MS_dum با ابزار select and Link به g1


************************************************** ****************


**قسمت عقبی موتور سیکلت**


لینک کردن Back_wheel با ابزار select and Link به Back_wheel_dum

لینک کردن Back_wheel_dum با ابزار select and Link به Lookme

لینک کردن Lookme با ابزار select and Link به g2


************************************************** ****************

**شبیه سازی حرکات بدنه با تابع Look At Constrain در منوی Animation**

زمانی که تایر جلو رو بلند میکنیم قسمت جلویی بدنه بالا میره و قسمت عقب بدنه که تکیه گاه آن روی چرخ عقب است ثابت می مونه و برعکس
برای شبیه سازی این حرکت, معمولی ترین راه, استفاده از دو وضوعه که یکی از موضوعات به موضوع دیگر
با تابع Look At Constrain تنظیم شده باشد

برای این کار موضوع MS_dum را در حالت انتخاب قرار دهید
از مسیر Animation > Constrains > Look At Constrain را انتخاب کنید
و سپس بروی موضوع Lookme واقع در قسمت عقب موتور سیکلت کلیک کنید


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر شکل کلی موتور سیکلت بهم خورد, MS_dum را در حالت انتخاب قرار دهید و به این صورت عمل کنید:

1> به پنل Motion برید
2>از کرکره PRS parameters از سه دکمه زیرین Rotation رو انتخاب کنید
3>به کرکره LookAt Constrain برید
4>و چک باکس Keep Initial Offset رو تیک بزنید


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

همه چی به حالت اول برمیگردد ا گر باز هم مشکلی بود مطرح کنید

************************************************** ****************

**لینکهای مربوط به MASTER**


لینک کردن g1 با ابزار select and Link به MASTER

لینک کردن g2 با ابزار select and Link به MASTER

لینک کردن Laser1 با ابزار select and Link به MASTER

لینک کردن Laser2 با ابزار select and Link به MASTER

************************************************** ****************

**قطع کردن محور لینک شده Z از آبجکتهای g1 و g2 **

چون g1 و g2 به آبجکت MASTER لینک شده پس در همه محورهای حرکتی xyz توسط MASTER کنترل میشه اما ما چنین چیزی نمی خواهیم ما می خواهیم MASTER موضوعات g1 و g2 رو فقط در محور xو y کنترل کنه و نه در محور z
چون محور z توسط پستی و بلندیهای زمین باید کنترل شه

برای قطع کردن کنترل محور z توسط MASTER در g1 و g2 به این صورت عمل کنید

--g1 رو در حالت انتخاب قرار دهید
--به پنل Hierarchy بروید
--بر روی دکمه Link Info کلیک کنید
--به کر کره Inherit بروید
--از قسمت Move چک باکس محور Z را خالی کنید

====

--g2 رو در حالت انتخاب قرار دهید
--به پنل Hierarchy بروید
--بر روی دکمه Link Info کلیک کنید
--به کر کره Inherit بروید
--از قسمت Move چک باکس محور Z را خالی کنید


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



بعد از این کارها با حرکت MASTER در محور Z موتو سیکلت هیچ حرکتی در محور Z نخواهد داشت

اینم فایل سوم که تا 60 درصد ریگ شده




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



************************************************** ****************
************************************************** ****************
************************************************** ****************
************************************************** ****************



تا اینجا 60 درصد ریگ تموم شده می تونید یک تست حرکتی انجام بدی تا مشکلی نداشته باشه, فقط به چنتا نکته متذکر شم اینکه


--تا پایان ریگ از حرکت دادن اون خودداری کنید در این صورت فایل را دوباره باز کنید
--موتور سیکلت رو حتما فقط با موضوع MASTER کنترل کنید

--برای چر خاندن موتور سیکلت به چپ و راست حتما MASTER رو فقط در محور z بچرخونید
و از چر خاندن در محور های دیگه خوداری کنید

--قبل از باز کردن فایل دانلود شده System Unit تریدی مکس خودتون رو در حالت پیش قرار دهید تا مشکلی پیش نیاد





منتظر قسمت دوم آموزش باشید

*Forgotten*
21-02-2010, 17:51
این قسمت قسمت پایانی آموزش motorbike rig خواهد بود

قسمت دوم آموزش شامل شش مرحله خواهد بود:

1: ساخت یک spinner برای Objectهای در حال انتخاب

2: کنترل فرمان موتور سیکلت توسط یک SPINNER

3: بکار گیری اسکریپت برای حرکت موتور سیکلت روی زمین
(البته این اسکریپت فعلا آموزش داده نمیشه فقط به صورت آماده قرارش میدم)

4: اتصال موتور سیکلت به یک لاین برای ساخت مسیر, توسط تابع PathConstrain

5: چرخش تایرها به وسیله اسکریپت , همراه با آموزش اسکریپت

6: animate کردن چرخش تایرها
================================================== =======

** ساخت یک spinner برای Objectهای در حال انتخاب **



ابتدا این فایل رو دانلود کنید, یا آخرین فایلی که در آموزش قبل گذاشتم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

-برای کنترل فرمان موتور سیکلت برای گردش به چپ یا راست از یک Spinner استفاده میکنیم

-محدوده گردش فرمان از -45 درجه تا 45 درجه خواهد بود

-ما spinner رو به آبجکت MASTER تنظیم خواهیم کرد

به این ترتیب عمل کنید :

1 : آبجکت MASTER رو در حالت انتخاب قرار دهید
2 : از منوی Animation گزینه Parameter Editor را انتخاب کنید

پنجره Parameter Editor شامل فرامینی هست برای ساختن Spinner ها (چرخشگر) یا Slider ها (لغزنده) روی موضوعاتی که در حالت انتخاب هستند


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای اضافه کردن spinner به آبجکت MASTER در پنجره Parameter Editor باید دکمه Add رو بزنید قبل از این کار باید تنظیماتی انجام بدیم
----
در پنجره Parameter Editor::

در قسمت Parameter Type باید روی Float باشد (منظور اعداد اعشاری)

در قسمت UI Type باید Spinner رو انتخاب کنیم

در قسمت Name یک اسم دلخواه برای spinner تعیین میکنیم مثلا spin_front

در قسمت Range کمترین و بیشترین مقداری که spinner ما باید داشته باشه قرار میدیم
در from تایپ کنید -45 و در قسمت To تایپ کنید 45 و مقدار Default یا پیش فرش رو 0 بزارید

در پایان بر روی Add کلیک کنید تا spinner به آبجکت MASTER اضافه شود
----

برای دیدن spinner در آبجکت MASTER در حالی که اونو انتخاب کردید به پنل Modify برید و کرکره Custom Attributes باز کنید , برای تست مقدار spinner رو تغییر بدید میبینید که بیشترین مقداری که میپذیره 45 و کمترین مقدار -45


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته با تغییر اون اتفاقی نمیفته چون باید آبجکت front_body رو به اون متصل کنیم








************************************************** ***************************
************************************************** ***************************
************************************************** ***************************

** کنترل فرمان موتور سیکلت توسط یک spinner

1:: خوب برای اینکار MASTER رو در حالت انتخاب قرار دهید از منوی Animation به مسیر زیر بروید
wire parameters > wire parameters...


2:: در این حالت یک پنچره کوچک نمایان میشه که ابتدا روی (object (editable spline سپس custom attributes و در آخر بر روی spin_front کلیک کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


3:: با این کار یک خط کوچک نمایان میشه که باید اونو بر روی Front_body کشیده و او نو
انتخاب کنید بعد از این کار دو باره یک پنجره سفید رنگ ظاهر میشه که مربوط به Front_body است که به ترتیب Transform>Rotation>y_Position را انتخاب میکنیم



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


4:: سپس پنجره Parameter Wiring #1 ظاهر میشه که دارای دو بخش اصلی هست
حالا باید دقت کنید که اگر اسم Front_body در بالای پنجره در بخش چپ قرار دارد فلشی که جهت اون به سمت چپ است انتخاب کنید

اگر اسم Front_body در بالای پنجره در بخش راست قرار دارد فلشی که جهت اون به سمت راست است انتخاب کنید
بعد از انتخاب فلش بر روی Connect کلیک کنید , با این کار spinner باید چرخش در محور front_body , Y رو کنترل کنه


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تصویر بزرگتر از لینک زیر دانلود کنید>>>>



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



=======

اما ما یک مشکل داریم زمانی که ما spinner رو تغییر میدیم میزان چرخش front_body خیلی زیاد هستش

علت این است که مقدار spinner به رادیان محاسبه میشه و میزان چرخش front_body به درجه محاسبه میشه

طبق این قضیه که یک رادیان برابر 57.296 درجه است >> 1radian = 57.296 degree , پس درپنجره

parameter Wiring #1 در بخشی از پنجره که اسم front_body در با لای آن نوشته شده است در پایین آن پنجره می نویسیم



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


سپس دکمه Update را میزنیم تا کد جدید اجرا شود . ما اونو به 57.296 تقسیم کردیم
سپس پنجره Parameter Wiring #1 را ببندبد

سپس با تغییر مقدار spinner اونو تست کنید میبینید که مشکل چرخش زیاد بر طرف شده

=======

فایل مر بوطه , تا این قسمت از آموزش رو از اینجا دانلود کنید







برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


************************************************** ***************************
************************************************** ***************************
************************************************** ***************************





** اسکریپت LASER **

ابتدا این فایل رو دانلود کنید که شامل:

موتور سیکلت که ریگ شده + زمین + لاین برای مسیر +چنتا دوربین برای بهتر دیدن حرکات






برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


بعد از باز کردن فایل از منوی Maxscript یک new script باز کنید و کد های زیر رو در اون کپی کنید
و از منوی File یا Tools (بستگی به ورژن تری دی مکس) گزینه Evulate All رو بزنید تا اسکریپت اجرا شه





برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



معمولا بعد از اجرا چیزی مشاهده نمیکنید اما اسکریپت اجرا شده و حالا پستی و بلندی های زمین رو دنبال میکنه


---- برای تست, آبجکت MASTER رو در محورهای x و y روی زمین حرکت دهید ----


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


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



************************************************** ***************************
************************************************** ***************************
************************************************** ***************************


** اتصال موتور سیکلت به یک Line برای ساخت مسیر, توسط تابع PathConstrain **


اینو دیگه خیلی ها باهاش آشنان پس زیا دتوضیح نمیدم

1: آبجکت MASTER رو در حالت انتخاب قرار دهید

2: از مسیر زیر تابع path constrain رو اجرا کنید

َAnimation > Constrains > Path constrain

3: سپس بروی Line کلیک کنید (موتور سیکلت در مسیر مورد نظر قرار میگیره )

4: از تنظیمات تابع Path constrain گزینه FOLLOW را تیک بزنید تا مسیر رو دنبال کنه


نکته مهم::در صورت استفاده از یک لاین دیگه , ابتدا و انتهای لاین از حاشیه زمین بیرون نره





************************************************** ***************************
************************************************** ***************************
************************************************** ***************************


**چرخش تایرها به وسیله اسکریپت**

زمانی که یک تایر یک دور 360 درجه ای میزنه , در واقع به اندازه طول محیط خود حرکت رو به جلو خواهد داشت

پس بر طبق این تعریف ما اول باید بدونیم که محیط تایرهامون چنده , چون شعاع هر دو تایر یکیه , پس فقط محیط یکی رو بدست می یاریم.

محیط یک دایره به این صورته: شعاع ضرب در دو ضرب در 3.14

pi همون 3.14 هستش


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا اگر محیط تایر بشه 94.2 پس در هر 360 درجه ای که تایر میچرخه به اندازه 94.2 حرکت خواهد داشت
پس بر طبق این تعریف باید بدونیم طول مسیر طی شده توسط موتور سیکلت چقدر هست تا میزان چرخش محاسبه بشه

چون مسیر ما یک لاین هستش پس باید طول لاین رو بدست بیاریم, پس به این صورت عمل کنید:



1:لاین رو در حالت انتخاب در بیارید
2:به پنل Utilities برید
3:بر روی دکمه Measure کلیک کنید
4:در قسمت Shape پایین اون نوشته Length:11704.156 که طول لاین ما خواهد بود

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تصویر بزرگتر از لینک زیر دانلود کنید>>>>


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

فرمولمو به این صورته

=====




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


که در این فرمول object همون تایر ما خواهد بود

<degrees_float> همون مقدار چرخش خواهد بود
<axis_point3> همون محور چرخش خواهد بود که به شش صورت کلی میتوان نوشت:




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


اگر بعد از چرخوندن تایرها مشکل در محور چرخش داشتید حالتهای دیگر رو هم امتحان کنید
محور
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید برای من درست کار میکنه

====

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


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


--node در اینجا موضوعی که به عنوان مختصات داده میشه قرار میدیم
--در پرانتز هم فرامینی که در این مختصات باید اجرا شوند قرار میدهیم

=====

بعد از توضیحات بالا حالا یک پنجره new script از منوی max script باز کنید و تایپ کنید:

شعاع تایرجلو 15 هستش پس :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



شعاع تایرعقب 15 هستش پس :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید





************************************************** ***************************
************************************************** ***************************
************************************************** ***************************
**animate کردن چرخش تایرها**


برای animate کردن تایرها timeslider رو به آخرین فریم میبریم جایی که موتور سیکلت به پایان مسیر میرسه
سپس Auto key رو روشن میکنیم
سپس این اسکریپتو برای تایر جلو اجرا میکنیم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و بعدش این اسکریپتو برای تایر عقب اجرا میکنیم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



فایل نهایی که animate شده است رو از اینجا دانلود کنید







برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


************************************************** ***************************
************************************************** ***************************
************************************************** ***************************



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


فایلها با تری دی مکس 9 ساخته شده

حق کپی با ذکر منبع مجاز می باشد



آموزش ما به پایان رسید امید وارم از این آموزش بهره برده باشید
:5:

*Forgotten*
12-04-2010, 20:45
سلام
یه مدتیه که نتونستم این تاپیکو بروز کنم البته یه جاییم که حتی با این اینترنت پست زدن هم عذاب آوره
بهر حال سعی میکنم این تاپیک به تاریخ نپیونده

SETJ
18-08-2010, 14:40
عزیز من تازه پیدات کردم. لطفا ادامه بده. منو تنها نذار.:19:

*Forgotten*
19-08-2010, 18:55
دوست عزیز این مبحث خیلی سنگین هستش و منم دست تنهام و قصد ندارم فعلا بصورت جدی ادامش بدم
شما پست های اولیه رو بخونید تا یکم راه بیفتید بعدش شروع به نوشتن اسکریپت های ساده بکنید

اگه به مشکل برخوردید یا سوالی داشتید تو همین تاپیک بپرسید در حد توانایی پاسخ میدم:20:

*Forgotten*
05-09-2010, 00:40
حرکت جسم در مکس اسکریپت به دو صورت کلی انجام میشه

حرکت بر اساس مختصات محوری روی xyz

حرکت به صورت مکانی یا local بر اساس محور xyz



توضیح در مورد حرکت لوکال:

حرکت به صورت local
در این حرکت ما مقادیری را به مrادیری که جسم در آن قرار دارد اضافه میکنیم
فرض میکنیم ما جسمی داریم که در فضای سه بعدی xyz قرار دارد و میخایم در محور x مقدار 2 واحد حرکت کنه این مقدار به مقداری که در آن قرار داره اضافه میشه
اگر کد رو 5 بار اجرا کنیم به مقدار قبلی هر بار 2 واحد اضافه میشه

کد برای حرکت local:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای جزئیات بیشتر سوال کنید

*Forgotten*
05-09-2010, 14:54
سیستم های کلی چرخش دو تا هستند
مختصاتی
local


خوب برای چرخش اجام در مکس اسکریپت چند نوع روش وجود داره درجه ,رادیان ........



local
بیشترین اونها که استفاده داره چرخش بر اساس درجه هستش منظور 0 تا 360

اما یادتون باشه 360 میتونه با صفر مساوی باشه 360 = 0
همچنین مقادیر چرخشی که وارد میکنید به مقدار قبلی چرخش جسم اضافه میشه

برای چرخش بر اساس درجه از فرمول زیر استفاده میکنیم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


مثال:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*Forgotten*
05-09-2010, 16:03
و حالا scale

مثل سیستم های دیگه دو نوع مقدار scale میتونیم داشته باشیم

axis
local

local scale

در اینجا مقدار اسکیل ما به مقدار قبلی اضافه نمیشه بلکه در اون ضرب یشه
اگه جسم ما مثلا مقدار قبلی اسکیل اون در محور z روی 1.5 بوده و مقدار وارد شده ما 3 باشه پس جسم به مقدار


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اسکیل خواهد شد

همچنین باید توجه داشت که جسمی که اسکیل نشده در مقدار استاندارد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
قرار دارد که در viewport این مقادیر رو به صورت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید میبینیم
چون مقدار اسکیل در حالت عادی یک عدد کوچکه و جابجایی از 0 تا 1 عدد بسیار کوچکیه اونو در 100 ضرب کرده

یعنی مثلا مقادیر
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید در viewport به این صورت دیده مشوند
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


کد:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*Forgotten*
05-09-2010, 20:10
حالا که از سر این سه تا غول چند بایتی سر در آوردید
براتون تکلیف شب دارم :31: البته زوری نیست

تو صفحه 2 این مبحث از random , randomize صحبت کردم حالا اسکریپتی بنویسید که این سه تا کدو move rotate scale در اون بکار ببرید و این اسکریپت باید جسمی که بهش میدیم حرکت چرخش و اسکیل اون جسمو random کنه

کدرو اینجا قرار بدید مشکلات رو مطرح کنید

*Forgotten*
06-09-2010, 14:37
[B]شما میتونید بسیاری از فرامین دکمه ها کرکره ها منوها سیستم انیمیشن و ......................... تو محیط مکس کنترل کنید یا غر فعال کنید یا اجراشون بکنید و............

برای این کار شما به کلمه کلیدی MAX احتیاج دارید بعد از اون کافیه فرمان مورد نظر رو کنارش تایپ کنید و با اجرا کردن,
عمل مورد نظر انجام میشه


فرضا با فرمان زیر پنجره open file باز میشه موجود در منوی فایل




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



یا این فرمان باعث play شدن نوار زمان میشه و نوار زمان حرکت میکنه




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



مثالهای دیگر:




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




شکل کلی فرمان




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



برای اینکه بفهمید چه فرامینی با کلمه کلیدی max اجرا میشه میتونید از کد زیر استفاده کنید




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




و اگر بخاید فرامین موجود در زیر گروه یک فرمان رو بدونید

میتونید چنین مثالی بزنید




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


تمام فرامینی که مربوط به تایم میشن نشون میده


================================================== ===========
[COLOR="DarkRed"] این هم تمام فرامین قابل استفاده در مکس 2010 بهمراه توضیح انگلیسی هر فرمان
================================================== ===========


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

N O V A L I S
12-04-2011, 12:39
دوستان اگر کسی فایل های پست 23 و 24 رو بذاره ممنون میشم.. لینک ها کار نمی کنند.
فکر کنم باید 14 تا فایل/تصویر باشه..

*Forgotten*
13-04-2011, 15:48
دوستان اگر کسی فایل های پست 23 و 24 رو بذاره ممنون میشم.. لینک ها کار نمی کنند.
فکر کنم باید 14 تا فایل/تصویر باشه..

NOVALIS عزیز متاسفانه فایلها در دسترسم نیست

هر سوالی داشتی همینجا مطرح کن حتما بهت پاسخ میدم

با تشکر

*Forgotten*
27-04-2011, 08:48
با سلام به دوستان تریدی کار
پلاگین جدیدی تو بازار اومده با نام
VN Plugin
این پلاگین مخصوص طراحی داخلی و خارجی بوده و موتور رندر وی ری رو ساپورت میکنه.
قابلیت های کلی این برنامه بصورت زیر هستش:

1-دارای آرشیو آبجکت ها و متریال های وی ری هستش
2- آبجکت ها براحتی وارد محیط مکس می شوند بدون نیاز به استفاده از دستور مرج
3- آبجکت ها بر روی دیوار، میز و یا ... قابل کشیدن هستند و پس از ورود به صحنه نیازی به جابجایی و چرخاندن آنها نیست.
4- پیووت تمامی آبجکت ها بر روی قسمت تحتانی آنها قرار دارد که موجب می شود در هنگام استفاده از اسکیل آبجکت از روی جای خود جابجا نشود.
5- متریال ها دارای زمان نسبی رندر می باشند که به کاربر امکان استفاده از متریال های سبک را می دهد.
6- تمامی تکسچر های مربوط به آبجکت ها و متریال ها بصورت اتوماتیک لود می شوند.
7- 159 محیط رندر داخلی مربوط به آرک اینتریورها در داخل برنامه وجود دارد که کاربر می تونه با یک کلیک تنظیمات رندر خود را به این تنظیمات تبدیل و یا از نورها و یا دوربین های صحنه مورد نظر خود استفاده کنه.
8- محیط کاملا ویژوال هستش.

و ........

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


lمنبع :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


منبع دوم وبلاگ آقای وحید (geo_vahid)


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Qadiany
19-10-2011, 12:11
یاد گرفتن MaxScript با استفاده از help اون اگر ریاضی بلد باشید و کمی هم با برنامه نویسی آشنا باشید بهترین کاره. یک Reference عالیه. ولی اگه با برنامه نویسی آشنا نیستید کمی کارتون مشکل می شه. ولی با مطالعه و تمرین می تونید اونو یاد بگیرید.
زبان MaxScript در مقایسه با زبانای بر نامه نویسی C++ , Pascal, VB, حتی QuickBasic (که خیلی قدیمیه) خیلی آسون و راحته
البته امکاناتشم کمتره به هر حال یک ابزار قدرتمند در داخل محیط Max به حساب میاد و می تونه رابط اطلاعات درون Max و بیرون محیط Max باشه.
در مورد سرعت MaxScript باید بگم که در واقع خیلی کنده ولی باز هم خیلی سریع تر از اون چیزیه که فکرشو می کنید. مثلا اگر Modifier Bend رو با MaxScript بنویسید خیلی کند تر از خود Bend مکس کار می کنه (تقریبا 10 برابر کندتر).MaxScript در مقایسه با زبان های برنامه نویسی دیگه خیلی کند تره چون داره به وسیله یکی از اونها اجرا میشه (احتمالا C++) ولی در مقایسه با دست شما خیلی سریعتره پس خیلی به درد بخوره.
هر کاری که بخواید با Maxscript انجام بدید باید یکی از دلیل های زیر رو داشته باشه :
- تعداد زیاد یک کار بخواد تکرار بشه و با دست حوصله و وقت زیادی بخواد.
- محاسبات ریاضی و فیزیکی به صورت زنده بخواد انجام بده مثل ریگبندی.
- یا اینکه یک مشکل خاصی باشه که با دست انجامش غیر ممکن یا مشکل باشه.
- یا اینکه بخاید تمرین کنید.
البته همه اینها در صورتی که خود Max این کارو انجام نده و یا ابزارایی براش نداشته باشه یا حداقل Script شما بخواد بهتر از اون و با امکانات بیشتری کار کنه.

دوست دارید بازم ادامه بدیم یا نه ؟
البته با Script نه با صحبتهای فرعی.

Qadiany
20-10-2011, 01:05
سلام.
چند تا نکته:
----------------------------------
اول یک سوال :
quat چطور کار می کنه ؟
$.rotation
----------------------------------
اگه حافظه زیاد اشغال شده بود و به Undo ها احتیاج نداشتید می تونید اونارو پاک کنید با تابع: ClearUndoBuffer
اگه بازم خواستید سبکسازی کنید تابع : gc
اگر خواستید یک کاری بدون ذخیره شدن در Undo انجام بشه اون رو با عبارت with undo false شروع کنید.




with undo false
(
$.pos.z += 10.0
)

Qadiany
20-10-2011, 02:20
سلام.
چند تا نکته:
----------------------------------
اول یک سوال :
quat چطور کار می کنه ؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
----------------------------------
اگه حافظه زیاد اشغال شده بود و به Undo ها احتیاج نداشتید می تونید اونارو پاک کنید با تابع: ClearUndoBuffer
اگه بازم خواستید سبک سازی کنید تابع : gc
---------------------------------
اگر خواستید یک کاری بدون ذخیره شدن در Undo انجام بشه اون رو با عبارت with undo false شروع کنید. مثلا :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
--------------------------------
برای خالی کردن اسلات های متریال ادیتور بنویسید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Qadiany
24-10-2011, 03:00
برای Include, Exclude کردن جسم های Select شده از یک نور می تونید از کد زیر استفاده کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای پیدا کردن موقعیت نمای فعلی و یا تغییر اون از کد زیر استفاده کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خط اول یک جعبه در مکان دوربین فرضی می سازه و بالای اون رو در خلاف جهت دوربین قرار میده. اگر کد رو اجرا کردید نما رو بچرخونید اون رو میبینید.
خط دوم نما رو در محل جسم انتخاب شده قرار می ده و به طرف محور z جسم نشونه می گیره.
---------------------------------------------
و اما کمی ریاضی
Transform یک جسم موقعیت اون جسم رو در فضای 3 بعدی مشخص می کنه که یک ماتریس 4x4 هست که البته تو مکس اسکریپت مولفه چهارم رو برای راحتی کا نمایش نمیده و ماتریس به شکل 4 تا بردار 3 بعدی در میاد. بردار اول محور x جسم و بردار دوم محور y جسم و بردار سوم محور z جسم و بردار آخری هم مکان جسم رو به ترتیب مشخص می کنن.
یک جسم در صحنه select کنید بعد کد زیر رو اجرا کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نتیجه آن را در MAXScript Listener ببینید. سه بردار اول مقادیری بین -1 تا 1 دارند چون بردارهای یکه هستندو به اونها بردار جهت هم میگن. ولی بردار آخر مکان جسمه و می تونید جسم رو از این طریق جابجا کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Row1..Row4 چهارتا بردار ماتریس هستن.
سوال : چرا از ماتریس استفاده می کنیم ؟
جواب : چون با استفاده از ضرب ماتریسها می تونیم همزمان چند انتقال رو روی اجسام انجام بدیم. دوران، بزرگنمایی، جابجایی.
وقتی جسمی به جسم دیگه لینک میشه، در واقع Transform فرزند رو در Transform والد ضرب میکنیم.
تصویر Viewport هم با استفاده از ماتریس روی صفحه 2 بعدی مانیتور نمایش داده میشه.
برای دیدن توابعی که MaxScript برای کار با ماتریس ها و بردارها در اختیارمون گذاشته تو MaxScript Help جستجو کنید Matrix3. توابع مربوط به دوران هم اونجا هست.
ببخشید اگه سرتونو درد آوردم:11:
تا بعد.

*Forgotten*
25-10-2011, 17:40
ممنون دوست عزیز ادامه بده این تاپیک چند سالیست که خاک خورده

بر عهده شما ;):11:

Qadiany
03-11-2011, 23:46
سلام.
بله ادامه می دیم با ساخت پنجره.
حالا که اسکریپت می نویسیم باید توجه کنیم که بعضی اسکریپتها باید قابل استفاده برای کاربران عادی 3DsMax هم باشن پس باید یه رابط کاربری مناسب برای اسکریپتمون بنویسیم. اولین چیز ساخت پنجره است . بعد دکمه ها و تغییر دهنده های عدد به اون اضافه میشن و بعد کار هر دکمه تعریف می شه و در آخر پنجره نمایش داده میشه.

برای ساخت پنجره باید از کلمه Rollout استفاده کنیم :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
رولات رو با نام r تعریف کردیم بعد اونو نمایش دادیم.
حالا دکمه براش می زاریم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دکمه b رو تعریف کردیم و نوشته روی اون رو با متن "Press me ..." تنظیم کردیم. یعنی پنجره بعد از باز شدن یه دکمه داره که روش نوشته "Press me ...".
بعد تعریف می کنیم که دکمه بعد از فشرده شدن چه کاری انجام بده:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
وقتی رو دکمه کلیک می کنید تعداد اجسامی که دارای جزء هندسی هستن تو یه پیغام اعلام می کنه.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو کد بالا یک Spinner به نام s هم اضافه شد که با تغیر عدد اون Scale جسم های انتخاب شده رو تغییر می دید.
عبارت range یک تنظیم اختیاریه که سه عدد رو داخل کروشه میگیره که عدد اول مقدار حداقل برای Spinner و عدد دوم مقدار حداکثر برای Spinner و عدد سوم مقدار پیش فرض Spinner هست.
می تونید جنس عددی که Spinner داره تنظیم کنید با عبارت type مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Qadiany
04-11-2011, 00:26
کنترل های دیگه که تو maxscript زیاد استفاده میشه با مثال ببینید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Qadiany
04-11-2011, 00:32
در مورد hyperlink متاسفم موقع فرستادن متن :
hyperlink hl "Go : " url:"[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])" color:red
چون از کلمه url تو اسکریپت استفاده شده بود موقع فرستادن خطا کرد.
به هر حال ببخشید.:11:

www_3d_boy
15-11-2011, 14:14
qudiary عزیز ممنون بابت اسگریپهات عالی هستن
فک کنم این اشکال داره ماله من اجرا نمیشه
messagebox (geometry.count as string)یه چک بکنی ممنون میشم

Qadiany
15-11-2011, 17:42
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] عزیز ممنون بابت اسگریپهات عالی هستن
فک کنم این اشکال داره ماله من اجرا نمیشه
messagebox (geometry.count as string)یه چک بکنی ممنون میشم

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ای کاربر فعال خیلی ممنون.
این کدی که اینجا میبینم اشکالی نداره اونو امتحان کردم درسته شاید موقع تایپ کردن اونو مثل اسم من تایپ کردی:biggrin: یه حرفشم که اشتباه باشه درست کار نمیکنه و پیغام خطا میده دوباره سعی کن اگه بازم خطا داد اونوقت خطاشو بنویس اینجا تا منم اشکالشو ببینم.

miladram
02-02-2013, 13:35
:n12:دوستان عزیز می خوام یه برنامه بنویسم که بشه یه مدل سه بعدی رو توش تغییر اندازه داد
-
-
-
فرض کنید شعاع یک دایره رو بتونیم بعد از مدلینگ تغییر بدیم

-
-
-
منبع خوب یا نرم افزار خوب سراغ دارید معرفی کنید لطفا:40:

mh007
30-06-2013, 12:59
حالا که از سر این سه تا غول چند بایتی سر در آوردید
براتون تکلیف شب دارم :31: البته زوری نیست

تو صفحه 2 این مبحث از random , randomize صحبت کردم حالا اسکریپتی بنویسید که این سه تا کدو move rotate scale در اون بکار ببرید و این اسکریپت باید جسمی که بهش میدیم حرکت چرخش و اسکیل اون جسمو random کنه

کدرو اینجا قرار بدید مشکلات رو مطرح کنید


ran1=random [20,10,0] [-20,-10,0]
move $sphere ran1
ran2=random (eulerangles 23 54 145) (eulerangles 47 61 74)
rotate $sphere ran2
ran3=random [1,1,1] [-1,-1,-1]
scale $sphere ran3

vray.max
04-04-2014, 12:35
با سلام خدمت دوستانی که زحمت کشیدن این تاپیک رو درست کردن ( البته چند سال پیش )
چرا دیگه ادامه ندادید ؟ این دوستانی که داشتن آموزش میدادن رفتن از این فروم یا دیگه حوصله ندارن ادامه بدن ؟
جا نزنید بابا . بحث خوبی بوده . لطفا ادامه بدید
ممنون

yusofadibmanesh
01-01-2016, 01:01
اسکریپت یک نوع زبان برنامه نویسی می باشد .، در واقع شما با max script می توانید دستورات تری دی مکس را به صورتی متنی بنویسید و اجرا کنید .با کمک maxscript می توانید با scene (صحنه) تری دی مکس در تعامل متقابل و تماس مستقیم بوده و نحوه عملکرد آن ها را با استفاده از «دستور» (statement) یا «عملگر»(operand)ها کنترل و تنظیم نمایید .شما این «دستور » و «عملگر» ها را به صورت یک متن ساده (همان اسکریپت)می نویسید که تری دی مکس موقع اجرا آن را تفسیر کرده و عملگرها را آنگونه که تعریف کردید به اجرا در می آورد . می توان گفت maxscript تقریباً تمام کاربرد ها و کارایی های تری دی مکس را تحت پوشش قرار می دهد .

برخی از کاربرد های مکس اسکریپت :

1 ) اسکریپت نویسی برای جنبه های مختلف تری دی مکس مدلسازی متحرک کردن رندر…..
2) کنترل تعامل نرم افزاری از طریق یک پنجره ی خط فرمان
3) ساخت ابزار های سفارشی
4) تنظیم رابط های به صورت بیرونی با استفاده از ole
5) ساخت ابزار های پردازش دسته ای مانند اسکریپتهای رندر دسته ای