Render.ru

локальные оси трансформации

Yaroslav Abramov

Активный участник
Рейтинг
15
#1
А как сдвинуть объект по локальной оси на определенное количество единиц?
чото затупил.
и отвечающим, просьба не путать мировые координаты и локальные оси объекта.
 

Andots

Знаток
Рейтинг
66
#2
А как сдвинуть объект по локальной оси на определенное количество единиц?
чото затупил.
и отвечающим, просьба не путать мировые координаты и локальные оси объекта.
Тебе скриптом или руками? Если руками, то манипулятором или в ченел боксе он и и двигается по локальным коорд. Вернее правильней сказать что chanel box отображается в локалках, там и ставишь нужное значение. Двигается то он в обоих.
 
Последнее редактирование:

Andots

Знаток
Рейтинг
66
#4
xform то тут причем? С него глобалки удобно брать, а локалки помоему и не возьмешь(разве что objectSpace это локальные возможно ), тут хез я с него тока глобы считываю. Если через скрипт то проще (если нужны локальные) просто getAttr (бла бла бла .transformX, итд) ну и setAttr (аналогично) чтобы изменить трансформ. Удобоваримей. Ну блин, как я понял вопрос, просто надо пододвинуть по локальной оси, ну тут уж тупо добавить значение в ченел боксе
 
Последнее редактирование:

4i4ikov

Знаток
Рейтинг
37
#5
Numeric Input: Relative жеж! если ручками. Три значения вбить 0 1 0 или даже выражением 0 (2+2) 0

А скриптом майя двигает через move -r -os
 

Andots

Знаток
Рейтинг
66
#6
Numeric Input: Relative жеж! если ручками. Три значения вбить 0 1 0 или даже выражением 0 (2+2) 0

А скриптом майя двигает через move -r -os
Ахах, ТС спросил как тупо подвинуть по лок оси объект , а тут от нас ему такой напас. Собрались блин физики ядерщики. :wacky: Тс, просто в "chanel box" меняешь нужное значение transform, передвинет по локальным координатам.
 

Andots

Знаток
Рейтинг
66
#8
Че это? В чнбоксе отображаются только локальные. После фриза они на 0 все скидываются, когда вирт 0 системы координат перемещается на новую позицию объекта. да и если запарентить объект на что-либо то будут отображаться координаты относительно этого объекта, кторый в этой сист координат станет центром вселенной.


Не, ну понятно что все двигается по глобальным координатам, мы сейчас про ChanBox говорим
 
Последнее редактирование:

4i4ikov

Знаток
Рейтинг
37
#9
А, я про объектные координаты говорю, а они не совпадают с локальными.
 

Andots

Знаток
Рейтинг
66
#10
А, я про объектные координаты говорю, а они не совпадают с локальными.
А!, да тут понятно. Просто ТС спросил грубо говоря "как шнурки на ботинках завязать?" А ему в ответ теорию относительности и красного гравитационного смещения.:Laughing:
 

4i4ikov

Знаток
Рейтинг
37
#11
А!, да тут понятно. Просто ТС спросил грубо говоря "как шнурки на ботинках завязать?" А ему в ответ теорию относительности и красного гравитационного смещения.:Laughing:
Да ты прав про локаль, есть глобальные, локальные, объектные - три большие разницы, а я всё о объектных, что не в тему.

По теме - локальные в чанел боксе выражением:
+=1
и будет относительный сдвиг.
 

Andots

Знаток
Рейтинг
66
#12
Да ты прав про локаль, есть глобальные, локальные, объектные - три большие разницы, а я всё о объектных, что не в тему.

По теме - локальные в чанел боксе выражением:
+=1
и будет относительный сдвиг.

Вот этим лучше в майке не стоит баловаться, она эту формулу запомнит и отомстит "+=1" :woot:. Эта срань(уж не помню какой версии, кажись 2016) после того как я ей подобное скормил в графэдиторе начала все последующее хреначить по этой формуле, и все брейки не помогли. Пришлось убить папку в доках и начать заново
 

4i4ikov

Знаток
Рейтинг
37
#13
Вот этим лучше в майке не стоит баловаться, она эту формулу запомнит и отомстит "+=1" :woot:. Эта срань(уж не помню какой версии) после того как я ей подобное скормил в графэдиторе начала все последующее хреначить по этой формуле, и все брейки не помогли. Пришлось убить папку в доках и начать заново
Версию интересно было бы узнать, так-то я в стареньких сижу, но запомню.

Ааа, 2016-я, ну тогда пофиг)))) с новыми подстава на подставе
 

Andots

Знаток
Рейтинг
66
#14
Версию интересно было бы узнать, так-то я в стареньких сижу, но запомню.

Ааа, 2016-я, ну тогда пофиг)))) с новыми подстава на подставе
По мне так пока, более менее нормальная это 2015. Все последующие баг на баге. Они вроде как не видны, но вылезают в самый неподходящий момент.
 

4i4ikov

Знаток
Рейтинг
37
#15
По мне так пока, более менее нормальная это 2015. Все последующие баг на баге. Они вроде как не видны, но вылезают в самый неподходящий момент.
Да, 2015 тоже по мне оптимально, много новых нужностей, в меле даже, плюс с 2014ой есть возможность открывать сцены из верхних версий.
 

Andots

Знаток
Рейтинг
66
#17
Тоже напутал объектные и локальные,
по теме правильно так, если скриптом:
move -r -ls
Да это ерунда, тот кто поймет что ты напутал, не будет задавать таких вопросов.

Кста если будет время и желание глянь мой скрипт, интересно просто на будущее для развития, я понимаю что его можно было раз в 50 оптимизировать, просто твое мнение как можно было бы проще сделать. Мож сходу заметишь что не так, по большому счету я только учусь питошке. Если нет то и не парься.

http://render.ru/xen/threads/vopros...tsja-vse-voprosy-5.164202/page-6#post-1193119
 
Последнее редактирование:

4i4ikov

Знаток
Рейтинг
37
#18
Кста если будет время и желание глянь мой скрипт, интересно просто на будущее для развития, я понимаю что его можно было раз в 50 оптимизировать, просто твое мнение как можно было бы проще сделать. Мож сходу заметишь что не так, по большому счету я только учусь питошке. Если нет то и не парься.

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
(try кстати быстрее чем проверки по if)

Число фейсов, вариант:
Код:
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)
 
Последнее редактирование:

Andots

Знаток
Рейтинг
66
#19
По мелочи, если не вдаваясь в алгоритм

взяли объект
Код:
import maya.cmds as cmds
try:Poly = cmds.ls( o =1, selection=True )[0] # пусть как у тебя
except:print 'Not Select Poly'#;return
(try кстати быстрее чем проверки по if)

Число фейсов, вариант:
Код:
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 [*] подобными вещами не умею пользоваться. Пока не знаю что они даже значат и как их применять, надо найти инфу и внимательно почитать ) Этот то скрипт сам по себе мне особо не нужен, но важна сама суть. Поскольку придется с подобным много раз столкнуться.
 
Рейтинг
327
#20
ребята, а как вам вообще в жизни это скриптописание помогает? что оно вам дает? для чего?
 
Сверху