define('DISALLOW_FILE_EDIT', true); define('DISALLOW_FILE_MODS', true); /dev/head — Экспорт анимации из 3dMax в XNA

Экспорт анимации из 3dMax в XNA

Любители-разработчики компьютерных игр уже два года бьются над проблемой экспорта 3d моделей из 3dMax-а  в Visual Studio. Именно любители, гуру создания компьютерных игр - эта проблема уже была решена. С момента появления одной из первых компьютерных игр Арканойд и еще ряда игр типа BattelTank, Orion и Larry написанных под Dos, опять появляются программисты-одиночки, благодаря пакету программ http://create.msdn.com/en-us/home/getting_started XNA Game Studio и Visual Studio Express  выпущенных фирмой http://www.microsoft.com/ru/ru/default.aspx Microsoft два года назад.
После появляния Арканойда за разработку игр берутся серьезные компании, которые вкладывают в этот бизнесс громадныеденьги и окупают их в десять раз больше. Так появляются на свет StarCraft, Heroes 3, Civilization 3  - игры с двумерной спрайтовой анимацией, затем появляется MaxPayne уже с 3d моделями, смоделированными в 3dMax-е четвертой версии, Heroes 5, Civilization 5,Counter Strike, Doom 3, Crisys здесь анимация уже трехмерная. Но стоимость затраченная на компьютерное оборудование и  программы, а так же  разделения труда разработчиков КИ на программистов, художников модельеров, писателя сюжета игры и  тестировщиков игры,не дают никакой возможности обычному пользователю компьютера, а точнее разработчику компьютерной игры индивидуалу, в домашних условиях написать компьютерную игру. Сейчас благодаря XNA и  http://usa.autodesk.com/adsk/servlet/pc/index?id=13567410&siteID=123112
3dMax-у опять наступает эра разработчиков компьютерных игр одиночек.
XNA и Visual Studio Express распространяются фирмой Microsoft абсолютно бесплатно. да и для разработки игр есть форумы - http://www.codeplex.com/ CodePlex  и   http://msdn.microsoft.com/ru-ru/library/ms123401.aspx  Cправка по программе Visual Studio, где на ваш вопрос ответят сами программисты из Microsoft. Собственно, когда XNA только появился, то экспорт 3d моделей из 3dMax-а уже был реализован в http://depositfiles.com/files/6z1tc0in1 XNA FrameWork  - это стандартные классы написанные на C++ и скомпилированные в библиотеки .dll, вроде как NetFrameWork, только для игр. Это можно посмотреть в этом http://depositfiles.com/files/3fd0q14fn проекте для Visual Studio, а именно в этом коде файла-класса
ShadowMapping.cs
// Loop over meshs in the model
 foreach (ModelMesh mesh in model.Meshes)
 {
 // Loop over effects in the mesh
 foreach (Effect effect in mesh.Effects)
 {
 if (effect.GetType() == typeof(BasicEffect))
 {
 BasicEffect effect1 = (BasicEffect)effect;
 effect1.World = WorldMatrix;
 effect1.View = Matrix.CreateLookAt(new Vector3(0.0f, 100.0f, 50.0f), Vector3.Zero, Vector3.Up);
 effect1.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f),
 aspectRatio, 1.0f, 1000.0f);
 }
 // Set the currest values for the effect
 //effect.CurrentTechnique = effect.Techniques[techniqueName];
 // effect.Parameters["World"].SetValue(world);
 // effect.Parameters["View"].SetValue(view);
 //effect.Parameters["Projection"].SetValue(projection);
 // effect.Parameters["LightDirection"].SetValue(lightDir);
 //effect.Parameters["LightViewProj"].SetValue(lightViewProjection);
 // if (!createShadowMap)
 // effect.Parameters["ShadowMap"].SetValue(shadowRenderTarget);
 }
 // Draw the mesh
 mesh.Draw();
 }
Я его немного поправил, потому что проект двух-летней давности у меня не сохранился на компьютере, поэтому я скачал с сайта один из проектов и реализовал его, как это сложилось исторически. Как мы видим в проекте для файла 3d модели dude.fbx назначен стандартный импротер Autodesk FBX - XNA Framework и экспортер Model - XNA Framework.Вот картинка -
 Ckjlfn Dude
