Maxscript callback script exception 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 <node> , который дает вам счетчик полигонов узла (если результатом стека является многообъектный) и счетчик вершин.
Я отредактировал свой код, используя предложения 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
Это также говорит мне, что эта строка кода была вызвана из строки 44 моего скрипта 'delete_duplicates.ms', которая содержит следующий код: for duplicate in obj_dups do(delete duplicate)
Ошибка продолжается до тех пор, пока уровень стека не станет равным 386 . остальная часть ошибки выглядит аналогично разделу, показанному ниже (еще раз ошибка продолжается в течение длительного времени, для полной ошибки см. Ранее упомянутый файл .txt) :
Я попытался найти дополнительную информацию об ошибке «3ds Max перестал работать», используя окно просмотра событий:
Будем весьма благодарны за любые предложения о том, что я делаю неправильно / что может быть причиной этих ошибок, спасибо!
Nightt
Прошу прощения.
Legion-236
Флудить начал ты. и именно ты вообще ничего по делу не высказал. "Поучайте лучше ваших поучат!"(с)
Здесь этот вопрос не поднимался!
Засим откланяюсь. Считаю бесполезным вести диалог.
По сабжу: Соглашусь с Nightt . тоже не встречал такой ошибки.
по мере возможности удаляются, иногда не все успеваю увидеть
Если не знаешь тогда и не влазь. И не учи други что им делать что бы не узнать куда тебе пойти.
Сперва нужно спросить у поиска. яндекс гугл или ещё что именно эут строчку с названием ошибки. И почитать чё эт тако вообще. Судя по надписи оно ругается потому как не может выполнить действия скрипта. вторая ошибка после чего закрывается макс говорит о недостаточности ресурсов. поэтому night и спросила про систему. Может получиться так что комп рендерит картинку а на сохранения её тупо не хватает ресурсов. Если пользуетесь сторонним скриптом, то возможно дело в нём.
Если система x32 битная тогда беда. она часто такое отхлабучивает это факт. если есть возможность поищи x64, если нет то размер картинки придётся уменьшать. Иногда помогают танцы с бубнами, не знаю как оно связано, но: перезагружаюсь, уменьшаю размер на 100pix и рендер идёт как обычно. ещё может прокатить Autosave, в настройках рендера)
Сделай рендер с маленьким разрешением, что бы помотреть действительно ли дело в памяти или мешает что то еще?
обычно выдает cannot create bitmapесли памяти не хватает
32 бита или 64 ? И не учи други что им делать что бы не узнать куда тебе пойти. А не кажется-ли вам,что вы слишком много о себе мните? Сельская манера общения вас не красит. 3DТролль. Ха! Сохранил гад)) Автосохранением сохранил))) Память 32 бит. Но я его обманула)) kovtun.mariya
поставьте уже 64 битную систему, и никаких танцев с бубном
Лет 8 пользуюсь максом и ни разу не вылезало такой ошибки. Сейчас с генерировал spline landом участок и появились. В инете пишут, что это, возможно из-за большого количества полигонов. При выделении любого объекта в сцене сразу выскакивала эта ошибка.
Сцена весит 30 мегабайт. Полигонов на только участке 270 тысяч, не так уж и много. Комп мощный. Перевел участок в едит поли и все прошло.
Вывод. Если пользуетесь плагинами и вылезла такая ошибка, значит из-за плагина.
Пишу, ибо вдруг, лет через 6 снова кому-нибудь понадобится, решение этой проблемы.
И в интернете ничего толкового не нашел. Хотя пользуюсь я им отменно. :)
Автор:
Проблема
Исключение сценария обратного вызова Maxscript
— известное системное исключение
—Адрес: 0x64e03600; nCode: 0x00000000C000005
—Desc:EXCEPTION_ACCESS_IOVLATION Напишите виртуальный адрес, для которого нет соответствующего доступа.
—Читайте адрес: 0x0000000000001128
Среда:
- Microsoft Windows 7 (с пакетом обновления 1).
- Microsoft Windows 8.1.
- Microsoft Windows 10 (любая сборка).
Причины:
- Устаревшие графические драйверы.
- В реестре Windows присутствует некорректный ключ.
Решение
- Изменить драйвер отображения в 3ds Max до запуска программы.
- Загрузите новейшие драйверы для видеокарты. Сначала полностью удалите все старые драйверы, перезагрузите компьютер и установите новейшие версии драйверов.
- Обновите драйвер видеокарты до более новой версии. Убедитесь в том, что видеокарта и драйверы поддерживаются в 3ds Max. Для этого перейдите на страницу сертифицированного оборудования для Autodesk 3ds Max. Если видеокарта имеет очень старую версию или производитель больше не выпускает для нее обновления, замените карту более современной.
- Во-первых, создайте точку восстановления системы Windows следуя инструкциям на этой странице Microsoft ,
- Когда точка восстановления сохранена, нажмите ОКНА-Р на клавиатуре, чтобы открыть окно «Запуск», введите REGEDIT и нажмите «ОК».
- Перейдите в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows.
- Дважды щелкните ключ LoadAppInit_DLLs и измените значение на 0 (ноль).
- Закройте Редактор и перезагрузите компьютер.
Заметка: Если 3ds Max показывает ошибку драйвера Microsoft Basis Render, убедитесь, что установлен самый последний драйвер видеокарты, но откат встроенного графического драйвера материнской платы.
Предупреждение!
Проблемы, вызванные неправильным редактированием реестра Windows, могут привести к отказу операционной системы. Корпорацией Майкрософт подготовлено большое количество информации о работе с реестром, которую можно найти в базе знаний Майкрософт Используйте редактор реестра Microsoft на свой страх и риск. Предварительно сделайте резервную копию реестра в соответствии с инструкциями для вашей операционной системы, представленными в статье Майкрософт Резервное копирование и восстановление реестра в Windows и связанной статье Резервное копирование системного реестра. Дополнительные сведения о реестре также содержатся в разделах справки редактора реестра Microsoft.
Игорь, Да, это то что нужно) Спасибо огромное) Ручками выдавливать четверть меня оочень не вдохновляло
Всем привет. Вопрос от салаги. Подскажите, почему на выделенных полигонах, при нажатии quickslice , он выделяется только на одном полигоне и как это изменить. А когда нажимаю на нижний уровень, чтоб сделать подоконник - он мне от верхнего quickslice тянет вниз.
Подскажите почему после quick peel+ relax пропорции текстуры не соответствуют пропорции объекта? высота и ширина. он сплюснутый капец. как такое текстурировать? сплющивать текстуру?
Помогите, пожалуйста, понять, как пофиксить ошибки от 3д Макса.1. maximum nested error dialog depth reached и 2.maxscript callback script exception. Выдает их, когда загружаю сцену. Если создавать новую сцену - сохранять, то при закрытие выдает только:2.maxscript callback script exception. 3d max - учебная версия. Vray и Corona - народные.
Всем доброго времени суток..Подскажите пожалуйста,как добавить объект к анимированной модели,без потери анимации.Например сменить одежду,но что бы анимация при этом не слетела ? Заранее благодарен за ответ.
Тол,
о какой анимации речь? Анимации одежды, которая приделана к костям с помощью Скина? Ты можешь сохранить веса вертексов одного набора одежды, и грубо перенести на другой, но правка всё равно потребуется
Всем привет) создал вокзал своего города в 3ds max для игры и при экспорте на ступеньках (брал стандартные stars с 3ds) происходит вот это (дальше не экспортит)
И дальше как я уже говорил 2 кнопки ок и сancel, причем если нажать ок то макс вырубается, а если cancel, то начинает рендерить следующую камеру.
Жду советов.
JBond
Знаток
Вложения
Di_di_0
Активный участник
Di_di_0
Активный участник
У кого нибудь есть предположения?
JBond
Знаток
Знаток
Di_di_0
Активный участник
c= $camera01
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl
c= $camera02
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl
c= $camera03
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl
c= $camera04
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl
c= $camera05
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl
Про анимированную камеру думал, но никак руки не дойдут пока, Попробую в ближайшее время. Но лучше все-таки придумать как эту ошибку отловить.
JBond
Знаток
1. Напрямую через рендер команду (буду писать к одной камере) :
c= $camera01
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl quiet:true
2.Через try() catch() :
try (
c= $camera01
render camera:c outputwidth:dimx outputheight:dimy outputfile dirr+rn+c.name+frm) vfb:vkl quiet:true
)
catch()
JBond
Знаток
Если так не получится попробуем закрывать окно напрямую вроде есть Callback который это может делать.
Di_di_0
Активный участник
Спасибо за совет! Потестирую. Про try()catch() интересная задумка.
Но кажется настройки здесь не причем, потому что иногда рендер при помощи фотонов тем же заканчивается.
Знания
Изучите основы и оттачивайте навыки для повышения эффективности работы в 3ds Max
Support
Проблема
Обратный вызов сценариев MAXScriptИсключение
Среда:
Причины
Решение
Выполните следующие действия:
- Изменить драйвер отображения в 3ds Max до запуска программы.
- Загрузите новейшие драйверы для видеокарты. Сначала полностью удалите все старые драйверы, перезагрузите компьютер и установите новейшие версии драйверов.
- Обновите драйвер видеокарты до более новой версии. Убедитесь в том, что видеокарта и драйверы поддерживаются в 3ds Max. Для этого перейдите на страницу сертифицированного оборудования для Autodesk 3ds Max. Если видеокарта имеет очень старую версию или производитель больше не выпускает для нее обновления, замените карту более современной.
Если это не решит проблему, может возникнуть необходимость внести изменения в ключ реестра Windows (см. Предупреждение ниже).
- Во-первых, создайте точку восстановления системы Windows следуя инструкциям на этой странице Microsoft ,
- Когда точка восстановления сохранена, нажмите ОКНА-Р на клавиатуре, чтобы открыть окно «Запуск», введите REGEDIT и нажмите «ОК».
- Перейдите в HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Windows.
- Дважды щелкните LoadAppInit_DLLs и измените значение на 0 (ноль).
- Закройте Редактор и перезагрузите компьютер.
Если проблема сохраняется даже после изменения ключа реестра, выполнить очистку от 3ds Max.
Заметка: Если 3ds Max показывает ошибку драйвера Microsoft Basis Render, убедитесь, что установлен самый последний драйвер видеокарты, но откат встроенного графического драйвера материнской платы.
Предупреждение!
Проблемы, вызванные неправильным редактированием реестра Windows, могут привести к отказу операционной системы. Корпорацией Майкрософт подготовлено большое количество информации о работе с реестром, которую можно найти в базе знаний Майкрософт Используйте редактор реестра Microsoft на свой страх и риск. Предварительно сделайте резервную копию реестра в соответствии с инструкциями для вашей операционной системы, представленными в статье Майкрософт Резервное копирование и восстановление реестра в Windows и связанной статье Резервное копирование системного реестра. Дополнительные сведения о реестре также содержатся в разделах справки редактора реестра Microsoft.
Читайте также: