Как сделать кнопку для скрипта в 3д макс

Обновлено: 06.07.2024

Данный скрипт незаменимый при использовании моделей с 3ddd/3dsky, cgtrader, hotpies и других ресурсов.

Возможности

  • Удаление анимационных ключей
  • Отключение BackfaceCull свойства
  • Включение Renderable свойства
  • Resolve и Relink текстур
  • Удаление пустых объектов
  • Удаление пустых слоев
  • Очистка MultiMaterial
  • Отобразить все спрятанные объекты/полигоны
  • Быстрое копирование/вставка выбранных моделей между окнами 3Ds Max (даже разных версий)
  • Работа с TurboSmooth (Добавить, Удалить, Выбрать, Iters. на 0)
  • Адаптация модели под размеры
  • Исправление геометрии (Reset XForm, Detach Trick, Box Trick, Snapshot)
  • Группировка/Разгруппировка
  • Быстрая установка центр масс (Pivot Point)
  • Перемещение модели в центр сцены
  • Attach выделенных объектов
  • Переименование: текстур, материалов, объектов, групп
  • Проверка на ошибки (xView, AssetTracking, Clay Mode)
  • Копирование текстур в папку проекта
  • Мгновенные обновления
  • Подсказки
  • Мультиязычный интерфейс

Краткий обзор всех возможностей скрипта в этом видео:

Как использовать

Разархивируйте модель, которую вы скачали, в любом месте на жёстком диске.
Убедитесь, что вы извлекли все файлы и текстуры.
Рекомендуется для удобства, открыть два окна 3Ds Max. Одно - для вашей текущей сцены проекта, другое - для подготовки модели.

Посмотрите это видео с примером использования данного скрипта:

Stock Model Fixer имеет множество инструментов для оптимизации и подготовки моделей. Более подробно о каждой вкладке читайте ниже.

Установка

В новых версиях Stock Model Fixer используется Universal Installer, который поможет вам с установкой, а также создаст кнопки в Main Toolbar и Quad Menu. Все сделано, чтобы вы прилагали минимум усилий и не теряли драгоценное время.

Шаг 1

stock model fixer install scripting run script

Запустите инсталлятор, просто перетяните (Drag&Drop) файл StockModelFixer.mzp во Viewport программы Autodesk 3Ds Max.
Или выполните запуск StockModelFixer.mzp при помощи выпадающего меню Scripting → Run Script.

Весь процесс установки есть в этой видео инструкции. В качестве примера используется другой скрипт (Prune Scene), но процесс абсолютно идентичный и для Stock Model Fixer!

Шаг 2

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

installation wizard s0

Выберите подходящий для вас язык интерфейса, нажмите Далее (Next).

Шаг 3

installation wizard s1

Прочитайте лицензионное соглашение и согласитесь с ним, нажмите Далее (Next).

Шаг 4

installation wizard s2

На этом этапе, вы можете настроить параметры установки. К примеру где создавать кнопку в интерфейсе (Main Toolbar, Quad Menu, Main DropDown Menu).
Мы рекомендуем оставлять все опции по-умолчанию и нажать Далее (Next).
Ниже будет описание, что делает каждая опция, если вы захотите что-либо изменить.

Tool Bar (Recommended) - установка кнопки с иконкой на главной панели инструментов.
Main DropDown Menu - создание нового выпадающего меню с названием 3DGROUND рядом с выпадающим меню Help и подпунктом Stock Model Fixer. Если будут установлены другие скрипты с этого сайта, они будут добавляться в выпадающее меню 3DGROUND.
Quad Menu - создание нового пункта меню Stock Model Fixer в QuadMenu.

Использовать HiDPI иконки (Use HiDPI icons) - использовать векторные иконки (SVG) для мониторов большого разрешения. Если ваш 3Ds Max выше версии 2018, где есть официальная поддержка мониторов с большим разрешением, вы можете включить данную опцию. Иконки будут работать для обычных мониторов, так и мониторов с большей плотностью пикселей.

