Render.ru

Как запретить перемещение объекта при его в

Sarko3D

Активный участник
Рейтинг
15
#1
Как запретить перемещение объекта при его выборе? Надо что бы при выборе объекта его нельзя было случайно переместить, а что бы перемещать надо сначала отпустить кнопку мыши, и перемещение делать повторным нажатием. Ну кто знает, так сделанно в Maya по умолчанию.
 
Рейтинг
82
#2
Правая кнопка мыши Freeze Selection-заморозить выделенное(или Display/Freeze Selected) Разморозить-Display/Ufreeze All или Ufreeze by Name или Ufreeze by Hit.Или правая кнопка мыши /Ufreeze All .Можно попробовать назначить кнопку "Ufreeze by Hit" или добавить в квадроменю(Customize/Quads-просто перетащить функцию из левой панели в поле квадроменю) но я обычно обхожусь вышесказанным .
 

Sarko3D

Активный участник
Рейтинг
15
#3
Спасибо за подсказ. Но помню где то видел, в каких то настройках вроде галочка ставится или убирается что бы постоянно было то что мне нужно...
 
Рейтинг
82
#4
Да, можно.В принципе, я думаю, и в контроллерах можно поискать но я их плохо знаю.
 

Вложения

igorznag

Мастер
Рейтинг
103
#5
Ну кто знает, так сделанно в Maya по умолчанию.
Меню Customize > Customize User Interface > вкладка Mouse.
Если включить галочку Maya Mode Selection, тогда выделение будет как в Maya?
Если выбрать пункт Maya для Select an Interaction Mode, тогда выделение будет как в Maya?
Как запретить перемещение объекта при его выборе? Надо что бы при выборе объекта его нельзя было случайно переместить, а что бы перемещать надо сначала отпустить кнопку мыши, и перемещение делать повторным нажатием.
Попробуйте такой вариант. Пример:
В новой сцене создаем несколько объектов Teapot.
Включаем кнопку Select and Move. Запускаем скрипт.
Нажимая и удерживая левую кнопки мыши на невыделенном объекте, перемещаем курсор.
Отпускаем левую кнопку мыши.
Нажимая и удерживая левую кнопки мыши на выделенном объекте, перемещаем курсор.
Код:
fn fn_igorznag_select_maya=
(
deleteAllChangeHandlers id:#igorznag_select_maya
when select objects changes id:#igorznag_select_maya handleAt:#redrawViews do
(
modes_array=#(#MOVE,#ROTATE,#NUSCALE,#USCALE,#SQUASH)
t=toolmode.commandmode; if(finditem modes_array t!=0)then
(toolmode.commandmode=#select;toolmode.commandmode=t)
)--when select
)--fn fn_igorznag_select_maya
try destrydialog igorznag_test catch()
rollout igorznag_test "Test" width:130 height:30 
( 
button btn_start "Start" pos:[10,5]; button btn_stop "Stop" pos:[80,5]
on btn_start pressed do 
(
fn_igorznag_select_maya();
callbacks.removeScripts id:#igorznag_handler_select_maya
callbacks.addScript #sceneNodeAdded "fn_igorznag_select_maya()" id:#igorznag_handler_select_maya
)--on btn_start pressed do 
on btn_stop pressed do 
(
callbacks.removeScripts id:#igorznag_handler_select_maya
deleteAllChangeHandlers id:#igorznag_select_maya
) --on btn_stop pressed do
on igorznag_test open do igorznag_test.btn_start.pressed() 
); createDialog igorznag_test
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
 

Sarko3D

Активный участник
Рейтинг
15
#6
По сути надо сделать так, что бы объект выделялся (выбирался) только когда отпускаешь кнопку мыши, пока нажата обект не выделяется. В общем что бы на первый раз срабатывало просто как select а потом move

igorznag спасибо, но слишком замудренно видел где то как настраивалось по простому...
 
Рейтинг
318
#7
По-простому не настраивается, насколько мне известно. Только Q, потом W

В свое время знакомый майщик матерно ругал алиас именно за то, что нужно делать второй шлепок чтобы что-то подвинуть. Был безмерно рад когда появилась переключалка в мув а-ля макс.
 
Сверху