Yeti 命令教程

我其实不会用Yeti插件,做不出好看的皮毛效果,因项目而熟悉Yeti的mel。Yeti的文档是相当全,不懂的完全可以看Yeti官方文档,进入正题。

1. 在Maya中获取Yeti graph node
import maya.cmds as cmd
all = cmd.ls(type='pgYetiMaya')

node的类名为 pgYetiMaya。 长时间不用Maya都忘了去哪找node的type了。


2. 获取Yeti graph node中的 cache 文件路径
cmd.getAttr(node+'.cacheFileName')

node为 1 中获取的节点名。 大部分时间不知道属性名,只能悲催地用

cmd.listAttr(node,  r=True)

列出来慢慢找了。


3. 获取Yeti节点图内部节点

其实Yeti本身内部就是一个旧节点图,通过命令可以获取到这些节点,并能修改其属性。mel命令如下:

pgYetiGraph -listNodes node

node为 1 中获取的节点名


4. 获取Yeti节点图中的某种节点
pgYetiGraph -listNodes -type "texture" node

-type指定 节点类型,类型可以在Yeti的Graph editor中查看。
通过maya.mel.eval() 执行后会得到一个包含node name的list


5. 获取Yeti节点图中某个节点所有属性
pgYetiGraph -node "texture" -listParams node

-node 指定Graph editor中存在的节点。
-listParams 说明要列出所有属性

6. 获取Yeti节点属性
pgYetiGraph -node "texture01" -param "file_name" -getParamValue node

-param 指定属性名。大部分时候不知道属性名,就需要5中的方法,先全列出来看看。
-getParamValue 说明是获取属性。很明显肯定有对应修改属性的参数。


7. 修改Yeti节点属性
pgYetiGraph -node "texture01" -param "file_name" -setParamValueString "new_path"  node

-setParamValueString 后面加空格 跟上新路径


8. 一点参考代码
import maya.cmds as cmd
import maya.mel as mel

def get_graph_path(node):
    return cmd.getAttr(node+'.cacheFileName')

def set_graph_path(node, path):
    cmd.setAttr(node+'.cacheFileName', path)

def get_texture_node(graph_node):
    mel_cmd = 'pgYetiGraph -listNodes -type "texture" %s' % str(graph_node)
    texture_nodes = mel.eval(mel_cmd)
    return texture_nodes

def get_texture_path(texture, graph):
    mel_cmd = 'pgYetiGraph -node "%s" -param "file_name" -getParamValue %s' %(str(texture), str(graph))
    path = mel.eval(mel_cmd)
    return path

def set_texture_path(path, node, graph):
    mel_cmd = 'pgYetiGraph -node "{node_name}" -param "file_name" -setParamValueString {path}  {graph}'.format(node_name=str(node), path=str(path), graph=str(graph))
    print mel_cmd    

all_yeti_nodes = cmd.ls(type='pgYetiMaya')
for node_name in all_yeti_nodes:
    # 获取yeti cache的路径
    cache = get_graph_path(node_name)
    # 每个yeti cahce内部都是个节点图,获取所有 texture节点
    # 返回的是节点名字的list
    tnodes = get_texture_node(node_name)
    for node in tnodes:
        # 获取texture节点内部的 图片路径
        texs = get_texture_path(node, node_name)

        # 给texture节点设置新的 path
        #set_texture_path(texs, node, node_name)

更多请参考Yeti官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 变量命名、声明、赋值 1.必须以字母、下划线或美元符号开头,后面可以跟字母、下划线、美元符号和数字。2.变量名区分...
    wq04200阅读 640评论 0 1
  • 【微公益】【891】【每日经典】【20171002易经31】 咸卦 (泽山咸)兑上艮下 《咸》:亨。利贞。取女吉。...
    北冥_鲲阅读 313评论 0 1
  • 《爱情买卖》 - 慕容晓晓 作词:何欣 出卖我的爱 (是谁呀?) 逼着我离开(这么过份?) 最后知道真相的我眼泪掉...
    我们都是好喷友阅读 851评论 0 2