(Стоит учесть, что по непонятным причинам, у некоторых пользователей (около 15%) могут не отображаться HiDPI иконки. Поэтому по-умолчанию опция выключена - Нет (No). Вы можете включить эту опцию, но если у вас пропадет иконка скрипта в интерфейсе, просто переустановите скрипт с настройкой по-умолчанию - Нет (No)) Опции установки/удаления (Setup Options) - вы можете выбрать Установить (Install) или Удалить (Remove) скрипт.

Шаг 5

installation wizard s3

На данном этапе установщик копирует все файлы и создает пункты меню. Вам понадобиться нажать Да (Yes), если установщику будет недостаточно прав для выполнения копирования. Смотрите скриншот ниже:

uac

Если вы нажмете Нет (No), - нет никаких гарантий, что скрипт будет работать корректно и будут скопированы все файлы!

Шаг 6

installation wizard s4

Если установка прошла успешно, вы увидите следующее окно. Нажмите Готово (Finish) для выхода из установщика.
Вы можете теперь запустить скрипт из панели инструментов Main Toolbar или выпадающего меню 3DGROUND.
Примечание!
В зависимости от настроек, выбранных при установке, данные иконки на скриншоте могут не появится в интерфейсе.

Удаление

Запустите инсталлятор и следуйте инструкциям. Подробнее смотрите раздел Установка - Шаг 1, Шаг 2, Шаг3.

installation wizard remove

На этапе выбора опций установки, выберите Удалить (Remove), подробнее смотрите скриншот выше. Нажмите Далее (Next) и следуйте инструкциям.

В процессе удаления, если установщику будет недостаточно прав, вам понадобиться нажать Да (Yes), в окне UAC, смотрите скриншот ниже:

uac

installation wizard uninstall success

Мультиязычность

stock model fixer main multi language

В новых версиях Stock Model Fixer, добавлена поддержка разных языков интерфейса.
На данный момент поддерживаются следующие языки: English, Russian, Ukrainian, Polish, Vietnamese.

Вы можете выбрать язык интерфейса во время установки Stock Model Fixer или после его запуска.

Выберите подходящий язык в выпадающем меню Language и интерфейс мгновенно будет отображен на выбранном языке, без необходимости повторно открывать скрипт.

Список языков составлен не случайным образом. Добавлены именно те языки, регионы которых сделали наибольшее число покупок.
Если вы хотите видеть Stock Model Fixer на родном языке, купите лицензию и поддержите сам скрипт, возможно ваш язык будет включен в следующую версию?!

Не исключены грамматические ошибки и опечатки в переводе, пишите в комментариях, если найдете неточности.
Или же, мы можем предоставить вам все необходимы инструменты, для редактирования языкового файла!

Вкладка File

stock model fixer tab file

Откройте модель в новой сцене, нажмите кнопку Применить (Apply), что бы все отмеченные опции в "Применить к текущей сцене" (Apply to current scene) были применены.

Удалить ключи анимации (Remove Animation Keys) - удаляет все ключи анимации. Обычно анимация не нужна и эта опция включена по-умолчанию.
Отключить свойство BackFace Cull (Disable BackFace Cull Property) - отключает BackFace Cull свойство всем объектам в сцене. Это ускоряет работу Viewport.
Включить Renderable свойство (Enable Renderable Property) - включает Renderable в свойствах для всех объектов в сцене. Довольно часто попадаются такие модели на 3D стоках, в которых отключено это свойство и заметить это можно только на рендере.
Resolve и Relink текстур (Resolve and Relink Textures) - помогает найти текстуры в папках и подпапках модели и автоматически назначить новые пути.
Удалить пустые объекты (Remove Empty Objects) - удаляет объекты с 0 количеством полигонов, пустые группы и Particle View объекты.
Удалить все слои (Remove All Layers) - удаляет все слои в сцене и переносит все объекты в 0 слой (0 default). Если вы отключите эту опцию, нежелательные и пустые слои могут попасть в вашу основную сцену проекта и испортить иерархию.
Очистить Multimaterial (Clean Multimaterial) - удаляет неиспользуемые sub-материалы.
Показать все (Объекты/Полигоны) (Unhide All (Objects/Polys)) - делает видимыми все объекты и полигоны объектов.

