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

Комментарии: 3 661

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

  1. Наркологическая клиника в Сергиевом Посаде — это помощь, которая начинается с понимания рисков. Важны не красивые обещания «за один час», а прогнозируемая динамика в первые сутки и понятный план на 24–72 часа. Именно в это время чаще всего происходит повторное ухудшение: днём может стать легче, но к вечеру и ночью волной возвращаются тревога и бессонница, появляются телесные симптомы отмены, и человек снова тянется к алкоголю или веществам «чтобы отпустило». Если заранее не подготовить этот период и не объяснить, как действовать, даже удачная первичная стабилизация может закончиться срывом.
    Получить дополнительные сведения - [url=https://narkologicheskaya-klinika-sergiev-posad12.ru/]chastnaya-narkologicheskaya-klinika[/url]

  2. Помимо физической детоксикации, лечение запоя требует комплексной психологической поддержки. Психотерапевты работают с пациентами для выявления глубинных причин зависимости, помогают снизить уровень стресса и развивают навыки самоконтроля, что критически важно для предотвращения рецидивов.
    Исследовать вопрос подробнее - https://vyvod-iz-zapoya-krasnoyarsk66.ru/vyvod-iz-zapoya-na-domu-krasnoyarsk/

  3. Запой сопровождается быстрым накоплением токсинов, нарушением обменных процессов и ухудшением работы жизненно важных органов. При длительном злоупотреблении алкоголем риск повреждения печени, почек и сердца возрастает, а состояние пациента ухудшается с каждой минутой. Срочный вывод из запоя на дому помогает предотвратить развитие хронических осложнений и сохранить здоровье, что особенно важно в условиях городской жизни.
    Разобраться лучше - http://reabcentr-narko.ru/vyvod-iz-zapoya-tver-staczionar/

  4. Когда зависимость начинает диктовать настроение, сон и решения, человеку обычно нужно не «поговорить о силе воли», а получить понятную медицинскую помощь: оценку состояния, безопасную стабилизацию и план лечения, который снижает риск повторного ухудшения. В реальности обращаются по разным поводам: затяжной запой, тяжёлая абстиненция, приступы тревоги и бессонницы после прекращения употребления, срыв на фоне стресса, проблемы с контролем дозы или ситуации, когда близкие уже видят явное ухудшение и не понимают, как действовать. Наркологическая клиника в Пушкино — это формат, где помощь организована по шагам: сначала снимают острые риски, затем восстанавливают сон и базовую физиологию, после чего переходят к лечению зависимости как процесса, а не разовой процедуры. Такой подход важен потому, что кратковременное облегчение без дальнейшей работы часто заканчивается возвращением к употреблению в первые недели, когда нервная система ещё нестабильна.
    Выяснить больше - http://narkologicheskaya-klinika-pushkino12.ru/telefon-narkologicheskoj-kliniki-v-pushkino/

  5. В клинике «Вектор Восстановления» логика маршрута строится по этапам. Первый этап — оценка состояния и рисков: длительность употребления, тяжесть отмены, давление, пульс, обезвоживание, хронические заболевания, прошлые осложнения, препараты, которые пациент уже принимал дома. Второй этап — стабилизация: снижение интоксикации, коррекция состояния, восстановление сна, уменьшение тревоги. Третий этап — сопровождение первых суток и переход к восстановлению: план на 24–72 часа, контроль динамики и профилактика «вечернего отката». Четвёртый этап — работа с зависимостью как с привычкой и системой поведения: триггеры, стресс, режим, поддержка семьи, навыки отказа, профилактика рецидива.
    Детальнее - https://lechenie-alkogolizma-sergiev-posad12.ru/centr-lecheniya-alkogolizma-v-sergievom-posade

  6. Когда зависимость начинает диктовать настроение, сон и решения, человеку обычно нужно не «поговорить о силе воли», а получить понятную медицинскую помощь: оценку состояния, безопасную стабилизацию и план лечения, который снижает риск повторного ухудшения. В реальности обращаются по разным поводам: затяжной запой, тяжёлая абстиненция, приступы тревоги и бессонницы после прекращения употребления, срыв на фоне стресса, проблемы с контролем дозы или ситуации, когда близкие уже видят явное ухудшение и не понимают, как действовать. Наркологическая клиника в Пушкино — это формат, где помощь организована по шагам: сначала снимают острые риски, затем восстанавливают сон и базовую физиологию, после чего переходят к лечению зависимости как процесса, а не разовой процедуры. Такой подход важен потому, что кратковременное облегчение без дальнейшей работы часто заканчивается возвращением к употреблению в первые недели, когда нервная система ещё нестабильна.
    Детальнее - [url=https://narkologicheskaya-klinika-pushkino12.ru/]рейтинг наркологических клиник[/url]

  7. Клиника "Клиника Наркологии и Психотерапии" гордится своим коллективом высококвалифицированных специалистов. Врачи, работающие в нашей команде, имеют многолетний опыт в области наркологии и психиатрии. Они прошли обучение в ведущих медицинских учреждениях и обладают глубокими знаниями современных методик лечения зависимостей.
    Углубиться в тему - [url=https://alko-konsultaciya.ru/]срочный вывод из запоя смоленск[/url]

  8. Самостоятельный выход часто строится на ошибочных решениях: «уменьшать дозу», смешивать алкоголь со снотворными, принимать седативные без понимания влияния на дыхание и сердце, использовать сомнительные «похмельные» наборы. Такие действия могут временно приглушить симптомы, но повышают риск ухудшения и делают состояние непредсказуемым. Ещё одна проблема — отсутствие контроля: человек не замечает, как давление уходит в опасные цифры, как развивается обезвоживание или как усиливаются неврологические симптомы. В клинике же у врача есть задача не просто «снять неприятное», а стабилизировать организм, защитить сердце и сосуды, восстановить сон и снизить тревогу так, чтобы дальнейшее восстановление стало реальным.
    Получить больше информации - https://vyvod-iz-zapoya-moskva1-12.ru

  9. В Тольятти клиника «ВолгаМед Баланс» принимает пациентов круглосуточно, обеспечивая оперативное вмешательство при острых состояниях. Наркологическая помощь здесь организована на высоком медицинском уровне: процедуры проходят под наблюдением врачей, используются только сертифицированные препараты, а каждая манипуляция фиксируется в медицинской карте пациента. Это позволяет контролировать динамику восстановления и минимизировать риски осложнений. В клинике работают наркологи, терапевты, психиатры и психологи, что обеспечивает комплексный подход и эффективность лечения.
    Подробнее можно узнать тут - [url=https://narkologicheskaya-klinika-tolyatti0.ru/]наркологическая клиника[/url]

  10. Вызов нарколога на дом в Хабаровске осуществляется при наличии клинических показаний, при которых выездная помощь является обоснованной и безопасной. В клинике «Ясный Вектор» решение о формате вмешательства принимается с учётом жалоб, анамнеза и предполагаемой тяжести состояния.
    Углубиться в тему - http://

  11. Коммерческий и государственный тендер — это конкурентная процедура выбора поставщика товаров или оказания услуг. Заказчик размещает требования, а компании подают заявки и участвуют в торгах.
    Не упустите важные детали - https://tendernoe-soprovozhdenie-rostov-na-donu.ru/

  12. Игнорирование этих симптомов может привести к тяжелым последствиям для здоровья, включая алкогольный психоз и повреждение внутренних органов.
    Ознакомиться с деталями - [url=https://kapelnica-ot-zapoya-krasnodar7.ru/]kapelnica-ot-zapoya-krasnodar7.ru/[/url]

  13. Для сохранения приватности мы ведём коммуникацию через одного доверенного представителя, используем нейтральные формулировки в документах, а инструкции выдаём в неброском виде. При невозможности создать тишину дома (ремонт, маленькие дети, гости) предложим краткий «тихий» стационар с отдельным входом и камерным режимом, после чего сопровождение вернётся в домашний формат.
    Разобраться лучше - [url=https://vyvod-iz-zapoya-v-ekaterinburge16.ru/]вывод из запоя круглосуточно в екатеринбурге[/url]

  14. онлайн школа 11 класс [url=https://shkola-onlajn-41.ru/]shkola-onlajn-41.ru[/url] .

  15. Постановка капельницы от запоя специалистами клиники «Пульс» в Воронеже обеспечивает пациентам оперативную помощь и быстрое облегчение состояния благодаря экстренному выезду врача на дом. Наши услуги доступны круглосуточно, включая ночное время и праздничные дни, что особенно важно при внезапных и критических ситуациях. Мы гарантируем полную конфиденциальность и защиту персональных данных пациентов, что позволяет получить необходимую помощь без риска огласки. Индивидуальный подход к каждому случаю обеспечивает максимальную эффективность лечения, а наши опытные наркологи используют только сертифицированные препараты, которые безопасно и быстро выводят токсины и стабилизируют состояние здоровья. Прозрачность ценообразования, предварительное согласование всех расходов и отсутствие скрытых доплат делают услуги клиники «Пульс» удобными и доступными для всех жителей Воронежа.
    Получить больше информации - [url=https://kapelnica-ot-zapoya-krasnodar7.ru/]капельница от запоя вызов город[/url]

  16. Одним из ключевых достоинств выезда нарколога на дом является возможность лечения в привычной для пациента среде, что способствует снижению стресса и ускоряет процесс выздоровления. Кроме того, лечение на дому гарантирует полную анонимность и индивидуальный подход к каждому пациенту.
    Изучить вопрос глубже - [url=https://narcolog-na-dom-v-irkutske66.ru/]вызов нарколога на дом в иркутске[/url]

  17. Мы собрали для вас самые захватывающие факты из мира науки и истории. От малознакомых деталей до грандиозных событий — эта статья расширит ваш кругозор и подарит новое понимание того, как устроен наш мир.
    Лучшее решение — прямо здесь - https://1000853754.blog.binusian.org/2009/05/04/messi-peringatkan-chelsea/comment-page-1954

  18. Этот информационный материал собраны данные, которые помогут лучше понять текущие тенденции и процессы в различных сферах жизни. Мы предоставляем четкий анализ, графики и примеры, чтобы информация была не только понятной, но и практичной для принятия решений.
    Кликни и узнай всё! - https://miyake-blog.boy.jp/blog/mimi/?p=6170

  19. Эта познавательная публикация погружает вас в море интересного контента, который быстро захватит ваше внимание. Мы рассмотрим важные аспекты темы и предоставим вам уникальные Insights и полезные сведения для дальнейшего изучения.
    Посмотреть всё - https://theaiminstitute.com/innovation/vitality-index-improvement-time-for-two-new-innovation-metrics

  20. Эта статья погружает вас в увлекательный мир знаний, где каждый факт становится открытием. Мы расскажем о ключевых исторических поворотных моментах и научных прорывах, которые изменили ход цивилизации. Поймите, как прошлое формирует настоящее и как его уроки могут помочь нам строить будущее.
    Получить дополнительную информацию - https://renai-servicenavi.com/hello-world

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

*

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

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

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

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