Ошибка сценария 3ds max
Как выглядит процесс в диспетчере задач :
Изображение использования ЦП / ОЗУ 3ds max во время выполнения скрипта :
Сцена .max, которая вызывает ошибку, может быть найдена здесь: большая сцена .max, которая вызывает ошибку
Сценарий работает следующим образом (псевдокод):
Примечание: идентичные ячейки (в этом контексте) определяются как ячейки, имеющие одинаковый множитель, vertcount, edgecount, position.
3 ответа
Я плохо отлаживаю чужой код, поэтому, опять же, быстрый взгляд - я бы определенно избегал цикла for в for duplicate in obj_dups do(delete duplicate) , delete - это сопоставленная функция, и вы можете передать коллекцию в качестве аргумента Это. Таким образом, не будет так много обновлений проводника сцены, и это должно быть намного быстрее. Я также предпочел бы итерацию рекурсии. В общем, вот как я бы это написал:
На первый взгляд, я бы предостерег от использования objs[i].mesh.numFaces , так как он создает новый экземпляр сетки в памяти, и вы не вызываете утилиту dispose, чтобы удалить его - если вы решите пойти по этому пути и сравнить и polycount, и tricount, определенно сначала выполните преобразование и соберите сетки вне цикла (и, предпочтительно, также используйте snapshotAsMes). Кроме того, вы можете использовать getPolygonCount , который дает вам счетчик полигонов узла (если результатом стека является многообъектный) и счетчик вершин.
Я отредактировал свой код, используя предложения Swordslayer; сбор информации о мешах теперь происходит вне цикла, и я использую getpolygonCount, чтобы получить как poly-, так и vertcount.
Сцена, упомянутая в моем исходном вопросе, содержащая стандартные примитивные объекты 4051, больше не вызывает сбоев (и значительно быстрее), однако другая сцена, содержащая импортированные объекты, теперь вызывает «ошибку переполнения стека» внутри 3ds max . Странно то, что эта ошибка возникает только при первом запуске скрипта после запуска 3ds max. При запуске сценария через секунду (или третий и т. Д.) После того, как произошла ошибка переполнения стека, сценарий выполняется без ошибок (для его завершения требуется около 10-20 секунд), и сценарий функционирует так, как должен (как при его удалении). дубликаты объектов). Ошибка переполнения стека возникает каждый раз, когда я запускаю скрипт на исходной сцене ПОСЛЕ только что запущенного 3ds max.
Еще одна странная вещь (для меня) заключается в том, что даже при возникновении ошибки переполнения стека сценарий действительно удаляет нужные объекты (дубликаты объектов) перед выдачей указанной ошибки.
Мой текущий код:
Проблема не связана с количеством объектов / полигонов в сцене; Я запустил сценарий на сцене, содержащей 16204 стандартных примитивных объекта. Эта сцена состоит из 11 418 736 полигонов и 5 780 404 вершин, в то время как сцена с импортированными объектами, вызывающая ошибку переполнения стека, состоит всего из 703 737 полигонов и 769 886 вершин (что значительно ниже).
Ошибка, возникшая при первом сбое:
Ошибка, возникшая при втором сбое:
Произошла ошибка при третьем сбое:
Ошибка, отображаемая в окне прослушивателя, говорит мне об ошибке, возникшей в Macro_SceneExplorer.mcr в строке 1001, эта строка содержит следующий код: sceneexplorermanager.ExplorerIsOpen ~SE_SCENE_EXPLORER_NAME~
Это также говорит мне, что эта строка кода была вызвана из строки 44 моего скрипта 'delete_duplicates.ms', которая содержит следующий код: for duplicate in obj_dups do(delete duplicate)
Ошибка продолжается до тех пор, пока уровень стека не станет равным 386 . остальная часть ошибки выглядит аналогично разделу, показанному ниже (еще раз ошибка продолжается в течение длительного времени, для полной ошибки см. Ранее упомянутый файл .txt) :
Я попытался найти дополнительную информацию об ошибке «3ds Max перестал работать», используя окно просмотра событий:
Будем весьма благодарны за любые предложения о том, что я делаю неправильно / что может быть причиной этих ошибок, спасибо!
сразу вылетает макс . кто что знает?
сразу вылетает макс . кто что знает?
Unio_006 а вылетает после чего? просто при открытии script controller или после введения каких то данных? и еще в таск менеджере отрубайте процесс dwm (дважды подряд надо делать) макс стабильнее работать будет
Unio_006 а вылетает после чего? просто при открытии script controller или после введения каких то данных? и еще в такс менеджере отрубайте процесс dwm (дважды подряд надо делать) макс стабильнее работать будет
просто при запуске макса вылетает
ставил плагин мультискаттер
нет не получается . это все из за этого файла начал зависать все файлы . могу скинуть фал может найдете проблему??
Решил свою проблему!
может кому-то пригодится!
1-переходы в папку ENU
2- находим папку skripts
3- Заходим в папку skripts удаляєм все!
у меня периодически опять вышибает после этих действий
Решил свою проблему!
может кому-то пригодится!
1-переходы в папку ENU
2- находим папку skripts
3- Заходим в папку skripts удаляєм все!
Отличное решение проблемы. 10 баллов. А ешё луче переустановить макс и винду, ну чтоб на верника.
наверняка
А так-да,согласен полностью)))
Кстати,ещё можно железо поменять. )
а что тут такого? это временные файлы,после открытия макса опять появится эта папка
рекомендуеться поставить на файле галку только для чтения. И благо он начнет исцелять МАКС и зараженние файлы.
История с вирусняком жесть вообще, он сначала заражает ваш Макс а потом макс начинает заражать все файлы.
И если все обошлось только заминкой на script controller, то это только один из вариантов действия.
RomX
Просмотр профиля
-- Error occurred during fileIn in 3DZver RomX Просмотр профиля -- Error occurred during fileIn in 3DZver В этом видео мы разберем наиболее частые проблемы при открытии сцен в 3Ds Max. В этом видео мы разберем наиболее частые проблемы при открытии сцен в 3Ds Max. Как открыть сцену с ошибкой Application Error. Сцена max* не открывается и вылетает. Иногда бывает что при открытии сцены в 3Ds Max всплывает ошибка о немедленном закрытии программы, либо сам файл долго грузится и отказывается открываться. В таких ситуациях проще вставить элементы проекта по отдельности через команду Merge, способом исключения можно выделить те объекты которые долго открываются, либо с поломанной геометрией. APPLICATA + CONNECTER MATERIALS LIBRARY Проблема долгого открытия сцены в 3Ds Max. Если 3Ds Max очень долго открывает ваши сцены, либо вовсе зависает и перестает работать в процессе, то явно необходимо принять меры. Всего можно выделить две проблемы. Вредоносные скрипты Крайне неясным остается вопрос откуда берутся изначально и каким образом попадают в вашу сцену max* вредоносные скрипты. Если ваша работа в программе становится невыносимой: постоянные принудительные закрытия 3Ds Max, долгие открытия проекта, не выходит сохранить сцену, вылеты при отмене действия, монструозно очень высокий вес файла там где этого не должно быть, то стоит проверить программу на заражение скриптами. Помимо ручных решений есть и автоматизированные. по 3Ds Max + Corona Render MINIMAL INTERIOR Использование Proxy Вопреки расхожему мнению использование Proxy файлов не сделает ваш рендер качественнее и быстрее, по сути, если хватает оперативной памяти, рендер будет стартовать даже быстрее без Proxy. Другое дело, когда памяти видеокарты и оперативной памяти не хватает, что случается чаще всего. Cцена очень туго вращается, с малым количеством кадров в секунду (FPS, можно узнать нажав "7" на клавиатуре), а при нехватке оперативной памяти будет очень долго стартовать рендер на этапе Scene parsing и Geometry в Corona Render. В случае, если программе все же удалось выгрузить все данные сверх лимита оперативной памяти в файлы подкачки на жесткий диск C, то не факт что рендер будет идти с должной скоростью, так как могут быть не задействованы все ядра компьютера. Процессор может не рендерить на все 100%. Подробнее о конфигурации компьютера для 3Ds Max вы можете узнать из статьи. Особо тяжелые модели можно упросить переведя в Proxy, во вьюпорте они будут отображаться в виде облака точек, либо упрощённого бокса, а из за сжатия будут потреблять меньше оперативной памяти. Очень важно предварительно свести модель состоящую из множества отдельных элементов в один единый объект, вручную Attach, либо скриптом QuickAttach. Иначе каждый отдельный предмет будет отдельным Proxy файлом. Читайте также:
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\CharacterPluginObject.ms Exception: -- Syntax error: at dotNetControl, expected
-- In line: function g -- Error occurred during fileIn in
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\MergeAnimation.ms Exception: -- Syntax error: at dotNetControl, expected
-- In line: dotNetControl l -- Error occurred during fileIn in
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\NET_ListViewWrapper.ms Exception: -- Compile error: Undeclared variable: dotNetClass
-- In line: m_dnColor = dotNetClass " -- Error occurred during fileIn in
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\NET_TreeViewWrapper.ms Exception: -- Compile error: Undeclared variable: dotNetClass
-- In line: m_dnColor = dotNetClass " >> MAXScript MacroScript Compile - C:\Program Files\Autodesk\3ds Max 9\UI\MacroScripts\Macro_Help.mcr Exception: -- Syntax error: at dotNetControl, expected
-- In line: button b >> MAXScript MacroScript Compile - C:\Program Files\Autodesk\3ds Max 9\UI\MacroScripts\Macro_NamedSelSets.mcr Exception: -- Syntax error: at dotNetControl, expected
-- In line: dotNetControl v
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\CharacterPluginObject.ms Exception: -- Syntax error: at dotNetControl, expected
-- In line: function g -- Error occurred during fileIn in
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\MergeAnimation.ms Exception: -- Syntax error: at dotNetControl, expected
-- In line: dotNetControl l -- Error occurred during fileIn in
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\NET_ListViewWrapper.ms Exception: -- Compile error: Undeclared variable: dotNetClass
-- In line: m_dnColor = dotNetClass " -- Error occurred during fileIn in
>> MAXScript Auto-load Script Error - C:\Program Files\Autodesk\3ds Max 9\stdplugs\stdscripts\NET_TreeViewWrapper.ms Exception: -- Compile error: Undeclared variable: dotNetClass
-- In line: m_dnColor = dotNetClass " >> MAXScript MacroScript Compile - C:\Program Files\Autodesk\3ds Max 9\UI\MacroScripts\Macro_Help.mcr Exception: -- Syntax error: at dotNetControl, expected
-- In line: button b >> MAXScript MacroScript Compile - C:\Program Files\Autodesk\3ds Max 9\UI\MacroScripts\Macro_NamedSelSets.mcr Exception: -- Syntax error: at dotNetControl, expected
-- In line: dotNetControl v
Исправляем ошибки возникающие при долгом открытии сцен и частом вылете программы.
Исправляем ошибки возникающие при долгом открытии сцен и частом вылете программы.