Раздел CopyTo/PasteFrom

CopyTo - копирует выбранные объекты.
PasteFrom - вставляет скопированные объекты.
Важно!
Какую бы вкладку вы не открыли, CopyTo/PasteFrom раздел будет доступен всегда.

Копирование и вставка объектов работает по тому-же принципу, что и бесплатный скрипт "CopyTo", и полностью совместимо с ним.

CopyTo/PasteFrom - работает между сценами, между разными окнами 3Ds Max и даже после перезагрузки компьютера.

''), array("string" => ''), ); if (!isset($_COOKIE['rek'])) < print($banners[$GLOBALS["banner_num"]]["string"]); >elseif ($_COOKIE['rek'] == "rek1") < print($banners[0]["string"]); >elseif ($_COOKIE['rek'] == "rek2") < print($banners[1]["string"]); >?>

как назначит hotkey на кнопку скрипта

Представьте ситуацию, когда вы написали скрипт (или у вас уже есть чей-то скачанный скрипт) как на рисунке выше и вам нужно очень часто нажимать кнопку Do something cool with objects list или Export objects list. Я бы захотел назначить горячую клавишу на эти кнопки.

Внимание! Делаю акцент: hotkey должен нажимать кнопку именно в этом плавающем окошке, а не вызывать это окошко заново и жать кнопку автоматически.

Решение

Логика решения такова: создать ещё один скрипт, на который мы повесим горячую клавишу и этот второй скрипт будет нажимать на нашу кнопку. Осталось только сделать так, чтобы второй скрипт смог найти нужную нам кнопку запущенного окошка Awesome script.

Первым делом, нужно сделать так, чтобы у нас всегда была запущена только одна копия Awesome script. Иначе вы не будете знать для какой копии сработает shortcut:

Поскольку мы будем обращаться к кнопке, расположенной на Awesome rollout 2, то нужно сделать этот rollout видимым для другого скрипта (т.е. глобальным):

Далее делаем так, чтобы после закрытия плавающего окошка, эта глобальная переменная удалялась (чтобы мы не могли больше обращаться горячей клавишей к кнопке на уже закрытом окне). Да и вообще насильно запускаем garbage collection (gc), чтобы освободить занятые скриптом ресурсы:

На всякий случай добавлю сюда код кнопки (обычный, стандартный код кнопки), которую мы будем нажимать из другого скрипта:

На стороне Awesome script мы сделали всё.

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

Последняя строчка расшифровывается так: найти глобальную переменную awesomeRollout2 (которая хранит наш свиток с кнопкой), обратиться к кнопке exportObjectsList и вызвать метод кнопки с именем pressed() (который отвечает за то, чтобы нажать эту кнопку).

Точки в этом случае указывают на то, что awesomeRollout2 является родителем для exportObjectsList. А exportObjectsList, в свою очередь, является родителем для функции pressed().

Подпишитесь на обновление блога (вот 3 причины для этого).

Похожие статьи:

    Placement script - скрипт для 3ds Max (работает начиная с версии 3d Max 6 и до 3ds Max 2010), который… Обновление (12.05.2018): добавил инструкцию по изменению размера скриншота в пикселях. Мне часто приходится делать полноразмерные скриншоты на движке Unity для… Building Generator – это бесплатный скрипт под 3ds Max для генерации процедурных домов. Возможности Building Generator: внушительное количество разнообразных настроек;… Одна из частых задач в 3ds Max - это анимация текста, вернее не столько текста, сколько цифр. Вот примерно как… Обновление (23.05.2012): выложил описание и видео новых возможностей. Нашел обалденный бесплатный скрипт ATiles (от AvizStudio Tools) для автоматического создания любого… Часто перед CG-художником встаёт проблема оптимизации своего времени при выполнении часто повторяющихся операций. Самым оптимальным методом решить эту задачу можно… Этот небольшой урок поможет вам быстро, качественно и реалистично разбить стекло, бетонный пол, асфальт и другие подобные объекты. В конце…


Вам понравилась статья ? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

alt

