Перейти к содержанию
Khyzyr

[3Ds Max] Апгрейд скриптов Dan-Stash

Рекомендуемые сообщения

 

xray-tools-logo.png

Автор скриптов - Dan-Stash
Правки от 20.02.2020 - Khyzyr
Версия Release 1 от 2016 - SkyLoaderScarabay; сборка пака - Stalker_Alex333

Финальные версии скриптов - скачать


Итак, я не буду объяснять, что это вообще за скрипты и для чего они. Я думаю опытные пользователи и так все знают.


Правка #1: Возможность вынести кнопку Add shader def из свитка Utilities на рабочую область в виде отдельной кнопки с возможностью назначения на нее горячей клавиши.

Спойлер

Собственно, в чем заключается смысл данного "апгрейда". После установки скриптов, в панели Utilities рабочей области 3Ds Max появляется вот такой спойлер:

xvcWsonf.png?download=1


Нас интересует кнопка Add shader def. С ее помощью на уже назначенную текстуру в Material Editor можно поставить материалы, понятные движку XRay. Выглядит это таким образом:

0vPn1efM.png?download=1

Я пользуюсь этим инструментом уже довольно давно, это действительно удобно, можно не тратить время на назначение материалов через SDK, но... меня начало бесить некоторое количество манипуляций, потому что добираться до этой кнопки - есть трата дополнительного времени. И я упростил задачу, вынеся эту утилиту на отдельную кнопку (которой, кстати, можно назначить горячую клавишу).

Скачать правку xrShader_by_Khyzyr. Работает с любыми версиями скриптов.

Как это установить:

  • 1. Качаем файл и закидываем его в корневую папку 3Ds Max, папка sctrips, далее Startup.
  • 2. Запускаем 3Ds Max. Из папки Startup скрипты, по сути, запускаются сразу с запуском программы, но подстрахуемся. В рабочей области программы выбираем MAXScript/Run Script, заходим в папку Startup и запускаем наш файл с названием xrShader_by_Khyzyr. Ничего не должно произойти.

    Теперь выдернем наш скрипт на отдельную кнопку в рабочей области. Для своего собственного удобства, я создал отдельный слой, на который размещаю все подобные инструменты. На примере этого и объясняю.
  • 1. В рабочей области 3Ds Max нажимаем Customize/Customize User Interface.
  • 2. Переходим во кладку Toolbars, нажимаем кнопку New, задаем любое имя и жмем ОК.
  • 3. На экране появляется новый тулбар, который можно "прилепить" к любому месту на рабочей области. У меня это место слева. Прилепили.

4. Не закрывая вкладки Toolbars, слева находим спойлер Category, раскрываем его и в самом низу находим ругательство xrShader. Внутри него один Action, называемый XR. Хватаем его и переносим на наш тулбар, созданный в третьем пункте. Выглядить это будет примерно так:

tgJatYzx.png?download=1

Чтобы кнопка не занимала такое большое пространство, ей можно задать иконку. Для этого нажимаем по ней ПКМ, в окошке жмем Edit Button Appearance, внутри которого выбираем Image Button. Там можно поискать любую понравившуюся иконку.

PXm4Y8Lw.png?download=1KK7B0ZX7.png?download=1

Каждая из имеющихся там иконок является динамической: если скрипт работает - иконка цветная, не работает - соответственно, черно-белая.
В итоге это все выглядит так

41VimwpS.png?download=1
 

Для любителей кода. Код скрипта выглядит таким образом:


macroScript shader
    category:"xrShader"
    toolTip:"XR"

(    
      Mtl = medit.getcurmtl()
      if classof Mtl != Multimaterial then Mtl = #(Mtl)
      for m in Mtl where classof m == Standardmaterial do
       if not (xrToolsUtil.HasShadersCA m) then custAttributes.add m xrShadersDataCA
     )
     
fn HasShadersCA Mtl =   -----------------------------------------------------------------------------
    (
  if Mtl != undefined then
  (
   local i, ca
   
   for i = 1 to (custAttributes.count Mtl) do
   (
    ca = custAttributes.get Mtl i
    if ca.name == "xrShadersData" then return true
   )
  )
  return false
    )

macroScript shader - название макро-скрипта
category:"xrShader" - категория в кастомайзе
toolTip:"XR" - название кнопки
Mtl = medit.getcurmtl - параметр, назначающий материалы
fn HasShadersCA Mtl = - функция, определяющая для параметра getcurmtl атрибуты. Атрибуты читаются из файла скрипта xrTools.CAMtl.

Правка #2: Убирает кнопку Add shader def из свитка Utilities. Дает возможность автоматизированного подключения свитка xray_shader_params во всех материалах области Material Editor
!К использованию не рекомендую, проблема описана в этом посте!

Спойлер

Здесь много объяснять не придется, по скриншоту все будет более чем понятно

jNHILP75.png?download=1

Теперь не нужно нажимать никаких лишних кнопок. С запуском программы свиток xray_shader_params уже будет находиться во всех стандартных материалах и автоматически добавляться в новые.

Любителям кода:


fn OnMtl =
(
    local mtl = callbacks.notificationParam()
    format "mtlRefAdded: %\n" mtl
    if isKindOf mtl material do
    (
                 Mtl = medit.getcurmtl()
     if classof Mtl != Multimaterial then Mtl = #(Mtl)
     for m in Mtl where classof m == Standardmaterial do
     if not (HasShadersCA m) then custAttributes.add m xrShadersDataCA
)
)
callbacks.removeScripts #mtlRefAdded id:#xxx
callbacks.addScript #mtlRefAdded "OnMtl()" id:#xxx

Это сама функция. Все что выше в самом скрипте - оригинальные строки кода от Dan-Stash. Поначалу была идея не загромождать скрипт и сделать просто выноски в коде на соседние файлы, но это сказалось на оптимизации.

Скачать правку можно отсюда - xray_shader_params_by_khyzyr

Установка:

  • 1. Поместить папку Startup в папку scripts в корне 3Ds Max
  • 2. В папке xray_tools два файла: xrTools.gui_bak(29.042019) - оригинал от 29.04.2019 года на случай каких-либо проблем; xrTools.gui - моя правка. Поместить папку в папку scripts в корне 3Ds Max

При создании сборки использовались следующие работы и авторы:

Спойлер

X-Ray tools(2014-november)
Автор: den-stash
Источник


X-Ray tools(2016-august) - unofficial
Автор: Якобы den-stash, выложил Scarabay
Источник


X-Ray_3Ds_Max_tools_2016_R1:
Автор: den-stash
Обновления и дополнения: ScarabaySkyLoader
Компиляция в единый пакет: Stalker_AleX333 aka Silver Raven
Источник


X-Ray tools(2017-august) - unofficial
Автор: 1_A aka Virus_UA
Источник


max_scripts_update
Автор: SkyLoader
Источник


Если кого не упомянул, то это только по незнанию, за что прошу меня простить.
Тут приведенны оригинальные (авторские) ссылки на пакеты скриптов. Если вдруг ссылки на них, со временем "умрут", то нати интересующий вас пакет, можно на моем Я.Диске:
xray_3dsmax_tools от DenStash
WolfHeart
08/03/2020


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу