Как сделать собственные иконки в 3ds Max Toolbars

Всем привет. Столкнулся с необходимостью создать свои иконки для некоторых команд и скриптов на стандартных панелях 3ds Max. Процесс записал на видео. Для ценителей текстовых версий потратил в 10 раз больше времени, чем на запись видео и написал статью с картинками у себя на сайте: http://yn3.ru/2021/12/21/kak-sdelat-sobstvennye-ikonki-v-3ds-max-toolbars/ 

Может кому пригодится.

Спасибо за внимание.

Комментарии (30)

+3
Mrk_design
Ты крутой чувак!
+21
Alexscape
Заказчик: не понимает, почему срываются сроки!
Я:
+4
mr.spoilt
Чтобы не было таких проблем с заказчиками, нужно просто не работать )
0
Uraken
))
+1
D-d_Man
я себе такой тулбар сделал в далёком 2005 году, до сих пор кочует неизменно от версии к версии
0
mr.spoilt
Я с иконками не заморачивался, просто использовал текстовые названия кнопок, но в 2022 максе зарезервированное место под текст на такой кнопке очень большое, вот и пришлось думать, как сократить ширину панели.
+4
-NiK-
Preferences > General > Fixed width text buttons: 32px. Потом перезапуск макса. Но видимо уже поздно :)
0
mr.spoilt
Спасибо. Лишним не будет, хотя и поздно уже. С другой стороны, в 32px сколько текста влезет, нужно проверять.
+1
-NiK-
По идее ровно столько, сколько влезало и раньше, когда вас устраивала текстовая версия. Три буквы точно влезает, а русскоязычному больше и не нужно :)
В любом случае, это позволяет нормально вставлять текстовые кнопки в вертикальные панели не делая их широкими.
+1
FreeRacer
Вопрос по теме. Может кто-то подскажет где найти эти встроенные иконки для модификаторов? В Edit Button Appearance мне их найти не удалось. https://dl.dropboxusercontent.com/s/ygb5uv4dwwmvlsg/3dsmax_8TRmy9QuU7.png 
+1
-NiK-
Edit Button Appearance это устаревший метод назначения иконок поддерживающий только bmp.
Назначать эти png иконки своим макросам можно в шапке самого макроса (в коде). Например так iconname:"MainUI/Railing".
Как их назначить на встроенные в макс макросы из Customize я не знаю.
0
mr.spoilt
Кстати, во время создания новой панели, при выборе команд для работы с группами в списке отображаются иконки, то естьсозданные разработчиком, но при переносе команды на тулбар - отображается просто текст. Разбираться не стал.
+1
FreeRacer
Да, в этом собственно и мой вопрос. Но понимаю почему в списке иконки отображаются, но на тулбаре они не отображаются и нет возможности их назначить.
0
mr.spoilt
Вероятно - это просто косяк программы, потому что в хелпе от марта 2021го года написано, что если рядом с командой в списке есть иконка, значит при перетаскивании на панель она будет на панели, если иконки нет, то будет текст.
"Drag a command to the toolbar from the Customize User Interface dialog Action list. If the action has a default icon assigned to it (it appears next to the command in the action list), the icon will appear as a button on your toolbar. If no icon is assigned to the command, the name of the command will appear as a button on the toolbar." https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/3DSMax-Customizing/files/GUID-A2CF8BAA-7B52-40A8-8C40-803B1AB5FC05-htm.html 
0
-NiK-
Автодеск приложили столько усилий к перерисовке иконок с 2017 макса, но до сих пор нет адекватного метода их использования.
___
Если вы добавите из кастомайза какой-нибудь Box, то на тулбаре окажется bmp иконка из Мезозоя, потому что именно она назначена в том макросе. А открыв макрос Turbosmooth увидите, что там нет иконки вовсе. Как и почему они видны в списке это уже дело десятое.
___
Но использовать их можно.
Пруф:https://dl.dropboxusercontent.com/s/rrc7ig8rcsn2ut4/2021-12-23_18-18-22.png 

