Импорт OBJ геометрии и текстур в сцену

Программирование на Юнити.

Импорт OBJ геометрии и текстур в сцену

Сообщение vfxdomain 04 май 2011, 18:44

Приветствую всех форумчан!

Столкнулся с проблемой решение которой найти не получается, доку по юнити скрипту читал, к сожалению не нашел ответа. Проблема эта в 3Д пакетах решается очень просто (через Python, MaxScript, LScript), но повторить процесс в юнити у меня никак не выходит...

Имеются полные пути до .OBJ файла, нескольких текстур и их назначения (normal map, diffuse, specular, displacement), все это считано из текстового файла и хранится в переменных в моем скрипте. Например в переменной MyGeo у меня "C:\TEMP\My_Project\Sphere.obj", в переменной MyTexture_Diffuse у меня "C:\TEMP\My_Project\Sphere_Diffuse.png", в переменной MyTexture_Normal у меня "C:\TEMP\My_Project\Sphere_Normal.png"

Далее нужно сделать казалось бы довольно простую вещь, а именно:
Импортировать OBJ файл из переменной MyGeo и загрузить его в сцену в Editor, назначить этой геометрии нужный шейдер и загрузить в него текстуры из переменных MyTexture_Diffuse и MyTexture_Normal

Вот как раз это у меня никак не получается сделать! В любом 3Д пакете имея пути к файлам геометрии и текстурам в переменных, загрузить их в сцену, отобразить в окне viewport и назначить геометрии текстуры не представляет никакой сложности, делается элементарно! Я конечно понимаю что Unity это не совсем 3Д пакет, мягко говоря, но таких сложностей все таки не ожидал...

Буду крайне благодарен за помощь в поиске решения этой проблемы!
vfxdomain
UNец
 
Сообщения: 13
Зарегистрирован: 01 май 2011, 16:25

Re: Импорт OBJ геометрии и текстур в сцену

Сообщение Neyl 04 май 2011, 19:24

Если вам нужно сделать это в рантайме, то можно воспользоваться таким скриптом-импортером.
http://www.everyday3d.com/blog/index.ph ... e-unity3d/

Хотя, лучше было бы скопировать ваш obj и текстуры в проект, воспользоваться AssetPostprocessor для настройки текстур, материалов и префаба с вашим мешем. А затем добавить полученный префаб в сцену через EditorUtility.InstantiatePrefab.
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Импорт OBJ геометрии и текстур в сцену

Сообщение DbIMok 04 май 2011, 19:25

скопировать ваш obj и текстуры в проект

например, c:\work\Project\Assets\Resources\Models
Справка
Unity can read .FBX, .dae, .3DS, .dxf and .obj files
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Импорт OBJ геометрии и текстур в сцену

Сообщение vfxdomain 04 май 2011, 20:16

Спасибо за ответы!

Neyl, загружать геометрию и текстуры мне нужно не в рантайме, просто во вьюпорт Editor-а. Почитаю насчет префабов, возможно так удастся что то сделать. Удивительно что нет простого способа сделать через скрипт то, что можно из едитора сделать простым Assets -> Import New Asset......

Для экспорта моделей я использую вот этот скрипт ObjExporter: http://www.unifycommunity.com/wiki/inde ... bjExporter
Нашел так же и ObjImporter: http://www.unifycommunity.com/wiki/inde ... bjImporter
но использовать его для моих целей не выходит, возможно я что то делаю не так? Можно с помощью этого скрипта имея путь к OBJ затащить его в Editor?
vfxdomain
UNец
 
Сообщения: 13
Зарегистрирован: 01 май 2011, 16:25

Re: Импорт OBJ геометрии и текстур в сцену

Сообщение DbIMok 04 май 2011, 20:47

1. положите obj в каталог проекта (ваш проект Assets)
2. перетяните то что в итоге получилось в окошке проекта в сцену
3. ...
4. profit!

вы слишком мудрствуете все действительно просто, ничего писать не надо (для начала)
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Импорт OBJ геометрии и текстур в сцену

Сообщение Neyl 04 май 2011, 21:01

Удивительно что нет простого способа сделать через скрипт то, что можно из едитора сделать простым Assets -> Import New Asset......

Простой способ это и есть копирование файла в папку Assets проекта, unity самостоятельно импортирует все новые или изменившиеся объекты в этой папке своим встроенным импортером(obj он поддерживает).
Если зачем то надо импортировать файлы скриптами из другой папки на диске, то это делается тоже элементарно.
Синтаксис:
Используется csharp
        string MyGeo = @"C:\TEMP\My_Project\Sphere.obj";
        string fileName = Path.GetFileName(MyGeo);
        File.Copy(MyGeo, Application.dataPath + "\\" + fileName, true);
        AssetDatabase.Refresh();
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Импорт OBJ геометрии и текстур в сцену

Сообщение vfxdomain 04 май 2011, 22:53

DbIMok писал(а):1. положите obj в каталог проекта (ваш проект Assets)
2. перетяните то что в итоге получилось в окошке проекта в сцену
3. ...
4. profit!

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

Я с вами согласен, но... Желание клиента что бы все работало через "кнопочку", так что увы и ах! #-o

Neyl писал(а):
Удивительно что нет простого способа сделать через скрипт то, что можно из едитора сделать простым Assets -> Import New Asset......

Простой способ это и есть копирование файла в папку Assets проекта, unity самостоятельно импортирует все новые или изменившиеся объекты в этой папке своим встроенным импортером(obj он поддерживает).
Если зачем то надо импортировать файлы скриптами из другой папки на диске, то это делается тоже элементарно.
Синтаксис:
Используется csharp
        string MyGeo = @"C:\TEMP\My_Project\Sphere.obj";
        string fileName = Path.GetFileName(MyGeo);
        File.Copy(MyGeo, Application.dataPath + "\\" + fileName, true);
        AssetDatabase.Refresh();

Вот это уже интересно, кажется то что нужно! Спасибо, буду с утра пробовать, сегодня уже сил нет, после тренажеров голова не варит совсем.

Всем спасибо за ответы!
vfxdomain
UNец
 
Сообщения: 13
Зарегистрирован: 01 май 2011, 16:25


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5