Blender 2.5 Exporter
|
|
ninth | Дата: Пятница, 17.06.2011, 15:19 | Сообщение # 1 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Ранние ревизии: Rev7 http://panda3d.org.ru/files/blender25_egg_export.py Rev 10 http://panda3d.org.ru/files/YABEE.zip Rev 11 http://panda3d.org.ru/files/YABEE_11.zip
Новые версии доступны здесь: https://github.com/09th/YABEE/ https://github.com/09th/YABEE/archive/master.zip
Возможности: - Экспорт простых мешей (модификаторы игнорируются за исключением арматуры) - Экспорт UV развёрток. - Частичный экспорт материалов и текстур - Экспорт скелетной анимации (Armature) - Экспорт ShapeKeys и их анимации - морф анимация - Экспорт тэгов через назначение их в Game logic -> properies - Экспорт незамкнутых кривых NURBS для использования в качестве Mopath - Экспериментальная генерация UV слоя с текстурами AO и тени
Дополнительно скрипт для того чтобы была возможность вытащить из блендера анимацию перемещения объектов без использования скелета http://panda3d.org.ru/files/Blender_Motion.zip
|
|
| |
serg-kkz | Дата: Понедельник, 11.07.2011, 22:49 | Сообщение # 16 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Вот Blender экспорт.
Code <VertexPool> Cube { <Vertex> 0 { 1.0 0.9999999403953552 -1.0 }
Вот 3d max экспорт.
Code <Group> Cube { <VertexPool> Cube.verts { <Vertex> 0 { -0.5 0.5 0 <UV> { 0 1 } <Normal> { 0 0 1 } }
В случае с Blender нет возможности назначить текстуру программно... так как нет координат, может что то надо в блендере тыкнуть, фиг знает. Да вот ещё шо, 1.0 0.9999999403953552 -1.0 эт точность или?
ООП -
|
|
| |
serg-kkz | Дата: Понедельник, 11.07.2011, 23:10 | Сообщение # 17 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Ещё вот вопрос: Game logic = logic Editor, это одно и тоже, а то пока искал Game logic весь взмок, так и не нашёл, хотя теги прицепил через logic Editor.
Ну ещё вопрос насчет пустышек, экспортнуть пробовал записыватся инфа ввиде:
Code <Group> Empty { <Transform> { <Matrix4> { 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 } }
Я смогу извлечь инфу о положении из этого? спрашиваю потому что, не знаю чё за <Transform>, хотя моно проверить через панду.
Добавленно
Насчет пустышек можешь не отвечать, проверил.
ООП -
Сообщение отредактировал serg-kkz - Понедельник, 11.07.2011, 23:22 |
|
| |
ninth | Дата: Вторник, 12.07.2011, 08:40 | Сообщение # 18 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| c 0.99 - это обчный прикол питона при преобразовании в float. Текстурных координат у тебя нет потому, что скорее всего ты не сделал развёртку (Edit Mode (shortkey 'Tab') -> Select all (shortkey 'A') -> UV Mapping (shortkey 'U') -> Unwrap) Quote (serg-kkz) Ещё вот вопрос: Game logic = logic Editor, это одно и тоже, а то пока искал Game logic весь взмок, так и не нашёл, хотя теги прицепил через logic Editor. В принципе да, просто я предустановки рабочего окружения использую - вверху окна рядом с менюшкой выбирается - Animation, Compositing, Default, Game Logic, и т.д. - ИМХО удобнее, чем переключать отдельно окна/панельки.
|
|
| |
serg-kkz | Дата: Вторник, 12.07.2011, 13:03 | Сообщение # 19 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| c Unwrap в блендере разобрался. Но проблема осталась, текстура всё равно не напяливается как надо, через программный подход. Единственный вариант это назначение в блендере, всё хорошо, но не всегда нужно назначать модельке текстуру в редакторе, например sky box'у, ведь текстуру неба приходиться менять. Видимо текстуры в экспортере цепляются через полигон, т. е. текстура цепляется к четырем точкам, а можно ли сделать вариант с тремя? Чтоб выбор был либо через полигон(четыре точки), либо треугольник(три точки). Соответственно полигоны строить треугольниками. Хм… возможно я туплю…!?
Могу дать образец egg, из 3d max.
ООП -
|
|
| |
ninth | Дата: Вторник, 12.07.2011, 14:26 | Сообщение # 20 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Давай. Скорее всего ты пытаешься заменить текстуру, которой нету, а надо новый texture stage вешать. Но давай на всякий случай гляну на обе модельки
|
|
| |
serg-kkz | Дата: Вторник, 12.07.2011, 14:53 | Сообщение # 21 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| texture stage? - я раньше думал это слой... хм..
Вот. модель из 3d max, я цветом выделил.
ООП -
Сообщение отредактировал serg-kkz - Вторник, 12.07.2011, 14:54 |
|
| |
ninth | Дата: Вторник, 12.07.2011, 16:16 | Сообщение # 22 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Ага, понял. У меня текстурные каналы именованные, поэтому нужно ставить через texture stage Code ts = TextureStage('ts1') ts.setTexcoordName("UVTex") Object = loader.loadModelCopy('Res/test-Blender.egg') Object.setTexture(ts, loader.loadTexture('Res/1.png'))
Впрочем, я это поправлю - будет первый канал без имени.
|
|
| |
serg-kkz | Дата: Вторник, 12.07.2011, 16:26 | Сообщение # 23 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Ясно теперь, всё таки я тупил...
ООП -
|
|
| |
ninth | Дата: Вторник, 12.07.2011, 16:51 | Сообщение # 24 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Не - ты ни при чём - в описании egg формата об этом явно не сказано, но походу все экспортёры по дефолту делают первый uv канал неименованным и дефолтный texture stage, который собсно и применяется, если не указывать ТС явно, использует неименованный канал. Ради эксперимента сделай так: Code TextureStage.getDefault().setTexcoordName("UVTex") Object = loader.loadModelCopy('Res/test-Blender.egg') Object.setTexture(loader.loadTexture('Res/1.png')) Будет нормально применяться текстура на объект из блендера и криво на максовый. В общем, не буду отличаться от остальных сделаю так же - первый - неименованный, остальные - с именами
|
|
| |
serg-kkz | Дата: Вторник, 12.07.2011, 18:11 | Сообщение # 25 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Да не, я по поводу полигонов и треугольников, почему то казалось что UV координаты в этом экспортёре рассчитываются для четырёх. а про две ещё точки забываются, и тут тупил, ведь они потом склеиваются и итог 4. А имена по идее должны присваиваться только, если назначены текстуры и равняется имени канала из редактора.
Эксперимент проводить не буду, и так ясно. А имя я потёр в egg файле, и всё стало на свои места.
ООП -
|
|
| |
ninth | Дата: Вторник, 12.07.2011, 18:19 | Сообщение # 26 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Quote (serg-kkz) А имена по идее должны присваиваться только, если назначены текстуры и равняется имени канала из редактора. Канал в блендере и так имеет имя, даже самый первый, я в общем-топросто пытался перенести один к одному. Текстуры в самом egg файле могут и не иметь ссылку на uv канал, тогда как раз и будет использоваться этот самый дефолтный неименованный.
|
|
| |
serg-kkz | Дата: Среда, 13.07.2011, 12:47 | Сообщение # 27 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Это снова я... Вот такая ситуация получается иногда после создания unwrap'а.
закономерность: вроде, после попытки затаились текстуру.
Насчет преобразований в float, ведь переделали алгоритм с версии 2.7, пытался повторить в консоли блендера(там питон 3.2) не вышло, а вот с 2.6 в панде вышло. Хотя это по сути и не баг т.к. числа равны. Но размер egg разбухает, соответственно и увеличивается время экспорта. Как же это повторить в питоне 3.2?
ООП -
|
|
| |
ninth | Дата: Среда, 13.07.2011, 13:20 | Сообщение # 28 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Не вижу текст ошибки - мелко слишком. Можешь дать из консоли на что ругается?
Х.з. - оно не каждый раз в .9999 превращается - может ещё действительно точность самого блендера. Я думаю сделаю настраиваемой точность записи - кол-во знаков после запятой.
|
|
| |
serg-kkz | Дата: Среда, 13.07.2011, 13:40 | Сообщение # 29 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| В консоле блендера пусто. В файл записывется одна строка первая, картику увеличить можно - сохранив на комп, я в полне разглядываю.
ООП -
|
|
| |
serg-kkz | Дата: Среда, 13.07.2011, 13:44 | Сообщение # 30 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Python script fail, look in the console for now...
в скрипте указывает на строку.
write_out(FILE_PATH, ANIMATIONS)
ООП -
|
|
| |