Рендер довольно очень страшный, но писать игру в специализированной среде разработки игр уверяю вас значительно легче, чем все это делать с нуля. Из 3dMax-а модель экспортируется при помощи стандартного .fbx экспортера встроенного в 3dMax, забыл отметить, что XNA  поддерживает только файлы 3dмодели формата .x  DirectX-овский стандарт и .fbx Собственно, когда это увидели юные дизайнеры 3dMax-а, то первое о чем затрубил интернет - это  "Анимация из 3dMax-а, Анимация из 3dMax-а" Действительно вся анимация в XNA заключается в вращении модели, перемещении и масштабировании. А как заставить того же солдата dude.fbx не просто сдвигаться, а дать кулаком по морде своему врагу. Год назад эта анимация, которая называлась скелетной анимацией, в одном из проектов Visual Studio была реализованна. Суть ее заключалась в том, что в 3dMax-е рисуется модель человека или человеко-подобного существа на нее натягивается скелет Bip, и к модели применяется модификатор Skin. Все, затем к скелету подгружается файл движения формата .bip и ваша модель солдата секунд 7-8 дерется у вас на экране монитора. Файлов движения для 3dMax-а полно в мультистудии телепроекта "Мульт Личности", который показыватся по первому или второму каналу. Там они их делают на очень дорогом оборудовании сенсорного захвата движения. Т.е. актер цепляет на себя датчики и 3dмодель повторяет в программе 3dMax все его движения и затем компьютер все это записывает в файл формата .bip Так, что если у вас есть время и желание едьте туда и выпрашиваете эти файлы в Останкино. Несколько файлов можно купить в моем
http://artem00511.narod.ru/html_shop/index.html?idn=65086 интернет магазине. Такую анимацию я затем пробовал  экспортировать при помоши стандартного fbx экспортера, но модель почему-то в окне XNA проекта превращалась в паучка, т.е кости модели почему-то изворачивались и ничего подходящего, как "паук" названия к такой модели я не вижу. Неделю назад мне удалось экспортировать анимацию при помощи вот этого http://www.kwxport.org/ экспортера 3dMax-а. Он экспортирует анимацию в формат .x
Вот так должно выглядеть окно экспортера перед экспортом модели.
KWX Exporter
Рассказывать, что обозначает каждая опция я не буду, главное, что это работает.
Реализованно это вот в этом http://depositfiles.com/files/6lvvqh300"]проекте Можете запустить его и посмотреть, не забудьте нажать правой кнопкой мыши в окне для просмотра анимации. Собственно модель, которую я анимировал - это Robot.x, экспортер CPU Skinned Model для нее написан в этом решении проекта, а именно проекты CpuSkinningDataTypes (Windows) и CpuSkinningPipelineExtensions, оба пректа компилируются, как библиотеки, а не екзешники. Обе билиотеки CpuSkinningDataTypes.dll и CpuSkinningPipelineExtensions.dll можно найти в папке CPUSkinningSample_4_0CpuSkinningPipelineExtensionsbinx86Debug. Теперь, чобы написать игру с нуля можно либо влючить эти проекты к вашему решению, либо указать эти библиотеки, как ссылки. А именно в папку Content обе ссылки, а в основной проект CpuSkinningDataTypes.dll. И пользоваться ими, как обычно. Dll - шки - это обычные файлы-классы, только скомпилированные в один файл для удобства и может еще для разделения труда программистов. Типа одни товарищи пишут одни Dll - шки другие другие, а потом кто-то один их собирает в один проект. Инициализируется модель вот так -
cpuRobot = Content.Load<CpuSkinnedModel>("Robot");
Этот код добавляет анимацию -
// Create an animation player, and start decoding an animation clip.
 animationPlayer = new AnimationPlayer(cpuRobot.SkinningData);
 AnimationClip clip = cpuRobot.SkinningData.AnimationClips["Anim1"];
 animationPlayer.StartClip(clip);
