当前位置: 首页 > article >正文

maya python 中的maya.cmds 与maya.mel模块的区别笔记

作为一个python的小白,之前多从事mel程序开发,因为python变化太快,不如maya内置mel语言稳定,所以一直懒于python学习,后来偶尔使用中发现,其实python作为maya mel的封装,与内置的mel还是有很大差别的。
经常看到大家编写py文件里,调用maya mel命令方式如下:

import maya.cmds as cm
import maya.mel as mel

究竟 两个有啥差别呢,经过一段测试做一笔记分享:
maya.cmds 调用的都是通过 c++ 开发的的mll (dll)也就是动态链接库command程序或函数,执行效率都很快。此类命令在官方帮助里被标记为如下类型:
在这里插入图片描述

比如调用 ls()命令,可以写为:

maya.cmds.ls()

而 maya.mel 使用中,多以 maya.mel.eval(‘…mel脚本命令代码…’) 的形式,来在python环境下,调用mel语言编写的脚本。也就是说 mel 其实是调用了多个cmds的内部命令组合,来实现宏脚本语言功能。cmds可以被看做mel的核心命令元素。用mel调用ls命令的方法如下:

maya.mel.eval('ls()')

并且,mel可以调用mel脚本自定义的global proc 程序。如下图显示,带M标记的都是文本脚本mel定义的程序:
在这里插入图片描述
在这里插入图片描述

所以maya.mel是包含了cmds核心命令,并且允许在cmds基础上,定义宏脚本mel程序。cmds方式运行的都是单个命令,mel则可以批量运行多个cmds命令合集。

第三方开发的很多程序,也包含了众多的cmds命令。
可以使用如下命令查看所有的cmds命令核心程序名:

help(maya.cmds)

可以通过 melInfo命令来显示所有的cmds核心命令和mel脚本类函数程序:

maya.cmds.melInfo()
或
maya.mel.eval('melInfo()')

好了基本的差别就介绍到这里, 南无阿弥陀佛


http://www.kler.cn/a/2841.html

相关文章:

  • 【Flutter_Web】Flutter编译Web第三篇(网络请求篇):dio如何改造方法,变成web之后数据如何处理
  • 前端往后端传递参数的方式有哪些?
  • LeetCode-最长回文子串(005)
  • 条款14 如果函数不抛出异常请使用noexcept
  • docker-compose搭建sfpt服务器
  • Dots 常用操作
  • 新闻文本分类任务:使用Transformer实现
  • A.机器学习入门算法(六)基于天气数据集的XGBoost分类预测
  • 用嘴写代码?继ChatGPT和NewBing之后,微软又开始整活了,Github Copilot X!
  • 【史上最全面esp32教程】oled显示篇
  • 第十四届蓝桥杯三月真题刷题训练——第 21 天
  • 【尝鲜版】ChatGPT插件开发指南
  • 二维图像处理到三维点云处理
  • 嵌入式系统 - 对话
  • LInux下安装libreoffice(用于Linux下Word转pdf,附代码)
  • 无需公网IP,远程连接SQL Server数据库【内网穿透】
  • 【Unityc#专题篇】之c#基础篇
  • ASO优化之应用商店中的A/B测试——改良版
  • 菜鸟刷题Day5
  • FPGA打砖块游戏设计(有上板照片)VHDL
  • React 入门(超详细)
  • 从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构
  • 基于springboot框架实现校园博客系统【源码+论文】展示
  • python 使用for循环删除列表元素
  • 怎么防止SQL注入?
  • HTML5 Canvas