Maya ichki tili - Maya Embedded Language - Wikipedia

The Maya ichki tili (MEL) bu a skript tili vazifalarni soddalashtirish uchun ishlatiladi Autodesk 3D grafik dasturiy ta'minot Mayya. Maya orqali erishish mumkin bo'lgan ko'p vazifalar GUI MEL bilan, shuningdek GUIda mavjud bo'lmagan ba'zi vazifalar bilan erishish mumkin. MEL murakkab yoki takrorlanadigan vazifalarni tezlashtirish usulini taklif qiladi, shuningdek foydalanuvchilarga ma'lum buyruqlar to'plamini boshqalarga foydali deb topishi mumkin.

Dizayn

MEL sintaktik jihatdan o'xshashdir Perl va Tcl. Bu ba'zi bir xotirani boshqarish va dinamik qatorlarni taqsimlashni ta'minlaydi va Maya-ga xos funktsiyalarga to'g'ridan-to'g'ri kirishni taklif qiladi. Maya standart buyruqlarining aksariyati Maya dastur fayllari katalogida saqlangan standart MEL skriptlari.

MEL oddiy skript tillari bilan taqqoslaganda juda cheklangan. Mel birinchi navbatda Mayya sessiyasini jurnalga yozish uchun mo'ljallangan tildir[iqtibos kerak ], shuning uchun assotsiativ massivlar kabi ko'plab rivojlangan funktsiyalar mavjud emas. Python Maya-ga Maya-ga muqobil ravishda Maya 8.5-da qo'shilgan. Hali ham MEL Python-ga ba'zi afzalliklarni taqdim etadi:

  • MEL-ni kashf qilish qobiliyati yaxshiroq, chunki o'rnatilgan echo-server MEL-ni hisobga olgan holda yaratilgan.
  • Maya-ning ko'plab eski kodlari va ichki ishi MEL shaklida. Bu Mayaning hujjatsiz ichki ishi haqida ko'plab tushunchalarni beradi.

MEL dasturlash funktsiyalari etishmasligi va ob'ektga yo'naltirilganligi uchun ko'pincha tanqid qilinadi. Ammo amalda MEL a sifatida ishlatiladi metaprogramma MEL muammoni hal qilish uchun Mayaning tugun arxitekturasiga ko'rsatma beradigan til. Tugunlar yanada aniq ko'rinadigan dasturlash usulidan foydalangan holda Mayaning haqiqiy hisoblash yadrosini tashkil qilganligi sababli, bu juda samarasiz yondashuv bo'ladi. Ko'p jihatdan MEL Maya API-ni to'ldiradi, ajratilgan vazifalar orasidagi chegaralar aniq. Bu MELni o'rganishni va to'liq tushunishni qiyinlashtiradi.

Foydalanadi

MEL skriptlari yordamida yaratilgan vositalar odatda quyidagi toifalarga kiradi:

  • Ma'lumotlarni kiritish / chiqarish
  • Harakatni ta'qib qilish ma'lumotlarini import qilish
  • Xususiy o'yin ma'lumotlarini eksport qilish
  • Ishlab chiqarishni kuzatish uchun sahna meta-ma'lumotlari
  • Geometriyani yaratish / o'zgartirish
  • Maxsus ibtidoiylar
  • Uchinchi tomon ko'rsatuvchi ma'lumotlarning maxsus turi (masalan, RenderMan pastki bo'linmalar yuzalari)
  • Asosiy to'plamda taqdim etilmagan modellashtirish vositalari
  • Animatsiya vositalari
  • Mushak simulyatorlari
  • Rigging / sozlashlarni boshqarish
  • Olomon sun'iy intellektining harakati
  • Yoritish / ko'rsatish vositalari
  • Umumiy murakkab shader sozlamalarini avtomatik ravishda yaratish
  • Renderdan oldingi va keyingi effektlar
  • Uchinchi tomon ko'rsatuvchi shaxslarga qo'ng'iroq qilish
  • Dinamika
  • Zarrachalarning odatiy harakati
  • Simulyatsiya qilingan ob'ekt favqulodda suruv va to'da
  • Genetik algoritmlar
  • Mato simulyatsiyasi
  • Fayl va papka sahnasini sozlash va texnik xizmat ko'rsatish
  • Foydalanuvchi interfeysini sozlash
  • Belgilarni maxsus boshqarish
  • Yaroqsiz Maya buyruqlarini olib tashlash
  • Maxsus foydalanuvchi interfeyslari

Misol

Bu tanlangan ob'ektni o'z yo'liga ko'chiradigan skriptning misoli:

// jonlantirilgan dublikatlar / nusxalar skriptprok animatsionDuplication (int $ rangeStart, int $ rangeEnd, int $ numOfDuplicates, int $ duplicateOrInstance){    int $ range_start = $ rangeStart;    int $ range_end = $ rangeEnd;    int $ num_of_duplicates = $ numOfDuplicates;    int $ step_size = ($ range_end - $ range_start) / $ num_of_duplicates;    int $ i = 0;    int $ temp;    currentTime $ range_start;     // oraliq boshlanishiga o'rnatildi    mag'lubiyat $ selectedObjects[];    // tanlangan moslamalarni saqlash uchun    $ selectedObjects = `ls -sl`;  // tanlangan moslamalarni saqlash    tanlang $ selectedObjects;    esa ($ i <= $ num_of_duplicates)    {        $ temp = $ range_start + ($ step_size * $ i);        currentTime ($ temp);        // nusxalash yoki nusxalash uchun moslamalarni tanladi        tanlang $ selectedObjects;        agar($ duplicateOrInstance == 0)        {            dublikat;        }        boshqa        {            misol;        }        $ i++;    }} // Foydalanish misoli: // joriy tanlovni 5 marta takrorlash - // 1 va 240 ramkalar orasida teng taqsimlangan animatsionDuplication(1, 240, 5, 0);

Xususiyatlari

Maya shuningdek, MELning super to'plami bo'lgan ifodalash tilini taklif qiladi va natijada tugunlarning bir qismi sifatida bajariladi. Mayaning qaramlik grafigi. Maya bilan ifodalar ishlab chiqilgan ifoda muharriri va Maya har bir o'zgarish paytida sahna faylini baholashda, murakkab xatti-harakatlarni simulyatsiya qilishda yoki boshqa foydali vazifalarni bajarishda skriptlarni ishga tushirishga ruxsat bering.

Adabiyotlar

  • Mark R. Uilkins, Kris Kazmier: "Maya animatorlari uchun MEL ssenariysi ". 2-nashr, Morgan Kaufmann 2005; ISBN  0-12-088793-2
  • Piska, Nikolay, "YSYT - dizaynerlar uchun Maya MEL asoslari ". 1-nashr, 0001d Publishing 2009; ISBN  978-0-578-00988-9

Tashqi havolalar