طراحی لوگو
طراحی لوگو
شی "شی" مرجعی برای شی مایا است. شما میتوانید از طریق "MObject APIs" به آنها دسترسی داشته باشید. تنها عملیاتی که میتواند مستقیماً بر روی یک MObject انجام شود طراحی لوگو ، تعیین نوع، و مجموعههای تابع است که میتواند بر روی این نوع of عمل کند. هنگامی که نوع MObject"s مشخص شد، میتوانید تابع را برای آن نوع، یا هر نوع باز، به آن MObject متصل کنید. طراحی لوگو
برای مثال، یک MObject به نام "obj" میتواند موارد زیر را انجام دهد: طراحی لوگو
اگر (obj.apiT ype) = = MFn::) …
که مشخص میکند که آیا آن شی دقیقاً یک دوربین است یا نه، طراحی لوگو
اگر (obj.hasF) (MFn::) … طراحی لوگو
که مشخص میکند اگر طراحی لوگو شی با مجموعه تابع دوربین سازگار باشد.
طراحی لوگو
عملکرد مجموع طراحی لوگو ههای
یک مجموعه تابع کلاسی است که روی یک شی عمل میکند. آن شامل مجموعهای از روشهای لازم برای پرس و جو، اصلاح، و ایجاد یک نوع خاص طراحی لوگو از شی است.
هر نمونه از یک MObject میتواند یکی و تنها یک شی شی متعلق به مایا داشته باشد. تمام مجموعههای تابع دارای یک و تنها یک نوع مجموعه تابع هستند. اما یک MObject میتواند با بسیاری از انواع مجموعههای وظیفه سازگار باشد. این سازگاری، سلسلهمراتب کلاس وظیفه را دنبال میکند. به همین دلیل است که یک MObject با نوع شی مایا MFn: kNurbsSurface با MFnNurbsSurface، MFnDagNode، MFnDependencyNode و MFnBase سازگار است. یک نفر میتواند موارد زیر را انجام دهد:
اگر (obj.ha طراحی لوگو sF) (MFn::)
{…} طراحی لوگو
/ / ایجاد یک مجموع طراحی لوگو ه تابع دوربین.
دوربین MFnCamera (obj)؛
/ / تعیین سقف طراحی لوگو شی دوربین. fStop؛ camera.fSto p (fStop)؛ …
..... طراحی لوگو طراحی لوگو
نکته: عملکرد مجموعه هر شی را بدون توجه به اینکه آیا میتوانند روی آن عمل کنند، میپذیرند. در کد بالا، مجموعه تابع دوربین میتواند با استفاده از یک شی سطحی ایجاد شود. در این حالت طراحی لوگو ، مجموعه تابع به حالت نامعتبر تبدیل خواهد شد و همه روشها مقادیر خطا را باز خواهند گرداند، اما منجر به یک خطای مهلک نخواهد شد.
این کار باعث میشود تا کد نمونه اولیه بسیار ساده طراحی لوگو باشد. برای مثال:
/ / / در میان یک لیست از اشیا طراحی لوگو راه بروید و fStop هر کدام را بگیرید
/ / دوربین. توجه داشته باشید که اگر چیزی غیر از یک دوربین در فهرست قرار دارد، این کد همچنان کارسا طراحی لوگو طراحی لوگو ز خواهد بود.
دوربین دو fSto طراحی لوگو p؛ دوربین مدار بسته؛
MObjectArray objectArray طراحی لوگو … یک لیست تهیه کن …>
{…}
اگر (camera.setO bject (objectArray [i])= MS::) طراحی لوگو
{camera.fSto p (fStop)؛ طراحی لوگو
..... طراحی لوگو
..... طراحی لوگو
..... طراحی لوگو
مثال بالا نشان میدهد که مجموعههای تابع به شما اجازه میدهند به روش کاملاً متفاوتی کار کنید. انجام ای طراحی لوگو ن کار، کارایی یک plug - in را با اجباری کردن اعمال غیر ضروری اضافی کاهش میدهد (هر روش تابع سعی خواهد کرد).
همچنین این امکان وجود دارد که با یک روش کاملاً تایپ دهی برنامه اجر طراحی لوگو ا شود. برای مثال:
/ / / در میان یک لیست از اشیا طراحی لوگو راه بروید و fStop هر کدام را بگیرید
/ / دوربین. توجه داشته باشید که اگر چیزی غیر از یک دوربین در فهرست قرار دارد، این کد از آن صرفنظ طراحی لوگو ر خواهد کرد.
دوربین دو fSto طراحی لوگو p؛ دوربین مدار بسته؛
MObjectArray objectArray طراحی لوگو … یک لیست تهیه کن …>
{…} طراحی لوگو
اگر (objectArray طراحی لوگو [i]. hasFn (MFn::)
{camera.setO bject (objectA طراحی لوگو rray [i]؛ camera.fSto p (fStop)؛
.....
.....
.....
این کد تر از روش قبلی است زیرا روشهای دوربین تنها برای دوربینها در این فهرست اعمال میشوند. بازده را میتوان به شکل فیلتر کردن در هنگام استفاده از کلاسهای iterator به دست آورد. iterators prefixed با mit هستند. این کلاسها برای حلقه کردن از طریق اشیا یک نوع خاص طراحی شدهاند و فیلتر کردن بیشتر برای انتخاب بین آن اشیا موجود است. برای مثال، شما میتوانید از یک iterator برای پردازش تنها 2 بعدی استفاده کنید.
اشیا گذرا
API مایا شامل چندین نوع از موضوعات پایه است که نود ها را در یک صحنه مایا نشان نمیدهند. این اشیا شامل موضوعات ریاضی برای بردارهای و ماتریسها، رشتهها، مسیرهای DAG (پشتیبانی مایا instancing)، فهرستهای انتخاب و لیست دلایل فرماندهی میشوند. این اشیا بسیار کوچک هستند و در طبیعت گذرا هستند (آنها در یک فایل داده ذخیره نمیشوند).
این اشیا به یک طبقه برای کار بر روی آنها نیاز ندارند. در عوض، آنها مستقیماً در دسترس هستند و تمام روشهای لازم برای کار بر روی شی بدون نیاز به یک کلاس مجموعه اضافی را فراهم میکنند.
کلاس ریاضی
API مایا یک مجموعه از کلاسهای ریاضی را تامین میکند. این کلاسها شامل،، MMatrix، MVector، MPoint، MQuaternion و MEulerRotation میشوند. کلاسهای ریاضی API Maya بسیاری از روشهای عملگر را اجرا میکنند. به عنوان مثال، اضافه کردن دو بردار میتواند به صورت زیر کدگذاری شود:
MVector v (1، 0، 0)؛
MVector w (0، 1، 1)؛
MVector x = v + w
اگر یک سازنده یک روتین تبدیل را از کلاس ریاضی خود به کلاس ریاضی مایا ارایه دهد، API مایا میتواند به طور خودکار با کلاس خود کار کند. این به توسعه دهندگان اجازه میدهد تا موضوعات ریاضی خود را به روشهای API مایا منتقل کنند.
اشیا پیشکار
اشیا پیشکار چیزهایی هستند که برنامهنویس تعریف میکند و مایا میداند چگونه با آن عمل کند. اشیا پیشکار شامل دستورها، مترجم فایل، بافتها، بافتارها، گرههای گراف وابستگی، اشکال سطحی، ساطع کننده سیال و ویراستاران مدلسازی میشوند. به عنوان مثال، گرههای DG به شما اجازه میدهند تا عملیاتهای جدیدی را ایجاد کنید (مانند یک چرخش جدید)، بلکه به انواع جدیدی از اشیا مانند shaders، زمینهها، ساطع کننده ذره، و اشکال هندسی اجازه میدهد. API ها کلاسهایی را فراهم میکند که شما میتوانید کلاسهای خود را به دست آورید. این کلاسهای توسعه دهنده با مایا ثبت میشوند، که به کاربران اجازه میدهد تا نمونههایی از آنها را ایجاد کنند. با این حال، از آنجایی که این اشیا معمولاً یک مولفه رابط کاربر برای آنها دارند (برای مثال، آنها رابط کاربری برای ایجاد آنها و دستکاری مقادیر آنها دارند)، باید یک رابط کاربری برای این اشیا فراهم کنید.
نمونهای از یک شی پروکسی نوع جدیدی از گره ایجاد سطح است. این گره تعریفشده توسط کاربر از کلاس نود واحد DG گرفته میشود و از کدهای نوشته شده توسط توسعه دهنده برای تعریف پارامترهای ورودی و خروجی گره استفاده میکند. توسعه دهنده همچنین محتوای یک روش مجازی را ارایه میدهد که سپس برای ارائه ارزش مشخصه خروجی براساس ورودی آن فراخوانده میشود. در این حالت، گره میتواند به چندین ویژگی ورودی دسترسی داشته باشد و از این اطلاعات برای تعیین اینکه سطح NURBS خروجی چگونه به نظر خواهد رسید، استفاده کند. یکگره نماینده که یک سطح NURBS ساده ایجاد میکند به راحتی میتواند با کمتر از 100 خط کد مبدا نوشته شود. زمانی که خود گره نوشته شدهاست، میتوانید متن MEL یا پیتون را برای ایجاد رابط کاربر بنویسید که به کاربران اجازه میدهد به راحتی یک نمونه از گره را بسازند و ویژگیهای نمونههای موجود را تغییر دهند.
توجه: گرههای پیشکار توسط مایا نگهداری میشوند و باید از یکدیگر متمایز شوند. به عنوان مثال، شما ممکن است دو شاخه مختلف را در گرههای shader اجرا کنید و میخواهید هر دو در یک صحنه از آنها استفاده کنید. برای رسیدگی به این تمایز، یک ID نود مورد استفاده قرار میگیرد. مشتریان در یک قرارداد حمایتی میتوانند درخواستهایی برای تیم پشتیبانی ما ارسال کنند تا یک قطعه کارت شناسایی گره برای توسعه طراحی لوگو را دریافت کنند.
UI
استفاده از MEL یا پیتون، شما میتوانید اجزای رابط کاربر را برای فرمانهای plug با استفاده از همان فرآیندی که برای ایجاد رابط کاربری برای ویژگیهای ساختهشده استفاده میشود، ایجاد کنید. MEL یا پیتون نیز دسترسی به روشهای طراحی و ویجت را فراهم میکنند که به شما اجازه میدهد تا اشیا رابط کاربری بسیار پیچیده را ایجاد کنید.
در نهایت، از آنجا که اسکریپت نویسی سکوی خنثی است، کاربر تنها باید در MEL یا پیتون مشخص شود و در سیستمعامل لینوکس، ویندوز و Mac OS X درست کار کند.
دسترسی به نمودار وابستگی
DG قلب مایا است. در حالی که انجام یک مدلسازی معمولی، انیمیشن، و محول کردن وظایف، اغلب کاربران نیازی به آگاهی از کاربرد اساسی مایا ندارند.
با این حال، هنگامی که در API های مایا کار میکنید، ممکن است بخواهید از قدرت DG بهرهبرداری کنید تا ابزارهای بهینهسازی و مقاوم را ایجاد کنید که بخوبی با معماری کلی ادغام شوند.
DG یک ساختار dataflow دارد که از انیمیشن، تاریخچه ساختوساز و محدودیتها پشتیبانی میکند.
یک برنامهنویس API میتواند گرههای جدیدی را ایجاد کند که میتوان آن را به DG وارد کرد. API های مایا روشهای لازم برای اضافه کردن گرههای جدید و بررسی گرههای موجود را فراهم میکند. با فراهم کردن دو سطح دسترسی به DG، API ها توانایی programmer"s را محدود نمیکند و برنامهنویس ساده را غرق نمیکند.
نمودار صحنه شما را با یک دید سطح بالا برای شما فراهم میکند که در آن شما باید کمی در مورد DG بدانید اما هنوز هم میتواند بر آن تاثیر بگذارد. این شبیه دیدگاه رابط کاربر است که در آن یک کاربر میتواند انیمیشن را بدون اطلاع از اینکه آنها ایجاد یا تغییر دادن گرههای DG هستند، ایجاد کند. به طور مشابه، سازندگان میتوانند انیمیشن را بدون نیاز به بدانند که آنها ایجاد و دستکاری گرههای DG هستند.
نمای سطح پایینتر از مایا توسط مجموعههای تابع API ارایه میشود. مجموعه عملکرد به شما اجازه میدهد که DG را ببینید تا بتوانید یک نود را ببینید، مشخصههای گره، اتصالات گره، و دادهها و پیغامهایی که وارد میشوند و از گره خارج میشوند. در این دیدگاه، رفتار همه انواع گرههای DG یکسان است.
دسترسی در هر سطح از سیستم انیمیشن مایا مستلزم آن است که یک صحنه به طور موثر در یک زمینه مشخص ارزیابی شود، یعنی مفهوم یک ابزار ویرایش رابط کاربری یا زمینه زمان. زمان در یکگره دی دن نمایش داده میشود که میتواند رویدادها را تحریک کند، منجر به ارزیابی شود، و یا keyframing را در همه چیز در یک صحنه فعال کند.
یادداشت بر روی API و خط
تقریباً هر چیزی که میتواند در متن (MEL یا فرمانهای پایتون) انجام شود، میتواند در API C + + انجام شود و در بسیاری از موارد بسیار سریعتر اجرا میشود. این به این دلیل است که یک plug - in یک کتابخانه مشترک مشترک است، در حالی که تمام خطوط باید از طریق مفسر عبور کنند که سطح بیشتری از پردازش را اضافه میکند. با این حال، API و اسکریپت به طور متقابل انحصاری نیستند. اغلب اوقات، مقدار زمانی که طول میکشد تا کدگذاری C + + را برای نسخهبرداری از یک روش متن اجرا کنیم، تا حد زیادی از مزایای عملکرد مهمتر است. در برخی شرایط، دستور script مایا ممکن است دسترسی گستردهتری به دادههای صحنه داشته باشد تا ممکن است از طریق اجرای یک کلاس API در دسترس باشد. از آنجا که دستور script مایا را میتوان از درون کدها یاد گرفت، میتوانید از فرمانهای MEL یا پیتون در هنگام نیاز استفاده کنید و از API های C + + یا پیتون برای همه چیز استفاده کنید.
مستندات و منابع API
API 8.5 API با اسناد زیر آمدهاست:
- Manual Developers API (شامل یک بخش از API پایتون Maya) است.
- مایا Motion راهنمای API:.
- اسناد مرجع کلاس API (287 کلاس - هر کلاس مستند شدهاست).
- مثالهای کد منبع (160 نمونه کاری شامل بیش از 100000 خط کد منبع)
- makefiles در لینوکس و Mac OS X فراهم شدهاست.
- مایکروسافت ویژوال استودیو فایلهای راهحل را در ویندوز منتشر میکند.
- یک " درزگیر مناسب " برای ایجاد سریع استودیوی تصویری خانم مایا در راهحلهایی که
- نسخه پروژه در سیستمعامل mac os x:
مستندسازی در فرمت html بوده و میتوان با هر مرورگر وب مشاهده کرد.
منابع اضافی برای یادگیری api های مایا:
- کنفرانس توسعه دهنده api (در دسترس از فروشگاه آتودسک آنلاین).
- برنامهریزی کامل مایا, راهنمای گستردهای برای مل و سی + + api; توسط دیوید a. دی. گولد.
- برنامهریزی کامل مایا یک راهنمای جامع به اصول بنیادین, هندسه و مدلسازی است. (جلد دوم) دی. گولد.
نتیجهگیریها:
api ها به راحتی یاد میگیرند و یک رابط بسیار قوی ارایه میدهند که به شما اجازه میدهد به سرعت مایا را به هر روشی که میخواهید گسترش دهید. بسیاری از اتصالات با موفقیت با استفاده از api مایا پیادهسازی شدهاند. با مجموعه وسیعی از مثالها و مستندات موجود, شروع کار با api ها آسان است. اگرچه این سند اصولاً بر روی پلاگین ها تمرکز دارد, یک نوع دیگر از قابلاجرا پشتیبانی میشود. این امکان وجود دارد که توسعه دهندگان برنامههای مستقل را بنویسند که بر خط فرمان با استفاده از api مایا یا مایا پایتون نوشته شدهاند. برنامههای مستقل میتوانند برای ترجمه فایل و عملیات دستهای مانند چک لیستهای نامگذاری گره و غیره استفاده شوند. نمونههایی طراحی لوگو از برنامههای مستقل در کیت توسعه دهنده ما گنجانده شدهاند.
وقتی تصمیم گرفتید که میخواهید با api مایا شروع به توسعه کنید, چندین مسیر