Гигантским плюсом 3ds Max является его расширяемость скриптами и плагинами. Эти дополнения многократно увеличивают возможности базовой программы. Благодаря скриптам можно значительно ускорить моделирование и избавиться от заурядных операций. Все скрипты находятся в Сети в свободном доступе. Для того, чтобы их установить скрипт перейдите в Scripting – Run Script… В открывшемся окне находим сохраненный файл скрипта.

Run Script

Некоторые файлы устанавливаются автоматически, без уведомления. Чтобы использовать установленный скрипт, нужно зайти в Customize – Customize User Interface… и в окне команд найти скрипт по названию. Для удобства ему можно назначить горячую клавишу или перенести в какое-либо меню.

Customize User Interface

1. Border Fill

Этот скрипт заполняет пустую границу полигонами. По функции он похож на инструмент Cap. Но, в отличие от инструмента, Border Fill создает не один полигон, а множество четырехугольников. Более того, новая сетка идет в соответствии с границей, а не по прямой.

Cap и Border Fill

Перед использованием обязательно конвертируем объект в Editable Poly с помощью ПКМ – Convert to – Convert to Editable Poly. Затем выберете объект и точки на нем, по которым будет строится сетка. Важно выбирать правильные точки, потому что от этого зависит строение сетки. Теперь используйте скрипт. В зависимости от плотности сетки, через некоторое время полигоны закроют дыру.

Border Fill

2. Regularize

Regularize - крайне удобный скрипт, помогающий создавать на квадратной сетке круговую топологию. Чаще всего это нужно, когда необходимо выдавить цилиндрическую форму из прямоугольной. Очевидный пример – углубления под крепежные изделия.

Для начала конвертируйте объект в Editable Poly. Выберите предмет редактирования Poligons. Отметьте те полигоны, которые хотите превратить в круг. Нажмите на кнопку скрипта.

Regularize

3. DebrisMaker

Очень мощный и полезный скрипт. Эта программа автоматически моделирует объекты по заданным параметрам. Список объектов ограничен и состоит из 19 предметов, таких как: камни, листва, палки, кристаллы, голуби. DebrisMaker скрипт эти модели по заданным параметрам, которые устанавливаются в окне самого скрипта. Для каждого объекта набор параметров уникален, поэтому в рамках данной статьи рассмотреть их невозможно. Однако можно увидеть некоторые его возможности.

DebrisMaker

Генерируемые объекты отлично подходят для того, чтобы размножить их по сцене инструментами Corona Scatter и Object Paint.

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

Приступим к созданию скриптов, я учусь вместе с вами) В главном меню пройдите MAXScript -> New Script для создания нового файла.


Появится вот такое вот окошко.


Если создать примитив Box, можно увидеть его параметры, такие как длина (lehgth), ширина (width), высота (height), количество сегментов по каждому из измерений.


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


Чтобы выполнить скрипт нажмите Ctrl + E или пройдите File -> Evaluate.


В окне проекции появится наш боксик) Размеры будут по 10 единиц, которые установлены в настройках (мм, см, дюймы и т.д.). Координаты его будут 0,0,0 - т.е. в начале координатных осей.


Так можно создавать примитивы, указываем название потом параметры со значениями через двоеточие. Немножко усложним скрипт: создадим цилиндр и сохраним его в переменной C, однако координаты его зададим сами. Для этого создадим 3 переменных - x, y и z, присвоим им значения, например - 50, -50, 0. Далее положение цилиндра задаем параметром pos переменой C, которому присваиваем значения переменных x, y, z.


Нажимаем Ctrl + E и смотрим в окно проекции. А там.. цилиндр)


Усложним скрипт еще дальше. Переменной b присвоим box с размерами 7х7х7. Далее организуем цикл с переменной x от 1 до 10. Каждый раз переменной С будет присвоена копия исходного бокса, но его координаты будут меняться, точнее координата х будет меняться с шагом 7, так как мы домножаем на 7.


Выполните скрипт, получим вот такое вот бревно) просто все боксы выстроились в ряд, один за другим.


А что если сделать стенку из этих боксов? Добавим еще один цикл по переменной y, снаружи первого, но отсчет будем вести от 0 до 9, чтобы получить боксы, стоящие друг на друге.

Читайте также: