3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> вращение по 90 градусов, po_dummy.rotateY = ????
Petro_Chel
сообщение 02/02/2014, 20:01
Сообщение #1


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 334
Регистрация: 16/01/2006
Из: Санкт-Петербург
Пользователь №: 21 267



Здравствуйте.

Нужно, чтобы объект в сцене при попытке его повернуть поворачивался только на 90, 180, 270 и 360 градусов.
В выражениях не силён, поэтому подскажите пожалуйста как это грамотно написать?

P.S. Вариант "поставить в свойствах манипулятора step size = 90" не подходит.
Go to the top of the page
 
+Quote Post
cedez1832
сообщение 02/02/2014, 20:22
Сообщение #2


Ученик
Иконка группы

Группа: Пользователи
Сообщений: 26
Регистрация: 01/02/2014
Из: Санкт-Петербург, Россия
Пользователь №: 99 102



Такой возможности не припомню. Но есть возможность активировать функцию с шагом в 5 градусов, тоесть обьект будет поворачиваться не плавно, а с шагом +-5 градусов (0, 5, 10, 15, 20...). Если ты конечно это имел в виду.

Сообщение отредактировал cedez1832 - 02/02/2014, 20:25
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Petro_Chel
сообщение 02/02/2014, 20:48
Сообщение #3


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 334
Регистрация: 16/01/2006
Из: Санкт-Петербург
Пользователь №: 21 267



QUOTE (cedez1832 @ 02/02/2014, 20:22) *
Такой возможности не припомню. Но есть возможность активировать функцию с шагом в 5 градусов, тоесть обьект будет поворачиваться не плавно, а с шагом +-5 градусов (0, 5, 10, 15, 20...). Если ты конечно это имел в виду.

Спасибо, но я совсем не про то, и не в максе smile.gif

Интересует именно MEL-скрипт для параметра rotateY и именно в майе.

Также требуется автокей для этого параметра.
Тоесть чтобы после вращения автоматом создавался ключ.
Причём не с auto-тангенсом, а со stepped-тангенсом.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
IKS2k
сообщение 02/02/2014, 20:59
Сообщение #4


Президент Афро-Азиатской-Евро-Австралии
Иконка группы

Группа: Пользователи
Сообщений: 275
Регистрация: 10/04/2006
Из: Севастополь
Пользователь №: 29 811



Как то задача сформулирована непонятно. Можно поточнее?
Go to the top of the page
 
+Quote Post
cedez1832
сообщение 02/02/2014, 21:02
Сообщение #5


Ученик
Иконка группы

Группа: Пользователи
Сообщений: 26
Регистрация: 01/02/2014
Из: Санкт-Петербург, Россия
Пользователь №: 99 102



Цитата(Petro_Chel @ 02/02/2014, 21:48) *
Цитата(cedez1832 @ 02/02/2014, 20:22) *
Такой возможности не припомню. Но есть возможность активировать функцию с шагом в 5 градусов, тоесть обьект будет поворачиваться не плавно, а с шагом +-5 градусов (0, 5, 10, 15, 20...). Если ты конечно это имел в виду.

Спасибо, но я совсем не про то, и не в максе smile.gif

Интересует именно MEL-скрипт для параметра rotateY и именно в майе.

Также требуется автокей для этого параметра.
Тоесть чтобы после вращения автоматом создавался ключ.
Причём не с auto-тангенсом, а со stepped-тангенсом.

ах да:) Все. Мозги мои медленно испаряются=)
ЗЫ: То приятное чувство, когда из Питера на форуме не ты один)))

Сообщение отредактировал cedez1832 - 02/02/2014, 21:03
Go to the top of the page
 
+Quote Post
Petro_Chel
сообщение 02/02/2014, 21:14
Сообщение #6


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 334
Регистрация: 16/01/2006
Из: Санкт-Петербург
Пользователь №: 21 267



QUOTE (IKS2k @ 02/02/2014, 20:59) *
Как то задача сформулирована непонятно. Можно поточнее?


Ок. Кратко:
По оси Y объект должен вращаться только под прямые углы. При этом автоматически должен создаваться анимационный ключ с кривой типа stepped (на моей картинке это кривая с прямым углом).

Тоесть к примеру повернул я этот объект на любой градус в промежутке от 1 до 135 = объект сам повернутся на 90 градусов.
В промежутке 136-225 = 180 градусов.
226-315 = 270
316-380 = 380

В качестве примера зайдите в свойства rotateTool → измените значение StepSize на 90 → покрутите любой объект.
Вот именно это мне и надо, только не трогая инструмент rotateTool.

Go to the top of the page
 
+Quote Post
VUX
сообщение 03/02/2014, 04:19
Сообщение #7


Мастер
Иконка группы

Группа: Пользователи
Сообщений: 1 070
Регистрация: 17/04/2007
Из: отТуда
Пользователь №: 47 967



http://youtu.be/3cO4y2F-wTQ

Код
import __main__, maya.cmds as mc
from functools import partial

if not hasattr( __main__, 'rot_scriptJobs' ):
    def rotateKey( attrib_name ):
        angle = mc.getAttr( attrib_name )
        rest = angle % 360
        if 45 < rest < 135: angle = angle + 90 - rest
        elif 135 < rest < 225: angle = angle + 180 - rest
        elif 225 < rest < 315: angle = angle + 270 - rest
        else: angle = angle - rest
        mc.rotate( 0, angle, 0, attrib_name.split('.')[0] )
        mc.setKeyframe( attrib_name, ott="step" )

    rot_transforms = mc.ls(sl=True, type='transform')
    if rot_transforms:
        __main__.rot_scriptJobs = [ mc.scriptJob(kws=1, ac=(transform+'.ry',partial(rotateKey, transform+'.ry'))) for transform in rot_transforms ]
        mc.inViewMessage( amg="Added {} object(s) to rotateKey".format(len(rot_transforms)), pos='topCenter', fade=True )
    else:
        mc.inViewMessage( amg="No transforms in selection !!!", pos='topCenter', fade=True )
else:
    [ mc.scriptJob( k=scriptJob ) for scriptJob in __main__.rot_scriptJobs ]
    del __main__.rot_scriptJobs
    mc.inViewMessage( amg="Removed {} object(s) from rotateKey".format(len(__main__.rot_transforms)), pos='topCenter', fade=True )


Надеюсь я правильно понял суть проблемы smile.gif

Сообщение отредактировал VUX - 03/02/2014, 04:44
Go to the top of the page
 
+Quote Post
Petro_Chel
сообщение 03/02/2014, 04:44
Сообщение #8


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 334
Регистрация: 16/01/2006
Из: Санкт-Петербург
Пользователь №: 21 267



QUOTE (VUX @ 03/02/2014, 04:19) *

Браво! То что нужно. На видео всё идеально и самое оно. yes.gif
Только скрипт стопорится в самом начале(((
CODE
// Error: import __main__, maya.cmds as mc //
// Error: Line 1.16: Syntax error //

Скрипт в каком-нибудь дополнительном редактировании нуждается?
Go to the top of the page
 
+Quote Post
VUX
сообщение 03/02/2014, 04:50
Сообщение #9


Мастер
Иконка группы

Группа: Пользователи
Сообщений: 1 070
Регистрация: 17/04/2007
Из: отТуда
Пользователь №: 47 967



Цитата(Petro_Chel @ 03/02/2014, 05:44) *
Цитата(VUX @ 03/02/2014, 04:19) *

Браво! То что нужно. На видео всё идеально и самое оно. yes.gif
Только скрипт стопорится в самом начале(((
Код
// Error: import __main__, maya.cmds as mc //
// Error: Line 1.16: Syntax error //

Скрипт в каком-нибудь дополнительном редактировании нуждается?


Вы всунули скрипт в MEL вкладку (в scriptEditor-е), а нада в Python - мая думает что это мел-скрипт smile.gif
Go to the top of the page
 
+Quote Post
Petro_Chel
сообщение 03/02/2014, 04:56
Сообщение #10


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 334
Регистрация: 16/01/2006
Из: Санкт-Петербург
Пользователь №: 21 267



QUOTE (VUX @ 03/02/2014, 04:50) *
Вы всунули скрипт в MEL вкладку (в scriptEditor-е), а нада в Python - мая думает что это мел-скрипт smile.gif


Спасибо.
Всё заработало)))
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






Fast ReplyReply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 28/03/2024 - 13:41