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

Комментарии: 4 618

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

  1. I blog frequently and I seriously appreciate your information. The article has truly peaked my interest. I am going to bookmark your website and keep checking for new information about once per week. I subscribed to your Feed as well.
    شراء تادالافيل عبر الإنترنت لممارسة الجنس الشرجي xxx

  2. Не каждый человек с зависимостью от алкоголя готов признать свою проблему и обратиться за помощью. Однако, когда зависимость достигает тяжелых форм, требуется профессиональное вмешательство, и комплексная реабилитация в наркологическом доме становится важнейшим этапом восстановления, при этом в некоторых случаях помощь может предоставляться бесплатно, а сама программа рассчитана на длительный срок — до нескольких лет. Признаки того, что нужна реабилитация, могут включать невозможность прекратить пить даже при наличии серьезных последствий для здоровья, социальной жизни и межличностных отношений.
    Подробнее можно узнать тут - [url=https://reabilitacziya-alkogolikov-moskva-2.ru/]реабилитация алкоголиков город[/url]

  3. К показаниям относятся: запой длительностью более 72 часов, выраженная абстиненция с тахикардией, артериальной гипертензией, профузным потоотделением, наличие в анамнезе алкогольных делириев или судорожных эпизодов, сопутствующие хронические заболевания печени, сердца, поджелудочной железы. При тяжелых формах интоксикации, когда в организме накапливаются токсичные продукты распада веществ, резкое прекращение употребления без медицинской поддержки может спровоцировать отек мозга, острую сердечную недостаточность или желудочно-кишечное кровотечение. Стационар позволяет провести полноценную диагностику, включая ЭКГ, экспресс-анализы крови и мониторинг сатурации, что формирует точную картину состояния и исключает шаблонные назначения. В случаях сочетанной зависимости, когда в анамнезе присутствует наркомании, протоколы детоксикации адаптируются под специфику психоактивных соединений и включают усиленный нейрологический контроль.
    Подробнее - [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-16.ru/]вывод из запоя в стационаре клиника[/url]

  4. Процесс вывода из запоя на дому с выездом врача в Екатеринбурге включает несколько этапов, начиная с первичного осмотра пациента и заканчивая корректировкой лечения в зависимости от его состояния. Врач-нарколог проводит полный осмотр, анализирует симптомы и составляет план лечения, который включает детоксикацию организма, поддерживающую терапию и медикаментозное лечение для снятия симптомов абстиненции.
    Получить дополнительные сведения - [url=https://vyvod-iz-zapoya-na-domu-ekaterinburg-16.ru/]вывод из запоя на дому анонимно[/url]

  5. Процесс капельницы включает внутривенное введение различных растворов, которые помогают нейтрализовать эффекты алкогольной интоксикации, включая последствия запоя и алкоголизма. Наиболее часто в составе капельницы используются солевые и глюкозные растворы, витамины группы B, а также препараты для детоксикации организма. Эти компоненты помогают быстро восстановить водно-электролитный баланс, улучшить обмен веществ и ускорить выведение продуктов распада алкоголя.
    Подробнее тут - [url=https://kapelnicza-ot-pokhmelya-samara-6.ru/]www.domen.ru[/url]

  6. Реабилитация алкоголиков в Москве: восстановление после зависимости и поддержка специалистов в наркологической клинике «Похмельная служба»
    Исследовать вопрос подробнее - [url=https://reabilitacziya-alkogolikov-moskva-4.ru/]реабилитация алкоголиков стоимость в москве[/url]

  7. Организация терапевтического процесса в условиях стационара требует слаженной работы профильной команды, четких клинических алгоритмов и непрерывного документирования каждого этапа лечения. В клинике выстроена прозрачная система взаимодействия, где пациент и его близкие получают исчерпывающую информацию о планах терапии, ожидаемых результатах, условиях пребывания и правах потребителя медицинских услуг. Мы отказались от шаблонных протоколов в пользу персонализированной медицины, где каждый шаг лечения согласовывается с динамикой состояния пациента и корректируется на основе объективных диагностических данных. Такой подход исключает избыточную фармакологическую нагрузку и минимизирует риски побочных эффектов, сохраняя при этом высокую клиническую эффективность детоксикации.
    Ознакомиться с деталями - [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-7.ru/]вывод из запоя в стационаре нижний новгород[/url]

  8. Читатель отправляется в интеллектуальное путешествие по самым ярким событиям истории и важнейшим научным открытиям. Мы раскроем тайны эпох, покажем, как идеи меняли миры, и объясним, почему эти знания остаются актуальными сегодня.
    Где можно узнать подробнее? - https://aimaxcreations.com/importance-of-a-website-to-a-business

  9. Выбор между домашней помощью и стационарным лечением часто определяется степенью физиологической зависимости и наличием сопутствующих патологий. В условиях клиники исключаются внешние триггеры, обеспечивается изоляция от источников алкоголя и создается контролируемая среда, где медицинские решения принимаются на основе объективных показателей, а не субъективных ощущений пациента. Такой подход критически важен для предотвращения осложнений, минимизации дискомфорта абстиненции и формирования устойчивой базы для дальнейшей противорецидивной работы.
    Подробнее - [url=https://vyvod-iz-zapoya-v-staczionare-nizhnij-novgorod-8.ru/]нарколог вывод из запоя в стационаре нижний новгород[/url]

  10. 1xbet giri? linki [url=https://4kfilmizlesene.org/]1xbet giri? linki[/url] .

  11. Нарколог на дом в Москве: выезд врача на дом, лечение запоя и консультации в наркологической клинике «Клиника доктора Калюжной».
    Получить дополнительную информацию - [url=https://narkolog-na-dom-moskva-21.ru/]вызвать нарколога на дом[/url]

  12. Выбор между домашней помощью и стационарным лечением определяется не удобством, а медицинской целесообразностью. В условиях клиники исключаются внешние триггеры, обеспечивается изоляция от источников алкоголя и создается контролируемая среда, где терапевтические решения принимаются на основе объективных показателей. Такой подход критически важен для предотвращения осложнений, минимизации дискомфорта абстиненции и формирования устойчивой базы для дальнейшей противорецидивной работы.
    Подробнее тут - [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-20.ru/]наркология вывод из запоя в стационаре санкт-петербург[/url]

  13. Отдельно выделяют ситуации, когда проблема выходит за рамки одного эпизода. Если запои повторяются, усиливаются последствия алкоголизма, нарушается обычный режим жизни, а состояние после употребления становится тяжелее, домашний выезд часто становится первым этапом более последовательной помощи. При выраженном ухудшении самочувствия, признаках отравлении алкоголем или высокой нагрузке на системы организма может потребоваться наблюдение не только дома, но и в стационаре.
    Разобраться лучше - https://narkolog-na-dom-ekaterinburg.ru/

  14. Есть состояния, при которых откладывать вызов врача рискованно. Домашний выезд нужен не только при «тяжёлом похмелье», но и тогда, когда самочувствие становится нестабильным, а попытки справиться своими силами уже не работают. Ниже перечислены ситуации, при которых обращение за помощью оправдано именно в ближайшее время, а не «если не станет легче к вечеру».
    Получить больше информации - http://narkolog-na-dom-voronezh.ru/

  15. Выезд нарколога на дом в Самаре организован так, чтобы пациент получил помощь без ожидания и без лишней нагрузки на организм. После обращения специалист приезжает по указанному адресу, проводит первичный осмотр, оценивает общее состояние, уровень интоксикации, показатели давления, пульса, дыхания и собирает краткий анамнез. На основании этой оценки врач определяет, можно ли безопасно оказывать помощь на дому, и подбирает подходящую схему лечения, включая возможное кодирование или вывод из алкоголизма. Такой формат позволяет начать медицинские мероприятия сразу после осмотра и быстро перейти к стабилизации состояния.
    Изучить вопрос глубже - [url=https://narkolog-na-dom-samara-5.ru/]нарколог на дом вывод[/url]

  16. Отдельного внимания требуют повторяющиеся эпизоды. Если тяжелое состояние после алкоголя возникает не впервые, а запои становятся регулярными, вопрос обычно выходит за рамки одного обращения. Тогда домашний выезд рассматривают не только как способ уменьшить острые проявления, но и как первый этап дальнейшей оценки проблемы. В подобных ситуациях нередко обсуждают не только вывод из запоя, но и то, как дальше будет выстраиваться помощь при зависимости.
    Подробнее тут - [url=https://narkolog-na-dom-moskva-21.ru/]запой нарколог на дом в москве[/url]

  17. Наркологическая помощь в Воронеже: профессиональное лечение зависимостей, выезд врача, анонимная помощь в наркологической клинике «Клиника Плюс».
    Изучить вопрос глубже - [url=https://narkologicheskaya-pomoshh-voronezh.ru/]вызов наркологической помощи в воронеже[/url]

  18. Реабилитация алкоголиков в Москве с комплексным подходом — это многогранный процесс, включающий в себя не только медицинские процедуры, но и психологическую поддержку, физическую реабилитацию и помощь в социальной адаптации. Профессиональный реабилитационный центр обеспечивает индивидуальный подход к каждому пациенту, включая такие методы, как кодирование и своевременное лечение запоя. Важно отметить, что успешное лечение алкоголизма требует учета множества факторов, таких как степень зависимости, психоэмоциональное состояние пациента, а также его физическое здоровье. Комплексный подход помогает эффективно устранить все составляющие проблемы, минимизируя риски рецидивов.
    Изучить вопрос глубже - [url=https://reabilitacziya-alkogolikov-moskva-2.ru/]клиника реабилитации алкоголиков в москве[/url]

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

*

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

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

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

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