Jump to content

[SOLVED] Exception при запуске проекта, ошибки в log-файле редактора


photo

Recommended Posts

Добрый день, сотрудники компании Unigine.
Имеется проблема с запуском проекта. Проект компилируется, но при запуске возникает следующий exception. Прикладываю screenshot ошибки в Visual Studio и screenshot сообщений с консоли в момент запуска.

image.thumb.png.1b59f58495ccd9fdedb655c719194803.png

Т.е. exсeption происходит в main-методе движка, что не позволяет отладить ошибку. Пробовал обрамить вызов в try/catch-конструкцию надеясь получить большую информацию о причине ошибки:

	try {
		// enter main loop
		engine->main(&system_logic, &world_logic, &editor_logic);
	}
	catch (std::exception& e) {
		std::cout << "exception: " << e.what() << std::endl;
	}

, но в catch-блок программа не заходит.

В консоли имеется пара сообщений которые могут являться причиной падения загрузки мира:

----Materials----
Engine base materials loaded: 183 / 183 (741ms)
Engine materials loaded:      68 / 68 (390ms)
User materials loaded:        119 / 119 (151ms)

----Properties----
Properties loaded:            29 / 29 (9ms)

Engine initialization: 2149ms


---- Interpreter ----
Version: 2.90

Unigine~# world_load "TanksOverflow"
Script loading "core/unigine.usc" 6ms
Loading "core/locale/unigine.locale" dictionary 0ms
The thread 0x2468 has exited with code 0 (0x0).
Mesh::info(): unknown format of "guid://dda78aa04ff99921ee0bb1c54f7914f7011de691" file
Script loading "TanksOverflow.usc" 3ms
World loading "TanksOverflow.world" 260ms
Object::setMaterial(): material "mesh_base" is not supported
Object::setMaterial(): material "mesh_base" is not supported
Object::setMaterial(): material "mesh_base" is not supported
Object::setMaterial(): material "mesh_base" is not supported
Logic Object: objects array is empty, please check broken_earthing
Exception thrown at 0x00007FFF7E889129 in TanksOverflow_x64d.exe: Microsoft C++ exception: _com_error at memory location 0x0000006351D5B658.

, т.е. имеются 2 проблемы:

  1. unknown format of file
  2. material is not supported

Помимо этого, заглянув в log-файл редактора вижу ряд ошибок.Прикладываю сам log-файл и отдельно screenshot имеющихся в нём ошибок для наглядности:

image.png.7f39351c411ce6732c11b4225eae20b6.png

Я понимаю, что в силу наличия ошибок в log-файле редактора - следует сначала избавиться от них, добившись тем самым корректной сцены, а потом уже браться за exception запуска проекта (возможно, что он полечится).
Подскажите пожалуйста:

  1. С чем может быть связаны ошибки c загрузкой библиотеки libHAPIL.dll?
  2. Можете дать рекомендации по общей методике исправления ошибки "unknown format of file"?
  3. Подозреваю, что проблема с Direct3D11 возникает из за наличия проблемы №2. Возможно, что они не связаны и Вы можете дать какие-то рекомендации по этой ошибке?
  4. Можете дать рекомендации по общей методике исправления ошибки "material "mesh_base" is not supported"?

log.html

Edited by nikolaj.kormushkin
Link to comment

Добрый день, Николай!

По проблеме с Гудини - убедитесь, что у вас установлен Гудини версии 16.0.600 и выше, а также, что он добавлен в PATH переменные. Ошибка не критичная. 

По остальным проблемам, пожалуйста, сообщите с какими аргументами вы запускаете движок.  
 

Link to comment

