локальные оси трансформации
- Автор темы Yaroslav Abramov
- Дата создания
А как сдвинуть объект по локальной оси на определенное количество единиц?
чото затупил.
и отвечающим, просьба не путать мировые координаты и локальные оси объекта.
чото затупил.
и отвечающим, просьба не путать мировые координаты и локальные оси объекта.
Последнее редактирование:
Я ставлю на xform!
Последнее редактирование:
Numeric Input: Relative жеж! если ручками. Три значения вбить 0 1 0 или даже выражением 0 (2+2) 0
А скриптом майя двигает через move -r -os
А скриптом майя двигает через move -r -os
По глобальным)))
Не, ну понятно что все двигается по глобальным координатам, мы сейчас про ChanBox говорим
Последнее редактирование:
А!, да тут понятно. Просто ТС спросил грубо говоря "как шнурки на ботинках завязать?" А ему в ответ теорию относительности и красного гравитационного смещения.
По теме - локальные в чанел боксе выражением:
+=1
и будет относительный сдвиг.
Да ты прав про локаль, есть глобальные, локальные, объектные - три большие разницы, а я всё о объектных, что не в тему.
По теме - локальные в чанел боксе выражением:
+=1
и будет относительный сдвиг.
По теме - локальные в чанел боксе выражением:
+=1
и будет относительный сдвиг.
Вот этим лучше в майке не стоит баловаться, она эту формулу запомнит и отомстит "+=1" . Эта срань(уж не помню какой версии, кажись 2016) после того как я ей подобное скормил в графэдиторе начала все последующее хреначить по этой формуле, и все брейки не помогли. Пришлось убить папку в доках и начать заново
Вот этим лучше в майке не стоит баловаться, она эту формулу запомнит и отомстит "+=1" . Эта срань(уж не помню какой версии) после того как я ей подобное скормил в графэдиторе начала все последующее хреначить по этой формуле, и все брейки не помогли. Пришлось убить папку в доках и начать заново
Ааа, 2016-я, ну тогда пофиг)))) с новыми подстава на подставе
Тоже напутал объектные и локальные,
по теме правильно так, если скриптом:
move -r -ls
по теме правильно так, если скриптом:
move -r -ls
Кста если будет время и желание глянь мой скрипт, интересно просто на будущее для развития, я понимаю что его можно было раз в 50 оптимизировать, просто твое мнение как можно было бы проще сделать. Мож сходу заметишь что не так, по большому счету я только учусь питошке. Если нет то и не парься.
http://render.ru/xen/threads/vopros...tsja-vse-voprosy-5.164202/page-6#post-1193119
Последнее редактирование:
Кста если будет время и желание глянь мой скрипт, интересно просто на будущее для развития, я понимаю что его можно было раз в 50 оптимизировать, просто твое мнение как можно было бы проще сделать. Мож сходу заметишь что не так, по большому счету я только учусь питошке. Если нет то и не парься.
http://render.ru/xen/threads/vopros...tsja-vse-voprosy-5.164202/page-6#post-1193119
http://render.ru/xen/threads/vopros...tsja-vse-voprosy-5.164202/page-6#post-1193119
взяли объект
Код:
import maya.cmds as cmds
try:Poly = cmds.ls( o =1, selection=True )[0] # пусть как у тебя
except:print 'Not Select Poly'#;return
Число фейсов, вариант:
Код:
numFaces = cmds.getAttr('%s.face'%Poly, size=True)
не идеал, но работает:
Код:
cmds.select( '%s.f[*]'%Poly, add=True )
for F in cmds.filterExpand(sm=34):
cmds.select(F)
...
вместо:
cmds.select(lis+ '.' + 'f['+str(Face)+ ']',d=True)
по питонски:
cmds.select(lis+'.f['%s']'%Face,d=True) # Face это номер
или %d, но можно везде %s, как универсальное
Про оптимизацию в 50 раз тут нет ничего), надо алгоритм повнимательней смотреть
upd
Хотя ускорение должно быть, если выкинуть селект каждого фейса из цикла
Код:
cmds.select( '%s.f[*]'%Poly, add=True )
for F in cmds.filterExpand(sm=34):
VtxCo = cmds.listAttr(F,st=['*pnts*'])
if len(VtxCo) != 4: Filtface.append(F)
Последнее редактирование:
По мелочи, если не вдаваясь в алгоритм
взяли объект
(try кстати быстрее чем проверки по if)
Число фейсов, вариант:
Надобы сразу список фейсов
не идеал, но работает:
И форматирование строк
вместо:
cmds.select(lis+ '.' + 'f['+str(Face)+ ']',d=True)
по питонски:
cmds.select(lis+'.f['%s']'%Face,d=True) # Face это номер
или %d, но можно везде %s, как универсальное
Про оптимизацию в 50 раз тут нет ничего), надо алгоритм повнимательней смотреть
upd
Хотя ускорение должно быть, если выкинуть селект каждого фейса из цикла
взяли объект
Код:
import maya.cmds as cmds
try:Poly = cmds.ls( o =1, selection=True )[0] # пусть как у тебя
except:print 'Not Select Poly'#;return
Число фейсов, вариант:
Код:
numFaces = cmds.getAttr('%s.face'%Poly, size=True)
не идеал, но работает:
Код:
cmds.select( '%s.f[*]'%Poly, add=True )
for F in cmds.filterExpand(sm=34):
cmds.select(F)
...
вместо:
cmds.select(lis+ '.' + 'f['+str(Face)+ ']',d=True)
по питонски:
cmds.select(lis+'.f['%s']'%Face,d=True) # Face это номер
или %d, но можно везде %s, как универсальное
Про оптимизацию в 50 раз тут нет ничего), надо алгоритм повнимательней смотреть
upd
Хотя ускорение должно быть, если выкинуть селект каждого фейса из цикла
Код:
cmds.select( '%s.f[*]'%Poly, add=True )
for F in cmds.filterExpand(sm=34):
VtxCo = cmds.listAttr(F,st=['*pnts*'])
if len(VtxCo) != 4: Filtface.append(F)
Спасибки, знал что ты подскажешь , Возьму на вооружение эти варианты на будущее. Да, там самые большие тормоза из за селекции каждого фейса, я просто не нарыл возможность получить количество вертексов с фейса не выделяя его, да и %s [*] подобными вещами не умею пользоваться. Пока не знаю что они даже значат и как их применять, надо найти инфу и внимательно почитать ) Этот то скрипт сам по себе мне особо не нужен, но важна сама суть. Поскольку придется с подобным много раз столкнуться.