Экспорт анимации из 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/ сайтов, и радуемся жизни.
Конец статьи. автор - Харченко Артем
5 декабря 2025 / 11:01
самые свежие новости беларуси главные новости беларуси
5 декабря 2025 / 11:29
Защищенная площадка кракен darknet использует одноразовые серверы для критических компонентов и регулярную ротацию онион адресов для предотвращения долгосрочного отслеживания.
5 декабря 2025 / 11:59
трип сайт Трип скан: Сравните цены на авиабилеты от разных авиакомпаний и найдите лучшие предложения для своей поездки.
5 декабря 2025 / 14:48
где ко ланта Еда на Ко Ланте — отдельная история. Вечером вокруг пирсов кипит жизнь: морепродукты на гриле, жареный рис с морепродуктами и карри, лёгкие закуски и напитки. Привлекают лавки, где повар выбирает рыбу на месте и обжаривает её прямо перед вами, подавая с луком, чили и лимонным соком. Вкус простоты и свежести проявляется в каждом блюде: ингредиенты часто скромны по набору, но ярко подчёркнуты свежестью моря. Рынки открыты до позднего вечера, и можно найти вкусные морепродукты по разумной цене, что делает трапезу на Ко Ланте особенно приятной
5 декабря 2025 / 15:25
остров ко ланта ко ланта как добраться — как добраться до Ko Lanta требует выбора между прямыми и комбинированными маршрутами через материковую Таиланд. Наиболее распространённый путь начинается с полета в Krabi International Airport (KBV) или Phuket International Airport (HKT). Из Krabi можно добраться до Ko Lanta Yai на минивэне с последующей переправой на пароме через Ao Nang или Krabi Town в Saladan; путь занимает примерно 2–3 часа в зависимости от расписания и дорожной ситуации. Из Phuket обычно выбирают прямой паром до Saladan (Ko Lanta) или комбинированный маршрут: Phuket > Krabi/Ao Nang > Ko Lanta, что часто занимает 2,5–4 часа. В сезон иногда доступны прямые паромы из Phuket, но чаще они работают по расписанию и зависят от волн и ветра. Рекомендации: планируйте маршрут заблаговременно, бронируйте переправы и транспорт заранее в высокий сезон, учитывая приливы и погодные условия. В целом разумно сочетать воздушный и морской транспорт, чтобы сократить время в пути и снизить риски задержек.
5 декабря 2025 / 18:47
как добраться до ко ланты Остров ко ланта в тайланде — Ко Ланта является жемчужиной Андаманского побережья Таиланда, входит в состав провинции Краби и состоит из двух основных частей: Ko Lanta Yai и Ko Lanta Noi. Это остров с длинной береговой линией, зелёными мангровыми зарослями и спокойной атмосферой, где доминируют местные рыбацкие деревни, небольшие бутики и уютные кафе на берегу. Здесь царит размеренный ритм жизни, чистые пляжи, красочные закаты и возможность насладиться природой вдали от шумной туристической суеты. Разнообразие пляжей, тропические леса внутрь острова и близость к островам Мук Ланта создают идеальные условия для длительного отдыха, сноркелинга и прогулок на велосипедах. Хорошее сообщение с материком и умеренная сезонность делают Ко Ланту привлекательной для семей, пар и тех, кто любит спокойный отдых у моря.
5 декабря 2025 / 21:20
Полное содержание здесь: https://medim-pro.ru/kupit-spravku/
5 декабря 2025 / 21:52
Лучшее прямо здесь: https://medim-pro.ru/mezhdunarodnyj-privivochnyj-sertifikat-kupit
5 декабря 2025 / 22:41
Только лучшие материалы: https://medim-pro.ru/kupit-sanatorno-kurortnuyu-kartu-rebenku/
5 декабря 2025 / 22:43
Узнать больше здесь: https://medim-pro.ru/kupit-spravku-dlya-sporta/
5 декабря 2025 / 22:54
краби ко ланта как добраться паром ко ланта — основное средство перемещения для тех, кто прибывает с материка. Регулярные переправы идут из Крби, Trang и иногда из Ao Nang в Saladan на Ko Lanta Yai; время пути обычно 2–3 часа в зависимости от маршрута и погоды. В высокий сезон паромы чаще ходят по расписанию, но стоит внимательно проверять расписание и погодные условия перед поездкой. По прибытии удобнее всего арендовать скутер или взять такси до вашего пляжа или гостевого дома; на Ко Ланте удобно перемещаться по мосту между Ko Lanta Yai и Ko Lanta Noi. Для тех, кто любит скорость, доступны скоростные лодки и частные трансферы, но они дороже и зависят от погоды.
5 декабря 2025 / 23:08
What's up colleagues, how is everything, and what you wish for to say regarding this piece of writing, in my view its in fact amazing in support of me.
forticlient mac
6 декабря 2025 / 01:19
краби ко ланта как добраться ко ланта отели — На Ко Ланте представлены варианты на любой вкус: от простых гестхаусов и бунгало у воды до роскошных вилл с частными бассейнами и видом на океан. В районах Long Beach и Kantiang можно найти современные апартаменты и маленькие бутик-отели с удобствами, а в старой части острова — гостевые дома и семейные отели по более доступным ценам. Многие варианты предлагают выход прямо к пляжу, садовую территорию, бассейны и услуги уборки; в сезон можно найти акции и скидки. Выбор зависит от того, хотите ли вы жить под шум волн или предпочитаете более спокойную, удалённую часть острова.
6 декабря 2025 / 05:11
ко ланта аэропорт ко ланте отели — повторно рассмотрение темы с акцентом на приватность и характер острова: здесь много небольших семейных отелей и уединённых вилл. Часто встречаются варианты у моря с частными террасами, садовыми дорожками к пляжу и близостью к рынкам Saladan и основным пляжам, чтобы не тратить время на дорогу. На Ко Ланте больше мест, ориентированных на размеренный отдых и близость к природе, чем на бурную ночную жизнь, поэтому остров идеально подходит для пар и семей, ищущих спокойствие и расслабляющую атмосферу. Рекомендовано выбирать жильё в пределах пешей доступности к пляжу или к основным транспортным узлам, чтобы не зависеть от авто в большом потоке туристов.
6 декабря 2025 / 11:05
napsani seminarni prace Diplomova prace: Vypracovani, korektury a formatovani: Diplomova prace je vyvrcholenim vysokoskolskeho studia a klicovym dokumentem pro ziskani magisterskeho titulu. Poskytujeme profesionalni vypracovani diplomovych praci, vcetne resersi, teoreticke casti, metodologie a empirickeho vyzkumu. Dale nabizime korektury, formatovani a revize diplomovych praci, abyste meli jistotu, ze vase prace splnuje nejvyssi akademicke standardy.
6 декабря 2025 / 12:21
техническая пластина «РезиноМир»: Ваш Надёжный Партнёр в Мире Резинотехнических Изделий с 2009 Года В современном промышленном мире, где каждая деталь имеет значение, выбор надёжного поставщика и производителя резинотехнических изделий (РТИ) является ключевым фактором успеха любого предприятия. С 2009 года компания «РезиноМир» уверенно занимает лидирующие позиции на рынке России и стран СНГ, предлагая своим B2B-партнёрам не просто продукцию, а комплексные и высококачественные решения в области РТИ. Мы гордимся тем, что являемся не просто поставщиком, а производственным партнёром, способным удовлетворить самые взыскательные требования.
6 декабря 2025 / 15:06
policejni akademie bakalarska prace Seminarni prace, rocnikove prace a absolventske prace: Krome bakalarskych a diplomovych praci nabizime pomoc take se seminarnimi pracemi, rocnikovymi pracemi a absolventskymi pracemi. Zpracujeme kvalitni podklady a texty dle vasich pozadavku a v danem terminu.
6 декабря 2025 / 21:27
Free video chat emerald chat 1on1 video chat find people from all over the world in seconds. Anonymous, no registration or SMS required. A convenient alternative to Omegle: minimal settings, maximum live communication right in your browser, at home or on the go, without unnecessary ads.
6 декабря 2025 / 21:56
Free video chat emerald chat features find people from all over the world in seconds. Anonymous, no registration or SMS required. A convenient alternative to Omegle: minimal settings, maximum live communication right in your browser, at home or on the go, without unnecessary ads.
6 декабря 2025 / 21:56
зарядка с краби краби из екатеринбурга — маршруты через Москву/Екатеринбург