Спасибо, за советы.
Насколько я понял, на данный момент, Гудини у меня не установлен. Но я не уверен, т.к. пытаясь разобраться в этом вопросе наткнулся на неоднозначные для меня, два варианта, где его следует искать и чем он является.

  1. На просторах интернета ссылка наткнулся на тему, она хоть и связана с проблемой Goudini в UE4, но - это дало мне представление, что Гудини, там фигурирует как plugin и после его установки должен располагаться в директории:
    "C:/Program Files/Side Effects Software/Houdini <версия Гудини>/bin"
    У меня такой директории нет, соответственно делаю предположение, что у меня Гудини не установлен.
  2. В то-же время нашёл в Unigine SDK директории cmake-файл "FindHoudini.cmake", из кода которого:
# Copyright (C), UNIGINE. All rights reserved.

#  Find `Houdini` library.
#  Once done this will define:
#  UnigineExt::Houdini - library target.
#  Houdini_FOUND - library is found.
#  Houdini_INCLUDE_DIR - include path.

set (sdkroot $ENV{HOUDINIROOT})

find_path(Houdini_INCLUDE_DIR
	NAMES HAPI/HAPI.h
	PATHS ${sdkroot}/toolkit/include
	NO_DEFAULT_PATH
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Houdini
	FOUND_VAR Houdini_FOUND
	REQUIRED_VARS
		Houdini_INCLUDE_DIR
	)

if (Houdini_FOUND AND NOT TARGET UnigineExt::Houdini)
	add_library(__houdini_lib INTERFACE)
	add_library(UnigineExt::Houdini ALIAS __houdini_lib)
	target_include_directories(__houdini_lib INTERFACE ${Houdini_INCLUDE_DIR})
endif ()

я делаю вывод, что "${sdkroot}/toolkit/include" должен быть заголовочный файл "HAPI/HAPI.h" на основе которого создаётся библиотека "__houdini_lib" и связывается с пространством имён "UnigineExt::Houdini" внутри движка Unigine. Таким образом я ожидаю увидеть Goudini в plugin-ах Unigine, иначе как ему оказаться в 

${sdkroot}/toolkit/include

, но просматривая список доступных plugin-ов в конфигурации проекта я его не нахожу:
image.png.33416b0390978c956efce65e4b411c7f.png

Подскажите пожалуйста:

  • Где я заблуждаюсь в своём понимании Гудини как сущности?
  • Гудини следует скачивать и устанавливать отдельно?
  •  Как посмотреть упомянутую вами версию Гудини?
  • Как узнать аргументы с которыми я запускаю движок?
Link to comment
1 hour ago, nikolaj.kormushkin said:

Подскажите пожалуйста:

  • Где я заблуждаюсь в своём понимании Гудини как сущности?
  • Гудини следует скачивать и устанавливать отдельно?
  •  Как посмотреть упомянутую вами версию Гудини?

Николай, если кратко, то Houdini вам не нужен. У нас была сделана интеграция с этим приложением для процедурной обработки террейна. Эта ошибка вообще ни на что не виляет.

1 hour ago, nikolaj.kormushkin said:

Как узнать аргументы с которыми я запускаю движок?

Если вы запускаете из Visual Studio, то в настройках debugging:

Картинки по запросу visual studio debugging arguments

Если через SDK Browser, то тут: 

image.png

On 12/20/2019 at 3:57 PM, nikolaj.kormushkin said:

Можете дать рекомендации по общей методике исправления ошибки "material "mesh_base" is not supported"?

Такие ошибки могут быть, если вы назначаете mesh_base из кода объектам, которые не могут работать с этим материалом (не mesh).

Спасибо.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Спасибо!
Запускаю из студии (что приводит к описанным выше проблемам), Command Arguments: -data_path ../ -engine_config "../data/TanksOverflow/unigine.cfg" -console_command "world_load \"TanksOverflow\""
Если запускать из SDK Browser-а, то проект запускается, при этом строка Arguments пустая, как у вас на снимке.

Link to comment

Проще всего будет разобраться, если вы пришлете проект или создадите минимальную сцену для воспроизведения проблемы.

Скорее всего, проблема где-то в контенте.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

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

Link to comment
  • morbid changed the title to [SOLVED] Exception при запуске проекта, ошибки в log-файле редактора
×
×
  • Create New...