在 Maya 中创建文本生成工具的问题

Posted

技术标签:

【中文标题】在 Maya 中创建文本生成工具的问题【英文标题】:Issue Creating Text Generation Tool in Maya 【发布时间】:2019-02-06 21:45:05 【问题描述】:

各位,感谢您抽出宝贵时间阅读本文! Soooooooo ...我正在尝试使用文本曲线在 Maya 中创建一个文本生成工具,但我似乎无法让它工作。我的想法是我在工具中输入文本,然后按下“创建文本”按钮后,该文本会变成几何图形的文本曲线,但无论我做什么,我似乎都会出错。

是否有人可能知道我可以做些什么来补救这种情况?

感谢您抽出宝贵时间阅读本文!干杯!

import sys
import os
import maya.cmds as mc
outputText = 'Hello World'
def UI ():
    if mc.window('textGenerator', exists = True):
        mc.deleteUI('textGenerator')
    mc.window('textGenerator')
    mc.columnLayout()
    mc.text('Enter text here: ')
    mc.textFieldGrp()
    mc.button(label = 'Create Text', command = 'buttonPress()')
    mc.showWindow('textGenerator')
def buttonPress():
    finalName = mc.textFieldGrp()
    mc.textCurves(finalName)
    sys.stdout.write (outputText)

    mc.textCurves(t=outputText)

UI()

【问题讨论】:

我刚刚更正了我的代码审查,传递了一个错误的变量,您在第 15 行缺少 -t 标志。(我之前没有 Maya,所以我无法测试它直播:)) 【参考方案1】:

你的代码中有几个问题,你必须将你的 ui 元素封装到一个变量中(或者至少,正确命名它们):

textInput = mc.textFieldGrp()

其次,切勿使用逗号来放置命令,而应使用 partial 或 lambda 将变量传递给函数(阅读我关于此主题的其他一些帖子或查找 theodox 的帖子)

from functools import partial
mc.button(label = 'Create Text', command = partial(buttonPress, textInput))

代码的最后一部分:

def buttonPress(textFieldGrpName, *args):
    # *args is just here to skip a default argument pass as last by maya
    # query the input text in the text field grp
    finalName = mc.textFieldGrp(textFieldGrpName, q=1, text=1)
    mc.textCurves(t=finalName)
    sys.stdout.write (outputText)
    mc.textCurves(t=outputText)

【讨论】:

以上是关于在 Maya 中创建文本生成工具的问题的主要内容,如果未能解决你的问题,请参考以下文章

maya 烘焙动画帧

从 Collada (.dae) 文件(在 Maya 中创建)导入的 SceneKit 键控混合形状动画未播放

马尔科夫链随机文本生成器

如何设置由 Visual Studio 2010 应用程序创建的文本文件的路径?

Linq to entity 使用“Func”在生成匿名对象的选择语句中创建属性

在 Shiny 中下载文本并生成 txt 文件