Экспорт анимации из 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.Вот картинка -
Рендер довольно очень страшный, но писать игру в специализированной среде разработки игр уверяю вас значительно легче, чем все это делать с нуля. Из 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
Вот так должно выглядеть окно экспортера перед экспортом модели.
Рассказывать, что обозначает каждая опция я не буду, главное, что это работает.
Реализованно это вот в этом 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/ сайтов, и радуемся жизни.
Конец статьи. автор - Харченко Артем
13 мая 2026 / 21:10
Нарколог на дом в Ростове-на-Дону рассматривается как специализированная форма оказания медицинской помощи пациентам с зависимостями вне стационара. В клинике «Чистый Баланс» выезд врача организуется круглосуточно, что позволяет обеспечить своевременное вмешательство при ухудшении состояния в любое время суток. Нарколог на дом в Ростове-на-Дону востребован в ситуациях, когда пациент не готов или не может обратиться в медицинское учреждение, а промедление с лечением повышает риск осложнений. Такой формат помощи требует строгого соблюдения клинических протоколов и высокой квалификации специалистов.
Узнать больше - [url=https://narkolog-na-dom-v-rnd19.ru/]нарколог на дом[/url]
13 мая 2026 / 21:11
В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
Как это работает — подробно - [url=http://vse-novosti.net/rekomendaczii-po-lecheniyu-alkogolizma-2/]лечение алкогольной зависимости цены[/url]
13 мая 2026 / 21:45
Непрерывный мониторинг витальных показателей — ключевое отличие стационарного формата, обеспечивающее безопасную детоксикацию. В палатах клиники «Элегия Мед» установлены системы отслеживания частоты пульса, сатурации, температуры и артериального давления, данные с которых автоматически передаются в электронную медицинскую карту. Медицинский персонал дежурит круглосуточно, что обеспечивает мгновенную реакцию на ухудшение состояния: коррекцию инфузионной терапии, введение симптоматических препаратов, привлечение смежных специалистов при необходимости. Такая организация процесса исключает хаотичное назначение средств, предотвращает полипрагмазию и гарантирует, что каждый этап детоксикации проходит под строгим клиническим контролем. При необходимости применяются дополнительные методы очищения крови, включая плазмаферез, который эффективно помогает вывести стойкие токсины и метаболиты, не удаляемые стандартной инфузионной терапией.
Исследовать вопрос подробнее - [url=https://vyvod-iz-zapoya-v-staczionare-sankt-peterburg-18.ru/]стационар вывод из запоя санкт-петербург[/url]
13 мая 2026 / 22:12
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Получить дополнительные сведения - [url=https://beztravmy.ru/raznoe/pokazaniya-k-nachalu-lecheniya-alkogolizma.html]лечение алкогольной зависимости цены[/url]
13 мая 2026 / 22:14
Читатели получат представление о том, как современные технологии влияют на развитие медицины. Обсуждаются новые методы лечения, персонализированный подход и роль цифровых решений в повышении качества медицинских услуг.
Получить полную информацию - [url=https://pikinform.ru/raznoe/zavisimost-ot-kannabisa-zavisimost-i-lechenie.html]кодирование от алкоголизма в ростове на дону[/url]
13 мая 2026 / 23:00
Нарколог на дом в Ростове-на-Дону рассматривается как специализированная форма оказания медицинской помощи пациентам с зависимостями вне стационара. В клинике «Чистый Баланс» выезд врача организуется круглосуточно, что позволяет обеспечить своевременное вмешательство при ухудшении состояния в любое время суток. Нарколог на дом в Ростове-на-Дону востребован в ситуациях, когда пациент не готов или не может обратиться в медицинское учреждение, а промедление с лечением повышает риск осложнений. Такой формат помощи требует строгого соблюдения клинических протоколов и высокой квалификации специалистов.
Разобраться лучше - http://narkolog-na-dom-v-rnd19.ru
13 мая 2026 / 23:34
В этой статье мы рассмотрим современные достижения в области медицины, включая инновационные методы лечения и диагностики. Мы обсудим важность профилактики заболеваний и роль технологий в улучшении качества здравоохранения. Читатели узнают о влиянии медицины на повседневную жизнь и ее значение для современного общества.
Открыть полностью - [url=https://gemorroi.su/svezhie-materialy/chto-vazhno-znat-o-kodirovanii-ot-alkogolizma]кодировка от алкоголизма[/url]
13 мая 2026 / 23:50
888 starz [url=http://888stars-uz.com/]http://888stars-uz.com/[/url] .
14 мая 2026 / 00:20
Эта публикация посвящена актуальным вопросам современной медицины и здравоохранения. Мы обсудим новейшие технологии диагностики и лечения, а также их влияние на продолжительность и качество жизни. Читатель найдет здесь информацию о научных исследованиях и перспективных разработках, доступно изложенную для широкой аудитории.
Все материалы собраны здесь - [url=https://gipertoniya.net/procedury/reabilitacziya-narkozavisimyh-terapevticheskie-programmy.html]стоп алко анапа[/url]
14 мая 2026 / 00:42
Когда запой становится критическим, оперативное вмешательство имеет решающее значение для спасения здоровья и предотвращения необратимых последствий. Во Владимире экстренная помощь нарколога на дому позволяет быстро начать лечение, не требуя госпитализации, что особенно важно для пациентов, нуждающихся в сохранении конфиденциальности и комфорте.
Детальнее - [url=https://vyvod-iz-zapoya-vladimir000.ru/]нарколог на дом вывод из запоя на дому[/url]
14 мая 2026 / 00:48
Главные новости: https://spainslov.ru/site/word/word/%D0%9A%D0%9E%D0%9F%D0%90%D0%9B%D0%90
14 мая 2026 / 00:50
Только лучшие материалы: https://parfumabc.ru/parfum/cadillac/
14 мая 2026 / 01:50
Вывод из запоя на дому в Санкт-Петербурге с выездом нарколога, детоксикацией и восстановлением состояния в наркологической клинике «Частный медик 24»
Получить дополнительную информацию - http://vyvod-iz-zapoya-na-domu-sankt-peterburg-8.ru/
14 мая 2026 / 02:12
В данной статье мы акцентируем внимание на важности поддержки в процессе выздоровления. Мы обсудим, как друзья, семья и профессионалы могут помочь тем, кто сталкивается с зависимостями. Читатели получат практические советы, как поддерживать близких на пути к новой жизни.
Переходите по ссылке ниже - [url=http://stoposteohondroz.ru/news/novosti-mediciny/nuzhno-li-proxodit-reabilitaciyu-posle-lecheniya-zavisimosti]частный медик 24[/url]
14 мая 2026 / 02:26
Алкогольная интоксикация оказывает серьёзное влияние на организм, вызывая головную боль, тошноту, слабость и головокружение. Капельница помогает организму быстро избавиться от продуктов распада алкоголя, восстановить нормальное функционирование органов и минимизировать последствия для здоровья. Важно, что мы обеспечиваем полное наблюдение врача на протяжении всей процедуры, что помогает гарантировать безопасность пациента и максимальную эффективность лечения.
Детальнее - [url=https://kapelnicza-ot-pokhmelya-ekaterinburg-8.ru/]капельница от похмелья на дому в екатеринбурге[/url]
14 мая 2026 / 02:35
Когда симптомы становятся настолько выраженными, что они мешают нормальному функционированию, капельница становится необходимостью. Она помогает избавиться от дискомфорта и значительно ускоряет процесс восстановления, давая организму все необходимые вещества для нормализации его работы, при этом может проводиться наркологическая детоксикация. Контроль врача на протяжении всей процедуры гарантирует, что капельница будет введена правильно и безопасно, с учетом всех показателей пациента, а при необходимости можно заказать дальнейшую реабилитацию и кодирование.
Получить больше информации - [url=https://kapelnicza-ot-pokhmelya-samara-13.ru/]капельница от похмелья на дому в самаре[/url]
14 мая 2026 / 02:49
Публикация посвящена жизненным историям людей, успешно справившихся с зависимостью. Мы покажем, что выход есть, и он начинается с первого шага — принятия проблемы и желания измениться.
Ознакомиться с деталями - [url=https://tardokanatomy.ru/catalog5/reabilitaciya-narkozavisimyh-minnesotskaya-model]narcology clinic[/url]
14 мая 2026 / 03:02
Далее выполняется медицинская детоксикация: корректируется водно-электролитный баланс, снимается интоксикация, поддерживается работа сердечно-сосудистой системы, снижается тремор, стабилизируется сон и тревожность. Важно, что схема подбирается индивидуально: при разных рисках объём поддержки будет различаться. В ряде случаев достаточно амбулаторного наблюдения и рекомендаций, в других — нужен стационар, чтобы контролировать динамику и вовремя корректировать терапию.
Получить дополнительную информацию - [url=https://vyvod-iz-zapoya-moskva1-12.ru/]vyvod-iz-zapoya-na-domu-moskva-nedorogo[/url]
14 мая 2026 / 03:52
Легендарная охота за богатствами продолжается! Новые загадки древних династий, опасные экспедиции и тайны, скрытые веками. Кто разгадает шифры прошлого и доберётся до бесценных артефактов? Захватывающие повороты, рискованные ставки и неожиданные союзники ждут тебя: https://sokrovischa-imperatora-3-sezon.top/
14 мая 2026 / 04:00
Стационар выбирают, когда нужно наблюдать состояние круглосуточно или есть вероятность резкого ухудшения. Это может быть длительный запой, выраженная абстиненция, нестабильное давление, подозрение на осложнения со стороны сердца и сосудов, история судорог, спутанность сознания, психотические симптомы. Преимущество стационара — контроль динамики и возможность быстро менять терапию, если план «не заходит». Кроме того, в стационаре проще выстроить полноценный переход к лечению зависимости: не просто снять острые проявления, а сразу подключить психологическое сопровождение и подготовить пациента к следующему этапу.
Получить дополнительные сведения - http://narkologicheskaya-klinika-moskva12.ru