Копируете этот макрос, переименовываете, пихаете в свою категорию, удаляете лишнее из его шапки, добавляете iconname:"MainUI\TurboSmooth" и уже этот ваш макрос выносите на панель.
Вот пример:https://pastebin.com/9mB91RTv 
___
Чтобы узнать где находятся интересующие вас иконки нужно активировать эту функцию: CustomControlsOptions.PrintIconPaths=true

и навести мышкой на кнопку turbosmooth в меню Modifiers.
___
И да, не метод а кошмар.
0
mr.spoilt
Вот именно такой способ я и нашел первым и сначала даже видео записал с таким способом, но потом я просто увидел в списке иконок и мою категорию и решил, что все эти сложности ни к чему и сделал так, как в ролике выше показал.
0
mr.spoilt
У меня такой вопрос. Если я решусь написать дополнение к моему способу и опишу Ваш, с указанием Вас, как автора и со всеми ссылками, какие попросите (ну там аккаунты, порфель и т.д.). Вы не будете против?
0
-NiK-
Эти способы такие же мои как и ваши :) это общедоступная информация из документации.
+1
mr.spoilt
Ну я тупой и не смог бы сам это найти. В общем, с указанием Вас Вы не против?
Спасибо.
0
-NiK-
Я не против и с указанием и без. Не за что
0
mr.spoilt
Доброе утро. Я безграмотный в написании скриптов и программировании, поэтому хочу у Вас спросить, почему в Вашем примере для запуска TurboSmoothMod Вы использовали:

on execute do AddMod TurboSmooth
on isEnabled return mcrUtils.ValidMod TurboSmooth

Хотя в макрорекордере команда назначение этого модификатора имеет такой вид

macros.run "Modifiers" "TurboSmoothMod"

При этом все работает нормально.

macroScript TurboSmoothMod_1
category:"Category"
(
macros.run "Modifiers" "TurboSmoothMod"
)

Я тут погуглил и "on isEnabled return mcrUtils.ValidMod TurboSmooth" является проверкой на возможность применения этого модификатора к выбранному объекту, то есть если это отображается в виде текста в списках, то при невозможности назначить этот модификатор, он будет скрыт.
При размещении в виде иконки она будет неактивной.

В общем, я понял.
0
mr.spoilt
Люблю, чтобы все было четко и правильно, можно как-то проверять стандартные команды и нужно ли?
Например, команды для работы с группами.

Через макрорекордер вижу вот такое

actionMan.executeAction 0 "40140" -- Groups: Group

предполагаю, что это просто запуск команды, в то время как для запуска модификатора запускается скрипт и проверка на допустимость запуска скрипта должна быть, потому что если я на хелпер пытаюсь кнопкой без проверки накинуть turbosmooth мне макс выдает ошибку в макросе.
0
-NiK-
Макрорекордер здесь вообще не нужен. Знание скриптов в принципе тоже.
Если вы создадите ветку на форуме я там в картинках покажу что и как надо делать. В комментах блога удобно устраивать только срач, всё остальное здесь делать неудобно.
0
mr.spoilt
https://3ddd.ru/forum/thread/show/ikonki_nastroika_interfeisa
Я сделал. Спасибо!
+1
op111
Комментарий удален
+4
PaulFX
"Механизм расположения кнопок на панели неудачный и часто кнопка становится не в то место, для этого нужно кликнуть по ней правой кнопкой мыши и выбрать пункт “Delete Button”."
Иконки можно перемещать влево/вправо мышкой с зажатым alt.
0
mr.spoilt
А с зажатым Ctr копировать. Спасибо, полез в справку и нашел там эти сведения, сейчас думаю, как бы это все добавить в ролик без перезалива. но судя по всему, не выйдет и придется все переписывать
+1
PaulFX
И с зажатым альтом она удаляется, если потянуть в пустой вьюпорт.
+4
eugene132003
прикольно. будет время, можно забацать себе. будет время... будет время...
+1
photo_med
Прикольно
(пссс.. нет времени этим заморачиваться)