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

Комментарии: 2 333

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

  1. самые свежие новости беларуси главные новости беларуси

  2. Защищенная площадка кракен darknet использует одноразовые серверы для критических компонентов и регулярную ротацию онион адресов для предотвращения долгосрочного отслеживания.

  3. трип сайт Трип скан: Сравните цены на авиабилеты от разных авиакомпаний и найдите лучшие предложения для своей поездки.

  4. где ко ланта Еда на Ко Ланте — отдельная история. Вечером вокруг пирсов кипит жизнь: морепродукты на гриле, жареный рис с морепродуктами и карри, лёгкие закуски и напитки. Привлекают лавки, где повар выбирает рыбу на месте и обжаривает её прямо перед вами, подавая с луком, чили и лимонным соком. Вкус простоты и свежести проявляется в каждом блюде: ингредиенты часто скромны по набору, но ярко подчёркнуты свежестью моря. Рынки открыты до позднего вечера, и можно найти вкусные морепродукты по разумной цене, что делает трапезу на Ко Ланте особенно приятной

  5. остров ко ланта ко ланта как добраться — как добраться до 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, но чаще они работают по расписанию и зависят от волн и ветра. Рекомендации: планируйте маршрут заблаговременно, бронируйте переправы и транспорт заранее в высокий сезон, учитывая приливы и погодные условия. В целом разумно сочетать воздушный и морской транспорт, чтобы сократить время в пути и снизить риски задержек.

  6. как добраться до ко ланты Остров ко ланта в тайланде — Ко Ланта является жемчужиной Андаманского побережья Таиланда, входит в состав провинции Краби и состоит из двух основных частей: Ko Lanta Yai и Ko Lanta Noi. Это остров с длинной береговой линией, зелёными мангровыми зарослями и спокойной атмосферой, где доминируют местные рыбацкие деревни, небольшие бутики и уютные кафе на берегу. Здесь царит размеренный ритм жизни, чистые пляжи, красочные закаты и возможность насладиться природой вдали от шумной туристической суеты. Разнообразие пляжей, тропические леса внутрь острова и близость к островам Мук Ланта создают идеальные условия для длительного отдыха, сноркелинга и прогулок на велосипедах. Хорошее сообщение с материком и умеренная сезонность делают Ко Ланту привлекательной для семей, пар и тех, кто любит спокойный отдых у моря.

  7. Полное содержание здесь: https://medim-pro.ru/kupit-spravku/

  8. краби ко ланта как добраться паром ко ланта — основное средство перемещения для тех, кто прибывает с материка. Регулярные переправы идут из Крби, Trang и иногда из Ao Nang в Saladan на Ko Lanta Yai; время пути обычно 2–3 часа в зависимости от маршрута и погоды. В высокий сезон паромы чаще ходят по расписанию, но стоит внимательно проверять расписание и погодные условия перед поездкой. По прибытии удобнее всего арендовать скутер или взять такси до вашего пляжа или гостевого дома; на Ко Ланте удобно перемещаться по мосту между Ko Lanta Yai и Ko Lanta Noi. Для тех, кто любит скорость, доступны скоростные лодки и частные трансферы, но они дороже и зависят от погоды.

  9. 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

  10. краби ко ланта как добраться ко ланта отели — На Ко Ланте представлены варианты на любой вкус: от простых гестхаусов и бунгало у воды до роскошных вилл с частными бассейнами и видом на океан. В районах Long Beach и Kantiang можно найти современные апартаменты и маленькие бутик-отели с удобствами, а в старой части острова — гостевые дома и семейные отели по более доступным ценам. Многие варианты предлагают выход прямо к пляжу, садовую территорию, бассейны и услуги уборки; в сезон можно найти акции и скидки. Выбор зависит от того, хотите ли вы жить под шум волн или предпочитаете более спокойную, удалённую часть острова.

  11. ко ланта аэропорт ко ланте отели — повторно рассмотрение темы с акцентом на приватность и характер острова: здесь много небольших семейных отелей и уединённых вилл. Часто встречаются варианты у моря с частными террасами, садовыми дорожками к пляжу и близостью к рынкам Saladan и основным пляжам, чтобы не тратить время на дорогу. На Ко Ланте больше мест, ориентированных на размеренный отдых и близость к природе, чем на бурную ночную жизнь, поэтому остров идеально подходит для пар и семей, ищущих спокойствие и расслабляющую атмосферу. Рекомендовано выбирать жильё в пределах пешей доступности к пляжу или к основным транспортным узлам, чтобы не зависеть от авто в большом потоке туристов.

  12. 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.

  13. техническая пластина «РезиноМир»: Ваш Надёжный Партнёр в Мире Резинотехнических Изделий с 2009 Года В современном промышленном мире, где каждая деталь имеет значение, выбор надёжного поставщика и производителя резинотехнических изделий (РТИ) является ключевым фактором успеха любого предприятия. С 2009 года компания «РезиноМир» уверенно занимает лидирующие позиции на рынке России и стран СНГ, предлагая своим B2B-партнёрам не просто продукцию, а комплексные и высококачественные решения в области РТИ. Мы гордимся тем, что являемся не просто поставщиком, а производственным партнёром, способным удовлетворить самые взыскательные требования.

  14. 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.

  15. 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.

  16. 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.

  17. зарядка с краби краби из екатеринбурга — маршруты через Москву/Екатеринбург

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

*

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

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

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

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