Экспорт анимации из 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/ сайтов, и радуемся жизни.
Конец статьи. автор - Харченко Артем
18 июня 2026 / 11:17
888starz [url=https://artoved.stck.me/post/1664861/888starz]https://artoved.stck.me/post/1664861/888starz/[/url]
18 июня 2026 / 12:59
888 [url=http://maps999.com/888-starz-%d9%85%d8%b5%d8%b1-%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d8%b1%d8%b3%d9%85%d9%8a-%d9%84%d9%84%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d9%88%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86/]https://maps999.com/888-starz-%d9%85%d8%b5%d8%b1-%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d8%b1%d8%b3%d9%85%d9%8a-%d9%84%d9%84%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d9%88%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86/[/url]
18 июня 2026 / 13:05
888starz [url=https://handicraftsglobalstore.com/888starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%86%d8%b5%d8%a9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/]https://handicraftsglobalstore.com/888starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%86%d8%b5%d8%a9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/[/url]
18 июня 2026 / 13:54
88sta [url=gdtsim.com/888-starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%86%d8%b5%d8%a9-%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d9%88%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6]https://gdtsim.com/888-starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%86%d8%b5%d8%a9-%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d9%88%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6/[/url]
18 июня 2026 / 14:11
888 مراهنات [url=http://www.wombafurnitures.com/888starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/]https://wombafurnitures.com/888starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/[/url]
18 июня 2026 / 14:16
888stars [url=http://www.artoved.stck.me/post/1664861/888starz]https://artoved.stck.me/post/1664861/888starz/[/url]
18 июня 2026 / 14:18
star 888 للمراهنات [url=http://www.9newstelugu.com/888-starz-%d9%85%d8%b5%d8%b1-%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d8%a3%d9%88%d9%86%d9%84%d8%a7%d9%8a%d9%86-%d9%88%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9/]https://9newstelugu.com/888-starz-%d9%85%d8%b5%d8%b1-%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d8%a3%d9%88%d9%86%d9%84%d8%a7%d9%8a%d9%86-%d9%88%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9/[/url]
18 июня 2026 / 14:21
وكيل سحب وايداع 888starz [url=http://www.ablethor.com/2025/12/12/888-starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/]https://ablethor.com/2025/12/12/888-starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/[/url]
18 июня 2026 / 14:26
I appreciate how this post stays informative while also keeping the conversation easygoing and approachable for readers.
https://share.google/t2nb0cSfo7a4UOG4t
18 июня 2026 / 14:28
I really enjoy the way this post presents the topic in such a calm and clear manner, because it keeps the discussion interesting without feeling overwhelming, while also making it easy for different readers to understand and connect with the overall message.
https://share.google/wHT7Rz0WlWhyhGLN1
18 июня 2026 / 16:05
العاب 888 [url=https://gdtsim.com/888-starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%86%d8%b5%d8%a9-%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a%d9%86%d9%88-%d9%88%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6/]العاب 888[/url].
18 июня 2026 / 16:15
لعبه 888 [url=https://socialhungari.ru/2025/12/22/888starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/]https://socialhungari.ru/2025/12/22/888starz-%d9%85%d8%b5%d8%b1-%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%85%d8%b1%d8%a7%d9%87%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6%d9%8a%d8%a9-%d9%88%d8%a7%d9%84%d9%83%d8%a7%d8%b2%d9%8a/[/url]
18 июня 2026 / 17:38
Статья посвящена анализу текущих трендов в медицине и их влиянию на жизнь людей. Мы рассмотрим новые технологии, методы лечения и значение профилактики в обеспечении долголетия и здоровья.
Углубить понимание вопроса - [url=https://megamcpe.com/health/lovushka-domashnego-ofisa-kak-vovremya-zametit-vygoranie-na-udalenke-i-ne-dopustit-razvitiya-alkogolnoj-zavisimosti.html]наркология воронеж[/url]
18 июня 2026 / 18:05
Этот обзор сосредоточен на различных подходах к избавлению от зависимости. Мы изучим традиционные и альтернативные методы, а также их сочетание для достижения максимальной эффективности. Читатели смогут открыть для себя новые стратегии и подходы, которые помогут в их борьбе с зависимостями.
Жми сюда — получишь ответ - [url=https://paganism-info.ru/2026/06/07/vosstanovlenie-posle-prazdnikov-bezopasnaya-detoksikacziya-i-gramotnyj-vyhod-iz-zapoya/]частная наркологическая клиника[/url]
18 июня 2026 / 19:33
Эта медицинская заметка содержит сжатую информацию о новых находках и методах в области здравоохранения. Мы предлагаем читателям свежие данные о заболеваниях, профилактике и лечении. Наша цель — быстро и доступно донести важную информацию, которая поможет в повседневной жизни и понимании здоровья.
Полезно знать - [url=https://modnuesovetu.ru/zabolevaniya/tonkaya-gran-kogda-pohmele-prevrashhaetsya-v-abstinencziyu-i-domashnie-sredstva-bessilny.html]наркология в воронеже[/url]
18 июня 2026 / 20:01
В статье рассматриваются различные стратегии борьбы с зависимостями, включая проверенные методы и реальные истории успеха. Читатель узнает, какие подходы наиболее эффективны и как начать путь к выздоровлению.
Проследить причинно-следственные связи - [url=https://womaan.ru/moda/zhizn-v-teni-zavisimosti-kak-spasatelstvo-razrushaet-zhenshhinu-i-pochemu-neobhodima-professionalnaya-pomoshh.html]анонимная наркологическая помощь[/url]
18 июня 2026 / 21:07
Обзор посвящён процессу восстановления после зависимостей. Мы расскажем о различных этапах реабилитации, поддерживающих ресурсах и важности мотивации в достижении устойчивого выздоровления.
Информация доступна здесь - [url=https://womanka.com/zdorove/zhenskoe-zdorove-pod-kontrolem-5-priznakov-trebuyushhih-srochnogo-vizita-k-vrachu]наркологическая клиника телефон[/url]
18 июня 2026 / 22:56
Этот документ охватывает важные аспекты медицинской науки, сосредотачиваясь на ключевых вопросах, касающихся здоровья населения. Мы рассматриваем свежие исследования, клинические рекомендации и лучшие практики, которые помогут улучшить качество лечения и профилактики заболеваний. Читатели получат возможность углубиться в различные медицинские дисциплины.
Посмотреть подробности - [url=https://shoptrip.ru/illyuziya-idealnogo-otpuska-kak-shoping-i-puteshestviya-maskiruyut-zavisimost-i-puti-mediczinskogo-vosstanovleniya/]наркологический центр воронеж[/url]
18 июня 2026 / 23:18
Этот документ охватывает важные аспекты медицинской науки, сосредотачиваясь на ключевых вопросах, касающихся здоровья населения. Мы рассматриваем свежие исследования, клинические рекомендации и лучшие практики, которые помогут улучшить качество лечения и профилактики заболеваний. Читатели получат возможность углубиться в различные медицинские дисциплины.
Как достичь результата? - [url=https://wums.ru/zashhita-serdtsa-pri-vygoranii-ekspertnyj-obzor-metodov-borby-s-vliyaniem-stressa-na-sosudistuyu-sistemu/]наркология круглосуточная[/url]
18 июня 2026 / 23:23
Эта публикация исследует взаимосвязь зависимости и психологии. Мы обсудим, как психологические аспекты влияют на появление зависимостей и процесс выздоровления. Читатели смогут понять важность профессиональной поддержки и применения научных подходов в терапии.
Что ещё? Расскажи всё! - [url=https://womanmaniya.ru/zdorovyj-obraz-zhizni-i-zabota-o-serdcze-kak-zashhitit-krovenosnuyu-sistemu-ot-hronicheskogo-stressa/]плюс[/url]