在 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 中创建文本生成工具的问题的主要内容,如果未能解决你的问题,请参考以下文章
从 Collada (.dae) 文件(在 Maya 中创建)导入的 SceneKit 键控混合形状动画未播放
如何设置由 Visual Studio 2010 应用程序创建的文本文件的路径?