Написал простенький скрипт. Нужен совет как дополнить

Автор
Сообщение
На сайте c 26.05.2018
Сообщений: 332
Ashgabat
скрипт чередует фронтальный, топ и лефт виды. Можно на хоткей повесить, и не искать кнопки T и L, если назначил, например, на F. Хотелось бы назначить на сочетание с shift чередование back, bottom и right виды. Но эта фишка срабатывает, если вынести кнопку на тулбар. Можно как-нибудь решить эту проблему, чтоб Shift срабатывал при нажатии горячей клавиши?
На сайте c 19.01.2012
Сообщений: 74
Оттуда




Дата выдачи:
06.08.2024 17:58:08


Пожизненный бан
назначайте на F например, в скрипте проверяйте если шифт зажат
На сайте c 26.05.2018
Сообщений: 332
Ashgabat
Цитата Slazzo:
назначайте на F например, в скрипте проверяйте если шифт зажат

не понял. Можно подробней?

На сайте c 16.05.2012
Сообщений: 993
Москва
вы холите одни hotkey заменить другими??? не разу в работе это не пригодилось пока
На сайте c 26.05.2018
Сообщений: 332
Ashgabat

Цитата Skap:
вы холите одни hotkey заменить другими??? не разу в работе это не пригодилось пока

сделать наподобие смарт селекшн

Цитата Skap:
вы холите одни hotkey заменить другими??? не разу в работе это не пригодилось пока

нет. Три заменить одним. можно и больше. но больше уже не имеет смысла

На сайте c 31.03.2008
Сообщений: 1112
Москва
Keyboard.shiftPressed
На сайте c 26.05.2018
Сообщений: 332
Ashgabat

Цитата -NiK-:
Keyboard.shiftPressed

это работает, если нажимать на кнопку

В общем, есть предположение почему это не работает на хоткее. Чтоб не сбивать ранее установленный хоткей на какую-нибудь другую операцию. Решил прост написать 2 скрипта в одном, и уже назначить F и shift+F. Всем спасибо

На сайте c 24.06.2014
Сообщений: 4508

По большей части оффтоп. Но может кому мой вариант будет интересен...

Я еще со времен Maya привык к аналогу Marking Menu в Максе, а именно Quad-Меню. Да это не полный аналог. Но и у него есть свои преимущества. Например контекстно зависимые пункты. Ну например если вы смотрите с вида камеры в сцене можно добавить пункт выбрать ее таргет или саму камеру или выйти из камеры в режим перспективы.

И получается у меня уже интуитивно жмется хоткей на котором висит кастомный контекстный Quad-Меню, в котором есть базовые Top/Left/Bottom/Right, и так как это Quad-Меню всплывает рядом с курсором то уже на уровне мышечной памяти я сразу знаю куда заранее наводится курсор и сразу нажимается что бы перейти в нужный мне вид. А для удобства в настройках Quad-Меню сделан текст жирный и большой. Отдельный плюс всего этого что FoV не сбивается. Так как первым пунктом у меня весит Persp View на 60FoV. Стандартный FoV в Максе ужасный ))

По моему удобнее когда 10 функций на одном хоткее и правой руке таким образом висят когда вы не читая и не смотря даже на какой пункт клацаете но понимаете в какой вид зайдете и что конкретно нажмете без всякой задержки.

Скрипт перспективы простецкий :

max vpt persp user

viewport.SetFOV 60

max vpt persp user

Можно и разделители добавить что бы сделать шаг курсора больше между пунктами. Так же есть Квады на примитивы и некоторые другие функции например в Слейтэдиторе или UVW. Это так быстро происходит что не успеваешь подумать какой там пункт, прочитать название. Просто знаешь что сейчас нажмешь хоткей и одновременно с этим поведешь в нужное место мышь и клацнешь. Потому что все на мышечной памяти сразу же запоминается. Ну и когда например уже камера в вьюпорте то появляется контекстные меню и сразу понимаешь что ты переходишь не с простого вьюпорта а с камеры. Тоже иногда удобно когда быстро надо таргет камеры подвинуть, или перейти на другую камеру в сцене, или настроить направление источника света переключившись в его вид. Мгновенные удобные действия без перегруза кучей кнопок. А держать на этом всем скажем 10 отдельных кнопок - ну такое, не мой вариант. У меня и так много других кнопок заняты ))