Anm1 - это название анимации, которую вы указали при экспорте модели из 3dMax-а
В методе Update() пишеться вот такая строчка
// update animations
 animationPlayer.Update(gameTime.ElapsedGameTime, true, Matrix.Identity);[/code] И наконец последнне метод Draw() [code]
 graphics.GraphicsDevice.Clear(Color.LightGoldenrodYellow);
 spriteBatch.Begin();
 //выведем фоновое изображение
 // spriteBatch.Draw(txtBack, recBack, Color.White);
 //Выведем игровые объекты // Compute camera matrices.
 const float cameraDistance = 180;
 Matrix view = Matrix.CreateTranslation(0, -40, 0) *
 Matrix.CreateRotationY(MathHelper.ToRadians(0f)) *
 Matrix.CreateRotationX(MathHelper.ToRadians(0f)) *
 Matrix.CreateLookAt(new Vector3(0, 0, cameraDistance), new Vector3(0, 0, 0), Vector3.Up);
 Matrix projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, GraphicsDevice.Viewport.AspectRatio, 1, 1000);
 // reset graphics state to be appropriate for drawing our model
 graphics.GraphicsDevice.BlendState = BlendState.Opaque;
 graphics.GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise;
 graphics.GraphicsDevice.DepthStencilState = DepthStencilState.Default;
 graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap; // draw the correct model based on our current rendering mode
 if (displayCpuModel)
 {
 foreach (CpuSkinnedModelPart modelPart in cpuRobot.Parts)
 {
 modelPart.SetBones(animationPlayer.SkinTransforms); modelPart.Effect.SpecularColor = new Vector3(1f);
 modelPart.Effect.SpecularPower = 32f;
modelPart.Effect.World = world;
 modelPart.Effect.View = view;
 modelPart.Effect.Projection = projection; modelPart.Effect.EnableDefaultLighting();

modelPart.Effect.DirectionalLight0.Direction = Vector3.Forward;
 modelPart.Effect.DirectionalLight0.Enabled = true;
 modelPart.Effect.DirectionalLight1.Enabled = true;
 modelPart.Effect.DirectionalLight2.Enabled = true;
modelPart.Draw();
 }
 }
Теперь поговорим о небольшой моей хитрости. В 3dMax - е нельзя записать множественную анимацию в один файл .x А  в некоторых играх хотелось бы записать несколько анимаций персонажа, например ходьба, прыжок, приседание, в один файл и не просто записать но еще иметь возможность обращаться к таким анимациям по индексу, самый идеальный  вариант "Anim1", "Anim2","Anim3" индекс здесь 1,2 и 3 ну еще может добавить анимацию смерти "Death"
Что для этого нужно сделать.

  • в 3dMax-е при помощи Mixer загружаем несколько .bip анимаций одна за другой.
  • вычисляем кадр начала и конца для каждой анимации и
  • в экспортере, смотрите картинку сверху задаем первый кадр, кол-во кадров и название анимации "Anim1", два, три и т.д.
Все, теперь в коде проекта  XNA можно обращаться к каждой анимации таким образом.
int i;
 i=3;
 AnimationClip clip = cpuRobot.SkinningData.AnimationClips["Anim"+i.ToString()];
 animationPlayer.StartClip(clip);
Но история не стоит на месте, скоро 3d дизайнеры потребуют от программистов Microsoft экспорта произвольной анимации из 3dMax, поэтому живем, как и раньше, ждем, следим за новостями http://create.msdn.com/en-US/education/catalog/ сайтов, и радуемся жизни.
Конец статьи. автор - Харченко Артем

Теги: , , ,

Дата: 11 января 2011

Автор: artem005

Комментарии: 3 261

