Я хотел знать, есть ли опция в Maya 2016, скрипт python, чтобы получить данные с клавиатуры, но не с открытием окон пользовательского интерфейса или такими вещами, как 'raw_input' в python, но жить, как если бы вы играли в игру, и вы нажимаете кнопку, происходит действие. Есть ли способ сделать это в скриптах Maya python?Как получить вход от keyboad в Maya 2016 python
ответ
def moveCurrent(direction):
getSel = cmds.ls(sl=True)
if getSel:
if direction == "up":
currentVal = cmds.getAttr("%s.tx" % getSel[0])
cmds.setAttr("%s.tx" % getSel[0], currentVal + 10)
elif direction == "down":
currentVal = cmds.getAttr("%s.tx" % getSel[0])
cmds.setAttr("%s.tx" % getSel[0], currentVal - 10)
elif direction == "left":
currentVal = cmds.getAttr("%s.tz" % getSel[0])
cmds.setAttr("%s.tz" % getSel[0], currentVal - 10)
elif direction == "right":
currentVal = cmds.getAttr("%s.tz" % getSel[0])
cmds.setAttr("%s.tz" % getSel[0], currentVal + 10)
cmds.nameCommand('moveCurrentSelectionFuncUp', ann='Move Selected Mode', c='python("moveCurrent(\\\"up\\\")")')
cmds.nameCommand('moveCurrentSelectionFuncDown', ann='Move Selected Mode b', c='python("moveCurrent(\\\"down\\\")")')
cmds.nameCommand('moveCurrentSelectionFuncLeft', ann='Move Selected Mode c ', c='python("moveCurrent(\\\"left\\\")")')
cmds.nameCommand('moveCurrentSelectionFuncRight', ann='Move Selected Mode d ', c='python("moveCurrent(\\\"right\\\")")')
cmds.hotkey(keyShortcut='F5', name='moveCurrentSelectionFuncUp')
cmds.hotkey(keyShortcut='F6', name='moveCurrentSelectionFuncDown')
cmds.hotkey(keyShortcut='F7', name='moveCurrentSelectionFuncLeft')
cmds.hotkey(keyShortcut='F8', name='moveCurrentSelectionFuncRight')
Удостоверьтесь, что у вас есть фокус просмотра, после выполнения над фрагментом.
Спасибо! У меня есть 2 вопроса: 1) Если я хочу, чтобы объект двигался в направлении, если нажата горячая клавиша? Как мне это сделать? 2) Если я хочу, чтобы у одного объекта было более 1 горячая клавиша? например, если я нажимаю W, он перемещается вперед, S перемещает его назад, A влево и D вправо? – ErezProductions
Большое спасибо! – ErezProductions
Это сработало! Как бы то ни было, если я хочу переместить объект, не записывая позицию (вверх, вниз, вправо и влево) в функции, как я могу это сделать? – ErezProductions
Включает код того, что вы пробовали до сих пор – depperm
Я ничего не пробовал, потому что не знаю, есть ли .. Я посмотрел в интернете, но нашел только такие вещи, как функции raw_input, что не помогает. Если вы знаете технику, я был бы благодарен, если вы поделитесь ею здесь! – ErezProductions
Вы не получаете непрерывный ключевой опрос с майотой по умолчанию. Возможно, вы сможете захватить сигналы из главного окна Maya с помощью PySide, но это может быть проблематично, потому что вы будете конкурировать с основным контуром интерфейса Maya. Если вы просто хотите делать горячие клавиши, которые не требуют окна, просто создайте объекты RuntimeCommand – theodox