Maya 임베디드 언어

Maya Embedded Language

MEL(Maya Embedded Language)은 오토데스크의 3D 그래픽 소프트웨어 Maya에서 작업을 단순화하는 데 사용되는 스크립트 언어입니다.Maya의 GUI를 통해 달성할 수 있는 대부분의 태스크는 MEL뿐만 아니라 GUI에서 사용할 수 없는 특정 태스크에서도 실행할 수 있습니다.MEL은 복잡하거나 반복적인 태스크의 속도를 높일 수 있을 뿐만 아니라 사용자가 유용하다고 생각하는 특정 명령어 세트를 다른 사용자에게 재배포할 수 있는 방법을 제공합니다.

설계.

MEL은 구문적으로 Perl 및 Tcl유사합니다.메모리 관리 및 동적 어레이 할당 기능을 제공하며 Maya 고유의 기능에 직접 액세스할 수 있습니다.표준 Maya 명령어의 대부분은 기본 MEL 스크립트로 Maya Program Files 디렉토리에 저장됩니다.

MEL은 주류 스크립트 언어에 비해 상당히 제한적입니다.Mel은 주로 Maya[citation needed] 세션을 저널링하기 위한 언어이기 때문에 연관 배열과 같은 많은 고급 기능이 없습니다.Python은 Maya 8.5에서 MEL의 대안으로 Maya에 추가되었습니다.여전히 MEL은 Python에 몇 가지 이점을 제공합니다.

  • 내장 명령어 에코 서버가 MEL을 염두에 두고 작성되었기 때문에 MEL의 검출성이 향상됩니다.
  • Maya의 많은 레거시 코드와 내부 작업은 MEL 형식으로 되어 있습니다.이것은 마야의 기록되지 않은 내부 작업에 대한 많은 통찰력을 제공한다.

MEL은 프로그래밍 기능과 객체 지향성이 부족하다는 비판을 자주 받습니다.그러나 실제로는 MEL이 Maya의 노드 아키텍처에 문제를 해결하도록 지시하는 메타프로그래밍 언어로 사용됩니다.노드가 Maya의 실제 계산 코어를 형성하기 때문에 보다 견고하고 쉽게 알 수 있는 프로그래밍 방법을 사용하는 것은 매우 비효율적인 접근법이 될 수 있습니다.여러 가지 면에서 MEL은 할당된 작업 간의 경계가 다소 명확하여 Maya API를 보완합니다.이로 인해 MEL은 배우고 완전히 이해하기 어려워집니다.

사용하다

MEL 스크립트를 사용하여 설계된 도구는 일반적으로 다음 카테고리로 분류됩니다.

  • 데이터 I/O
  • 모션 캡처 데이터 가져오기
  • 독자적인 게임 데이터 내보내기
  • 생산 추적용 장면 메타 데이터
  • 지오메트리 작성/수정
  • 커스텀 프리미티브
  • 타사 렌더러별 데이터 유형(예: RenderMan 하위 분할 표면)
  • 기본 패키지에 제공되지 않는 모델링 도구
  • 애니메이션 도구
  • 근육 시뮬레이터
  • 연결/설정 컨트롤
  • 군중 AI 동작
  • 조명/렌더링 공구
  • 공통 복잡한 셰이더 설정 자동 생성
  • 렌더 전후의 효과
  • 서드파티 렌더러에 대한 콜 발신
  • 다이내믹스
  • 커스텀 파티클 동작
  • 시뮬레이션 대상 집단 발생 및 집단 발생
  • 유전 알고리즘
  • 천 시뮬레이션
  • 파일 및 폴더 장면 설정 및 유지 관리
  • 사용자 인터페이스 커스터마이즈
  • 커스텀 문자 컨트롤
  • 잘못된 Maya 명령 제거
  • 커스텀 UI

다음은 선택한 개체를 경로를 통해 복사하는 스크립트의 예입니다.

// 애니메이션 복제/애니메이션 스크립트 프로세서 애니메이션 복제 (인트 $range Start(시작), 인트 $rangeEnd, 인트 $numOfDuplicates, 인트 $duplicate Or Instance) {     인트 $range_start = $range Start(시작);     인트 $range_end = $rangeEnd;     인트 $num_of_certificates = $numOfDuplicates;     인트 $step_size = ($range_end - $range_start) / $num_of_certificates;     인트 i달러 = 0;     인트 $140;      현재 시각 $range_start;     // 범위 시작으로 설정      스트링 $selected Objects[];    // 선택한 개체를 저장합니다.     $selected Objects = ls - sl;  // 선택한 개체 저장     선택한다. $selected Objects;      하는 동안에 (i달러 <=> $num_of_certificates)     {         $140 = $range_start + ($step_size * i달러);         현재 시각 ($140);         // 복제할 개체 또는 인스턴스 선택         선택한다. $selected Objects;         한다면($duplicate Or Instance == 0)         {             복제하다;         }         또 다른         {             사례;         }         i달러++;     } }   // 사용 예:  // 현재 선택 항목을 5회 복제합니다.  // 프레임 1과 240 사이에 균등하게 분포  애니메이션 복제(1, 240, 5, 0); 

특징들

Maya는 MEL의 슈퍼셋인 표현식 언어도 제공하며, Maya의 종속성 그래프의 일부로 노드가 실행됩니다.표현식은 Maya의 표현식 편집기로 개발되며, Maya가 시간이 바뀔 때마다 장면 파일을 평가하는 동안 스크립트를 트리거하여 복잡한 동작을 시뮬레이션하거나 기타 유용한 작업을 수행할 수 있습니다.

레퍼런스

  • Mark R. Wilkins, Chris Kazmier: "Maya 애니메이터용 MEL 스크립트"제2판, Morgan Kaufmann 2005; ISBN0-12-088793-2
  • Pisca, Nicholas, "YSYT - Maya MEL Basics for Designers." 제1판, 0001d출판 2009; ISBN 978-0-578-00988-9

외부 링크