Комментарии: 3261

  1. наркологический стационар [url=https://vyvod-iz-zapoya-na-domu-samara-3.ru/]vyvod-iz-zapoya-na-domu-samara-3.ru[/url] .

  2. Карта делает видимой причинно-следственную связь: пациент понимает, зачем и что именно делается; семья видит «точки проверки»; врач получает опору для изменения одного параметра без разрушения всего плана.
    Получить больше информации - [url=https://vyvod-iz-zapoya-saratov0.ru/]вывод из запоя капельница в саратове[/url]

  3. Тендерный специалист помогает разобраться в особенностях каждого закона, а также обеспечивает грамотное сопровождение всех процедур. Это особенно важно для компаний, которые только начинают участвовать в торгах и не имеют опыта работы с государственными контрактами.
    Глубже в тему — здесь - https://tendernoe-soprovozhdenie-rostov-na-donu.ru/

  4. Команда «КарелМед Центра» объединяет наркологов, психиатров, реаниматологов, клинических психологов, специалистов по реабилитации и социальному сопровождению. Мы работаем без очередей и навязчивых формальностей, а логистика визита, оформление в стационар и коммуникации с родственниками выстроены бережно: конфиденциальные записи, немаркированные выезды, отдельный вход и нейтральная терминология в документах. Вы получаете не только купирование абстиненции и детоксикацию, но и системную работу с триггерами, привычками и межличностными конфликтами — тем, что часто возвращает к употреблению даже после «идеальных капельниц».
    Выяснить больше - https://narkologicheskaya-klinika-petrozavodsk0.ru/chastnaya-narkologicheskaya-klinika-petrozavodsk/

  5. Инфузионная терапия — не универсальный раствор «для всех». Её смысл — восстановить объём циркулирующей крови, скорректировать электролиты, снизить токсическую нагрузку, мягко приглушить тремор и тревогу, вернуть условия для сна. Мы начинаем с оценки реакции организма и двигаемся небольшими порциями, чтобы избежать «перегрева» препаратами. При выраженной тошноте подключаем противорвотную поддержку и гастропротекцию; при необходимости — печёночные субстраты и витамины группы B; кардиологические или антигипертензивные решения применяем только по показаниям. Врач сразу оговаривает, какие ощущения нормальны (сонливость, умеренная слабость, сухость во рту), а какие — повод для немедленной связи. Такой реализм даёт не косметическое облегчение «на час», а устойчивую траекторию на дни: эффект инфузий не «сгорает» к вечеру, потому что их поддерживают правила сна, воды и питания.
    Ознакомиться с деталями - https://narkologicheskaya-klinika-podolsk9.ru/narkologicheskaya-klinika-stacionar-v-podolske

  6. скачать видео из ютуб онлайн [url=https://skachat-video-s-youtube-2.ru/]скачать видео из ютуб онлайн[/url] .

  7. сервис скачивания с ютуба [url=https://skachat-video-s-youtube-1.ru/]skachat-video-s-youtube-1.ru[/url] .

  8. Переход между этапами определяется клиническими критериями эффективности и переносимости, а также динамикой поведения в повседневной среде.
    Получить дополнительную информацию - [url=https://lechenie-alkogolizma-lugansk0.ru/]lechenie-alkogolizma-lugansk0.ru/[/url]

  9. Как подчёркивает врач-нарколог клиники «Гармония здоровья» Александр Ветров, «любая зависимость — это не слабость, а болезнь, требующая медицинского вмешательства и системного подхода».
    Получить дополнительную информацию - [url=https://narkologicheskaya-klinika-voronezh9.ru/]анонимная наркологическая клиника в воронеже[/url]

  10. Финансовые инструменты позволяют заказчику убедиться в надежности участника и его готовности выполнить обязательства по контракту. При этом грамотное сопровождение снижает вероятность финансовых рисков и помогает правильно оформить документы для банка.
    Все тайны раскрыты - [url=https://tendernoe-soprovozhdenie-rostov-na-donu.ru/]комплексное тендерное сопровождение в ростове на дону[/url]

  11. Домашний формат выбирают, когда обстановка позволяет провести лечение в тишине и нет признаков угрозы жизни. Врач приезжает без опознавательных знаков, начинает с очной оценки и допуска к инфузии, сверяет принятые ранее препараты и аллергии, объясняет ожидаемую динамику. После запуска капельницы мягко корректируются жидкость и электролиты, проводится симптом-контроль (тремор, тошнота, тревога, головная боль), по показаниям — осторожная нормализация сна. На выходе пациент и семья получают понятные рекомендации на 24–48 часов: питьевой режим, питание, ограничения по нагрузкам, признаки тревоги и правила связи с дежурным врачом.
    Выяснить больше - https://vyvod-iz-zapoya-sergiev-posad8.ru/srochnyj-vyvod-iz-zapoya-v-sergievom-posade/

  12. Инфузионная терапия — это не универсальный «коктейль», а набор узких шагов под клиническую задачу. Главные цели понятны: вернуть объём циркулирующей жидкости и перфузию тканей, скорректировать электролиты, снизить токсическую нагрузку на печень, мягко приглушить тремор и тревожность, подготовить нервную систему к сну. При тошноте подключаются противорвотные и гастропротекция; кардиокоррекция даётся только после оценки рисков. Мы заранее проговариваем нормальные ощущения (умеренная слабость, сонливость, сухость во рту) и «красные флажки» для связи. Такой минимум достаточных вмешательств снижает побочные эффекты, делает бюджет предсказуемым и удерживает результат не часами, а днями. На этой базе обсуждаются следующие шаги: амбулаторный график, короткие психотерапевтические сессии, при показаниях — кодирование после стабилизации и исключения противопоказаний.
    Исследовать вопрос подробнее - [url=https://narkologicheskaya-klinika-himki9.ru/]anonimnaya-narkologicheskaya-klinika[/url]

  13. Капельницы в «СаратовМед Профи» — это конструктор из тщательно подобранных модулей. Каждый модуль решает одну задачу и имеет свой ожидаемый горизонт эффекта. Важно не название, а логика: задача > опора среды > как проверяем > когда ждём результат.
    Выяснить больше - http://vyvod-iz-zapoya-saratov0.ru

  14. «Трезвый Маяк» — клиника экстренной и плановой наркологической помощи с круглосуточным выездом и возможностью госпитализации. Мы аккуратно стабилизируем состояние, снимаем интоксикацию и абстиненцию, готовим к кодированию и сопровождаем пациента до устойчивой ремиссии. Работаем анонимно: врач приезжает без опознавательных знаков, документы оформляются в нейтральной формулировке и только по запросу.
    Изучить вопрос глубже - http://narkologicheskaya-klinika-sergiev-posad8.ru/narkologicheskaya-klinika-ceny-v-sergievom-posade/

  15. Капельницы в «СаратовМед Профи» — это конструктор из тщательно подобранных модулей. Каждый модуль решает одну задачу и имеет свой ожидаемый горизонт эффекта. Важно не название, а логика: задача > опора среды > как проверяем > когда ждём результат.
    Углубиться в тему - [url=https://vyvod-iz-zapoya-saratov0.ru/]наркология вывод из запоя[/url]

  16. кодирование от алкоголизма [url=https://vyvod-iz-zapoya-na-domu-voronezh-1.ru/]кодирование от алкоголизма[/url] .

  17. Наркологическая клиника «КарелМед Центр» — это круглосуточная помощь при алкоголизме и наркомании, ориентированная на безопасность, анонимность и реальный результат. Мы выстраиваем лечение как последовательность управляемых шагов: стабилизация физиологии, снижение тревоги, формирование навыков отказа, восстановление сна, возвращение к работе и семье. Каждый этап имеет цель, понятные маркеры и «окно оценки» — конкретную дату, когда команда и пациент вместе сверяют динамику и корректируют план. Такой подход снижает фармаконагрузку, убирает хаос и делает путь к ремиссии предсказуемым.
    Подробнее тут - http://narkologicheskaya-klinika-petrozavodsk0.ru/

  18. Наркологическая клиника «КарелМед Центр» — это круглосуточная помощь при алкоголизме и наркомании, ориентированная на безопасность, анонимность и реальный результат. Мы выстраиваем лечение как последовательность управляемых шагов: стабилизация физиологии, снижение тревоги, формирование навыков отказа, восстановление сна, возвращение к работе и семье. Каждый этап имеет цель, понятные маркеры и «окно оценки» — конкретную дату, когда команда и пациент вместе сверяют динамику и корректируют план. Такой подход снижает фармаконагрузку, убирает хаос и делает путь к ремиссии предсказуемым.
    Получить дополнительную информацию - http://narkologicheskaya-klinika-petrozavodsk0.ru/narkolog-petrozavodsk-otzyvy/

  19. Каждый из наших врачей не только специалист, но и психолог, способный понять переживания пациента, создать атмосферу доверия. Мы применяем индивидуальный подход, позволяя каждому пациенту чувствовать себя комфортно. Наши наркологи проводят тщательную диагностику, разрабатывают планы лечения, основываясь на данных обследования, психологическом состоянии и других факторах. Основное внимание уделяется снижению абстиненции, лечению сопутствующих заболеваний, коррекции психоэмоционального состояния.
    Исследовать вопрос подробнее - [url=https://alko-konsultaciya.ru/]вывод из запоя на дому круглосуточно смоленск[/url]

  20. Для жителей Ростова-на-Дону клиника работает по схеме «тихих маршрутов»: отдельный вход с нейтральной табличкой, окна записи в невызывающие подозрений часы, немаркированный подъезд автомобиля при выездном визите. На первом звонке диспетчер собирает только то, что влияет на безопасность: эпизоды рвоты, ЧСС/АД, ночные панические эпизоды, сопутствующие препараты, аллергии, наличие хронических заболеваний сердца. Личные и социальные детали не запрашиваются — мы придерживаемся принципа «минимально необходимой информации». По прибытии врача фиксируются базовая линия (сознание, дыхание, SpO?, температура), шкалы симптомов и переносимость небольших объёмов воды. Дальше — один точный шаг, одно «окно проверки» и прозрачное решение: продолжать модуль, модифицировать одну переменную или выключить блок.
    Детальнее - [url=https://narkologicheskaya-clinika-v-rostove-na-donu16.ru/]запой наркологическая клиника в ростове-на-дону[/url]

Добавить комментарий для Danielacupe Отменить ответ

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>