Экспорт анимации из 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/ сайтов, и радуемся жизни.
Конец статьи. автор - Харченко Артем
20 июля 2026 / 22:17
Новички Vavada получают подарок сразу после регистрации. Турнирные призы зачисляются на счёт без отыгрыша. По запросу vavada промокод игроки находят рабочие комбинации. История начислений хранится в разделе бонусов кабинета. Проверьте актуальные коды прямо сейчас.
20 июля 2026 / 22:22
Beyler bahisçiler Herkes dolandırıcı olmuş resmen Ben de 20'den fazla site denedim Sonunda dürüst bir site buldum — 1xbet tr güvenilir bahis Para çekme işlemleri anında Kısacası, her şey detaylı — 1x bet [url=https://1xbet-rhy.com]1x bet[/url] Tek adres 1xbet Bahis yapan herkese gönder
21 июля 2026 / 01:45
Selam millet Güncel giriş adresini bulmak her seferinde çok zor oluyor Hepsi zaman kaybıydı Her şey hızlı ve güvenli — 1xbet güncel giriş burada Canlı destek gece gündüz aktif Neyse, kaybetmeyin diye tıkla — 1xbet giris [url=https://1xbet-guncel-giris-pkd.com]1xbet giris[/url] Tek adres 1xbet güncel giriş Bahis yapan herkese gönder
21 июля 2026 / 04:01
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Разобраться лучше - [url=https://vyvod-iz-zapoya-v-anape3.ru/]вывод из запоя круглосуточно в анапе[/url]
21 июля 2026 / 04:55
Общаемся без осуждения и давления, сохраняя спокойную атмосферу для пациента и семьи.
Подробнее - [url=https://kapelnica-ot-zapoya-v-moskve14-4.ru/]врача капельницу от запоя[/url]
21 июля 2026 / 06:57
The app requires little storage space, making it easy to install on any phone.
Before installing the apk on Android, allow installation from external sources.
The app receives regular updates that keep it stable and secure on Android.
Keeping the app regularly updated helps close any gaps and raises the security level.
The iPhone app is known for stable performance and a design tailored to iOS screens.
888starz [url=http://www.complice-st.com]888starz[/url]
21 июля 2026 / 07:14
888starz provides a clear, user-friendly interface adapted for players in Uzbekistan.
The official site offers over five thousand casino and slot titles from trusted developers.
The sportsbook on the official 888starz site covers more than 50 sports from around the world.
Weekly promotions are available, including 50% cashback and insurance on bets.
888starz lets users create a new account in several ways in only a few minutes.
888starz [url=https://goldfein.cz]888starz[/url]
21 июля 2026 / 07:22
Arkadaşlar merhaba Telefonda bahis oynamak çok daha kolay En iyisini bulmak için çok araştırdım Sonunda en iyi uygulamayı buldum — 1xbet giriş indir kolay Çekim işlemleri saniyeler içinde Neyse, tüm detaylar linkte — 1xbet yukle [url=https://1xbet-indir-abc.com]1xbet yukle[/url] Sakın sahte uygulamalara kanma Bahis yapan herkese gönder
21 июля 2026 / 07:24
The app has a small size that does not take up much phone memory.
Installing the apk finishes in a short time, making the app ready instantly.
The 888starz app for Android delivers fast performance and a smooth, mobile-optimized interface.
Updating the apk continuously helps improve security and patch potential vulnerabilities.
iPhone users can install the 888starz app via the App Store on iOS.
888starz [url=https://www.sodibet.com/]888starz[/url]
21 июля 2026 / 08:10
The official True Fortune website brings hundreds of games together on a single, easy-to-use platform.
The True Fortune casino features thousands of slots from leading providers like Pragmatic Play, NetEnt and Play'n GO.
Players enjoy recurring promotions including cashback and free spins on selected slots.
Players can fund their account via cards, digital wallets and modern payment services.
Players in the United Kingdom can use built-in tools to keep their gambling under control.
Help is always at hand thanks to round-the-clock live chat support.
true fortune 50 free spins no deposit [url=http://true-fortune-casino11.com/free-spins/]true fortune 50 free spins no deposit[/url]
21 июля 2026 / 08:11
In the United Kingdom, True Fortune casino stands out as a trusted online gambling destination.
Fans of live gaming can join real-dealer tables running 24 hours a day.
A welcome offer with matched bonus funds and free spins awaits new players in the United Kingdom.
true fortune 50 free spins no deposit [url=true-fortune-casino15.com/free-spins]true fortune 50 free spins no deposit[/url]
Verified players enjoy speedy payouts through their preferred method.
The site offers deposit limits, reality checks and self-exclusion for safer play.
A detailed FAQ and clear terms make it easy for players in the United Kingdom to find answers fast.
21 июля 2026 / 08:16
The official True Fortune casino has built a strong reputation with players across the United Kingdom.
Progressive jackpots and top-rated new releases are highlighted in the casino lobby.
A loyalty programme rewards active players with points that convert into real bonuses.
The casino aims to process cashouts fast, especially for verified accounts.
Certified RNG technology ensures every spin and hand is completely random.
Customer support is available around the clock via live chat and email in English.
true fortune free spins [url=http://true-fortune-casino16.com/free-spins/]true fortune free spins[/url]
21 июля 2026 / 08:34
True Fortune gathers slots, table games and live dealers in one convenient place.
The True Fortune casino features thousands of slots from leading providers like Pragmatic Play, NetEnt and Play'n GO.
The promotions page lists reload bonuses, tournaments and cashback offers.
true fortune bonus codes [url=https://true-fortune-casino23.com/bonus]true fortune bonus codes[/url]
True Fortune supports popular payment methods including Visa, Mastercard and e-wallets like Skrill and Neteller.
All games run on certified random number generators for provably fair results.
Customer support is available around the clock via live chat and email in English.
21 июля 2026 / 08:47
True Fortune casino has become a go-to online casino for many players in the United Kingdom.
A dedicated live casino streams real-dealer roulette, blackjack and baccarat around the clock.
Every wager earns loyalty points that can be exchanged for bonus credit.
Fast, transparent withdrawals mean winnings reach players without long delays.
All games run on certified random number generators for provably fair results.
New users can check the FAQ for quick guidance on bonuses and payments.
true fortune casino $50 free chip [url=https://true-fortune-casino22.com/free-chips/]true fortune casino $50 free chip[/url]
21 июля 2026 / 08:56
The platform is fully optimised for players in the United Kingdom with English support and local payment options.
The live casino section brings authentic tables with professional dealers straight to any device.
Frequent players climb a VIP ladder that unlocks better rewards and faster withdrawals.
True Fortune supports popular payment methods including Visa, Mastercard and e-wallets like Skrill and Neteller.
A valid licence and secure infrastructure make True Fortune a safe place to play.
The site is fully responsive, adapting to any screen size on the go.
true fortune casino uk [url=http://www.true-fortune-casino27.com/]true fortune casino uk[/url]
21 июля 2026 / 09:00
The platform is fully optimised for players in the United Kingdom with English support and local payment options.
The game library includes thousands of titles, from classic fruit machines to modern video slots.
Players enjoy recurring promotions including cashback and free spins on selected slots.
Deposits are processed instantly so players can start playing within minutes.
Responsible gambling tools let players set deposit limits, take breaks or self-exclude.
100 free spins promo codes for true fortune casino [url=http://true-fortune-casino26.com/free-spins/]100 free spins promo codes for true fortune casino[/url]
The support team responds quickly via chat and email at any hour.
21 июля 2026 / 09:00
The casino welcomes players from the United Kingdom with a localised experience and responsive support.
True Fortune offers an extensive range of slots covering every theme and volatility level.
A welcome offer with matched bonus funds and free spins awaits new players in the United Kingdom.
Minimum deposits are low, making it easy to get started.
The casino is licensed and applies strong security to keep accounts and funds safe.
The support team responds quickly via chat and email at any hour.
true fortune casino no deposit bonus free spins [url=true-fortune-casino27.com/free-spins]true fortune casino no deposit bonus free spins[/url]
21 июля 2026 / 09:07
Работают с проверенными туроператорами — страховка туроператора включена автоматически. После случаев банкротств на рынке это стало принципиальным критерием выбора агентства. [url=https://turkey-tour-moscow.ru/]пляжный отдых в Турции 2025[/url]
21 июля 2026 / 09:23
The 888starz app is among the most downloaded apps by smartphone users in Uzbekistan.
The app installs as soon as the apk file is opened and the steps are confirmed.
The Android version is compatible with most phones, including lower-spec models.
Reviewing the required permissions before installing the app is important.
iOS users get the app in an easy and direct way on their device.
888starz [url=https://saraya-thailand.com/]888starz apk[/url]
21 июля 2026 / 09:44
Индивидуальный подход — изучили участок и пожелания семьи перед проектированием. Не стандартное решение из каталога, а дом адаптированный под конкретных людей и место. [url=https://kleebar-spb.ru/]дом из клееного бруса с гарантией[/url]