А вообще самое мое удачное решение было удалить все вообще хоткеи с Макса которые есть (вплоть до кнопки Delete которая удаляет полигоны-вершины-ребра и объекты) и переназначить все так что бы было все в левой части клавы. И продублировать действия типа Connect в Ребрах Connect в Сплайнах, Connect (Bridge) в Полигонах, то есть логически самому все кнопки распределить и назначить как вам удобнее. А не юзать тот треш что по дефолту в максе. В том числе и стандартные Quad Menu дичь полная...

На сайте c 26.05.2018
Сообщений: 332
Ashgabat

Немного не туда занесло нас)) Я пользуюсь дефолтным квад-меню макса, он крутой, круче только pie-menu блендера. Жмешь V, а потом соответствующую клавишу. Но я моделлер в основном, поэтому мне чаще всего нужны эти 3 вида, реже противоположные им виды. Камера не нужна. Поэтому один хоткей на три вида прибавляет скорости

по левой части клавы +++

На сайте c 24.06.2014
Сообщений: 4508

Meilis, ну вы находитесь в втором виде а вам надо на первый. Вы три раза жмете кнопку что бы перейти на первый вид три раза отрисовывая весь вьюпорт ? smiley-biggrin.gif И то это я посчитал Front/Back/Top/Bottom. Ок. А еще есть Perspective. Пятая кнопка. В Максе это же часть ортогональных видов а отдельный в Перспективе.

Я прост при сборке экстерьеров регулярно использую все Front/Back/Top/Bottom, Perspective, переключение камер, выбор таргета камер, выбор камеры активной. И ортогональный режим контекстный (в режиме перспективы).

У меня бы мозг сломался если бы я циклически переключался через это все дело smiley-crazy.gif А если бы переключался не по всем вариантам а по части то часто бы тупил когда надо в конкретный вид перейти )) Ну типа если вы редко юзаете Bottom и его нету в ротации то... Ну вы поняли )

На сайте c 26.05.2018
Сообщений: 332
Ashgabat
Цитата Earanak:
Meilis, ну например вы находитесь в втором виде а вам надо на первый. Вы три раза жмете кнопку что бы перейти на первый вид три раза отрисовывая весь вьюпорт ? smiley-biggrin.gif

Цикл состоит из 3-х звеньев. Максимум придется нажимать 3 раза, минимум 1. Ответ на ваш вопрос- да, это ж логично. Зато не хожу далеко в сторону L. в инструменте smart selection вообще 4 звена.

На сайте c 24.06.2014
Сообщений: 4508

Meilis, ужас какой, вообще не мой вариант )) Если хватает трех видов, ну да, это может в каких то случаях работать если у вас симметричные объекты. Но если у меня 10 функций на 1 кнопке висит мне удобнее чем цикл из трех на 1 кнопке и цикл из трех других на 2 кнопке. Ну тип все равно же надо Left/Right/Bottom/Front/Persp юзать ) И это минимум мой.

На сайте c 26.05.2018
Сообщений: 332
Ashgabat
Цитата Earanak:
Meilis, ужас какой )) Ну, если вам хватает этих видов, желаю удачи с вашим скриптом smiley-smile.gif

6 видов в итоге. перспектива на отдельном хоткее. Что еще нужно?

На сайте c 24.06.2014
Сообщений: 4508
Цитата Meilis:
перспектива на отдельном хоткее.

Ну так да... Я об этом и говорю ))

Только видов 6 а действий с вьюпортом у меня в повседневной работе 10 а хоткей один )) Но я же не спорю... Крутите хоть карусель из 15 функций на трех кнопках. Мне то что. Я изначально сказал что мое сообщение оффтоп и лишь мой субъективный вариант управления вьюпортом без затупов и кучи кнопок и карусели. Если вам иначе удобнее так замечательно же )) Тогда обязательно найдутся люди которым пригодится ваш скрипт/вариант. Тем и замечателен софт что все почти под себя можно подстроить. У каждого найдется свой лучший вариант. Ваш вариант мне лишь потешным показался, ну без негатива. Просто забавным ) Сидишь такой и крутишь рулетку когда докрутишься до нужного вида, забавно же )) Случайно такой лишний раз нажал и снова такой сидишь яростно топишь в кнопку smiley-lol.gif

На сайте c 26.05.2018
Сообщений: 332
Ashgabat

Бесконечное обсуждение. Спасибо за советы. Мне уже выше помогли

Цитата Earanak:
Цитата Meilis:
перспектива на отдельном хоткее.

Ну так да... Я об этом и говорю ))

