Проекты
GameDev.ru / Проекты / Форум / Импорт SMD для XNA (xna smd content importer) + исходники

Импорт SMD для XNA (xna smd content importer) + исходники

Поделиться
ZakusПостоялецwww21 ноя. 200916:55#0
Импортер моделей SMD формата  в виде расширения для xna content pipline.

Код импортера: Zakus
Код из SkinnedSample : microsoft
Тестовая модель 1: valve
Тестовая модель 2: fpsbanana (разные автора)

smdImportXna | Импорт SMD для XNA (xna smd content importer) + исходники


В порядок правда пока сам код не переведен, также вероятны ошибки на специфических файлах, и могут отсутствовать некоторые проверки. (ещё буду доделывать)
Но на тех модельках что у меня были, работает вполне нормально. (модели в примере, сразу после декомпилятора от cannonfoder'a и без какой либо обработки)

Импортер рассчитан на работу в связке или с обычным процессором моделей (только статический меш),
или вместе с процессором из SkinnedSample (тогда будет доступна анимация)  c оф. сайта xna.
Ну и вы можете использовать свой процессор если он будет сделан по образу того что в SkinnedSample.

У smd обычно только одна анимация в файле, поэтому на базе примера от мс приходится грузить
один Model - с мешем, и в отдельные Model объекты анимацию. Просто из основного брать сам меш,
а другие не рендерить, а просто вытягивать SkinningData для AnimationPlayer.
Анимация всегда в (Model.Tag as SkinningData).Animation["Main"];

Не очень красиво в плане архитектуры,
но тут или формат переделывать или процессор свой писать вместе с классом модели, но тогда это уже задача из другой области.

В архиве солюшен для 2008 про студии, в нем совмещены - проект импортера, и слегка переделанный SkinnedSample  для демонстрации.
(бонусом мой класс first-person камеры =) )
Кнопки 1-4 разные анимации персонажа,  5-8 оружия.

Текстуры модели должны лежать в папке content проекта, но при этом не нужно их добавлять в дерево проекта в студии (добавлять только модель),
импортер их сам подхватывает когда найдет их упоминание в файле smd.

Если вы модели прям из hl2 берете или css - то текстуры нужно будет перегнать из vtf в bmp.
Материалы valve не поддерживаются(( Просто берется текстура, материал настраивайте уже сами при помощи effect и basiceffect.

Качать тут:
http://home.zakus.net/works/programming/SmdImporterAndSample.rar
(хотел залить на codeplex о не знаю как они там отнесутся к чужим моделькам в примере=)))


Использовать с XNA 3.1.


Если есть мысли по поводу кода (как упростить, замечания, конструктивная критика) - с радостью послушаю.
Ещё интересно узнать - нужен ли вам такой импортер и интересна ли вам эта тема.
Также - если найдете ошибку или что то не будет работать, или будут вопросы - пишите.

P.S.
Чуть не забыл, +/- поднять опустить камеру)

unnamedПостоялецwww22 ноя. 20099:15#1
good!
I dont download because I am using GPRS now.
WhiteWolfПостоялецwww22 ноя. 200914:12#2
Zakus
Максимальное кол-во костей для PC на HLSL 3.0 - 59?
ZakusПостоялецwww22 ноя. 200917:31#3
WhiteWolf
Для 2.0. в конкретной реализации.
WhiteWolfПостоялецwww22 ноя. 200918:01#4
Похоже что и для 3.0: vertex constants >= 256, по четыре на кость ~ 59.
ZakusПостоялецwww22 ноя. 200918:14#5
WhiteWolf
Ну как вариант, если будет больше 59,  скелет можно разделить на два объекта.
Ну в смысле как две отдельные модели.
Или же (я правда в шейдерах далеко не продвинулся - не большой специалист) как то ввиде текстуры(по несколько пикселей на матрицу) запихнуть)
Прибой94Удалёнwww22 ноя. 200921:27#6
Zakus
> Или же (я правда в шейдерах далеко не продвинулся - не большой специалист) как
> то ввиде текстуры(по несколько пикселей на матрицу) запихнуть)
Интересная идея... Извращение.

/ Форум / Проекты / Оцените

Тема в архиве.

2001—2017 © GameDev.ru — Разработка игр