Только видов 6 а действий с вьюпортом у меня в повседневной работе 10 а хоткей один )) Но я же не спорю... Крутите хоть карусель из 15 функций на трех кнопках. Мне то что. Я изначально сказал что мое сообщение оффтоп и лишь мой субъективный вариант управления вьюпортом без затупов и кучи кнопок и карусели. Если вам иначе удобнее так замечательно же )) Тогда обязательно найдутся люди которым пригодится ваш скрипт/вариант. Тем и замечателен софт что все почти под себя можно подстроить. У каждого найдется свой лучший вариант. Ваш вариант мне лишь потешным показался, ну без негатива. Просто забавным ) Сидишь такой и крутишь рулетку когда докрутишься до нужного вида, забавно же )) Случайно такой лишний раз нажал и снова такой сидишь яростно топишь в кнопку smiley-lol.gif

это все не относится к теме вопроса. По макскрипту вы, явно ас)

На сайте c 24.06.2014
Сообщений: 4508
Цитата Meilis:
это все не относится к теме вопроса. По макскрипту вы, явно ас)

Потому я и написал что это оффтоп. А вы чет похоже триггернулись малёха. Да понял я вас понял. Типа тема закрыта потому что вы уже получили ответ но не можете с темы уйти потому что я вас задел как то smiley-lol.gif Чет вы как то пропустили походу что я несколько раз написал про оффтоп . Причем тут макс скрипт если я по сути говорю что это не на прямую касается темы вашей )) Ну спасибо хоть за настроение, хорошо что вам помогли.

На сайте c 27.03.2015
Сообщений: 488
Вологда
Цитата Earanak:
Так же есть Квады на примитивы и некоторые другие функции например в Слейтэдиторе или UVW

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

p.s. сорри за оффтоп

На сайте c 26.05.2018
Сообщений: 332
Ashgabat
Цитата Evilis:
Цитата Meilis:
В общем, есть предположение почему это не работает на хоткее. Чтоб не сбивать ранее установленный хоткей на какую-нибудь другую операцию.

У максскрипта нет возможности получения доступа ко всем кнопкам клавиатуры. И как вы поняли (и как следует из хелпа), есть только возможность отслеживать значение глобальных системных переменных (true\false)- keyboard.shiftPressed, keyboard.controlPressed, keyboard.altPressed, keyboard.escPressed (смотрите хелп максскрипта)

Реализовать возможно можно, если использовать dotNet. Т.е писать свой обработчик событий, который будет проверять что нажимается, нажимаются ли системные кнопки (keyboard.shiftPressed и т.д), с уже назначенными хоткями, пустые и т.д и т.п и тдтп ) Как то так. И возможно можно будет реализовать перехват системных (keyboard.shiftPressed и т.д) при определенной комбинации для своих нужд. Но я, к примеру, совершенно не вижу в этом смысла. Если вы видите, смотрите хелп по SDK )) 

Если не заморачиваться, то можно использовать IsKeyDown , просто загнав заранее в кастомный массив кнопки , которые будут нажиматься при использовании этого скрипта и отслеживать их нажатие (берем значение из массива)

Примитивный пример. Скрипт повешен на хоткей NumPad0. В массиве NumPad1 и MButton (средняя кн. мыши)

local isKeyDown = (dotNetClass "managedservices.keyboard").isKeyDown

local keys = dotNetClass "system.windows.forms.keys"

local key_arr = #(isKeyDown keys.NumPad1, isKeyDown keys.MButton)

работать будет разумеется совместно с уже назначенным хоткеем, по этому либо очищать используемую в будущем кнопку(-и) от хоткея, либо использовать любые другие свободные.

Либо совсем забить на все это и просто делать (как вы и сделали) отдельные макросы )

Есть же ответы по теме, в отличие от некоторых, кто пишет ересь и пытается навязать свой угол зрения. Спасибо. Единственное, я в замешательстве. Есть вк сообщество по максскрипт, у них написано, что эта фишка работает только с шифтом. Я не проверял еще, но, это, старая документация типа получается?

На сайте c 31.03.2008
Сообщений: 1112
Москва

Разве, несмотря на все эти ухищрения, возможно вообще вызвать макрос назначенный на [F] нажав именно [Shift]+[F]? По-моему логично, что он не вызывается.

Я в таких случаях просто создаю глобальную функцию с аргументами и ряд макросов для её вызова.

На сайте c 31.03.2008
Сообщений: 1112
Москва

Видимо я не очень умный :) Не понимаю как это применимо к задаче ТС.

Логичней было бы использовать всё тот же keyboard.shiftPressed, но назначить этот один макрос и на F и на Shift+F. Должно работать (не проверял)

Читают эту тему: