ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
17 февраля 2019 20:54
Вход Регистрация Забыли пароль ?

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 9

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 10

роман Eternity Вечность - автор Синицин Андрей megainformatic - В чём отличие в применении символов & и * в языке c++ ? также продолжаем изучать Windows Sockets 2 и пример simple - страница 5

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 11

megainformatic - игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 12

роман Eternity - страница 6 + решение по анимации закрывающихся дверей лифта

megainformatic - Сообщить об ошибке

Balls on Lift Table of Records / Шарики на лифте Таблица рекордов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 13

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Рисуем шарик / How make the game - series of lessons - draw ball

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Содержание / How make the game - series of lessons - Index

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Разные шарики / How make the game - series of lessons - Different balls

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Анимация прыжков шарика / How make the game - series of lessons - Animation ball jumps

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Создание фона заднего плана / How make the game - series of lessons - Creating background for back plane

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Вставка созданной графики, звуков и музыки в игру - Inserting created graphics, sounds and music in the game.

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Развитие проекта fle game engine

Бинарная философия / Binary Philosofy

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 14

Вакансии

Коллекция php скриптов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 15

megainformatic - Приключения Кости Коробкина - В гостях у тёти Светы часть 1 - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 16

megainformatic Создание и размещение видео баннера mp4

megainformatic Использование баннер-ротатора

megainformatic fle game engine Simple game / Пример простой игры

megainformatic fle game engine Simple game / Пример простой игры - страница 1 - Спрайты

Creating game on fle game engine - Draw Line - This can be helpful/ Создание игры на fle game engine - Рисование линий - Это может пригодиться.

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 2 - Объекты / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 3 - Объекты / Пример простой игры

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 6 - Загрузка игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 7 - Перемещения игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 10 - Проверка столкновений / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 11 - Игровой счёт, звуки, музыка / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game extended - страница 1 - Создание новой сцены (уровня, комнаты), добавление новых возможностей / Пример простой игры - расширенная версия

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Советы копирайтеру - как не обмануть и не быть обманутым

Balls and Holes игра скачать + как создать игру на fle game engine

Balls and Holes игра скачать + как создать игру на fle game engine

Something: Unexplained 2 captive of desires

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 17

подробнее

  [Все уроки 3ds max] [Галерея моделей] [далее]  
 
 

Основы 3D-анимации, экспорт скелетной анимации

дата публикации: 9.10.2007

Цели и задачи статьи: показать способы создания анимации в 3Ds Max 7.0 или выше (можно использовать и ранние версии, но с оговорками указанными ниже) и использования ее в Delphi DirectX - играх.

Системные требования

- Наличие среды Delphi 6, 7 или выше для компиляции исходного кода, наличие 3Ds Max 7.0 или выше для создания моделей и анимаций;

- Операционная система Windows 98SE/2000/XP sp2 или выше с установленным DirectX 8.1 или выше;

- минимум ПК уровня Pentium III с тактовой частотой 1000 МНz или выше, RAM 128 Mb и выше, 32 Mb Video RAM и выше, DirectX-совместимая звуковая карта, мышь.

- Рекомендуется наличие DirectX SDK 8.1 или выше (для изучения DirectX);

- Терпение, старание и желание создавать компьютерные игры.

Введение

Наверное нет смысла объяснять что игра без анимации - это всё равно что паровоз без колес. В современных играх применяется 2D и 3D анимация. И если 2D анимация у Вас не вызывает особых вопросов значит Вы готовы к изучению основ 3D анимации.

В DirectX SDK Вы найдете примеры реализации различных видов анимации - от 2D до 3D. 2D анимация и способ ее реализации показан в примере игры из DirectX SDK 8.1 адаптированной автором на Delphi 6-7 - Donuts3D. Ее можно с успехом применять для анимированных текстур (например вода, небо, лава и т.п.) и 2D-объектов используемых в 3D-сцене. Всё что требуется для создания 2D-анимации - это набор кадров и их последовательное отображение.

От программиста требуется только выборка нужных кадров из специально подготовленного для этих целей изображения и показ их на экране в нужной последовательности с нужной скоростью.

пример 2D-анимации - шагающий человечек

Ситуация с 3D-анимацией несколько иная. В 3D анимации учавствует уже не плоское изображение (хотя может учавствовать и оно), а трехмерная модель состоящая из некоторого количества объектов - вершин, граней, примитивов. Также как и в случае с 2D анимацией - мы имеем модель находящуюся в разных состояниях во времени. Эти состояния - кадры (frames). Анимацию можно производить непрерывно и постепенно меняя состояние нужного объекта в каждом кадре, а можно и ограничиться так называемыми ключевыми кадрами (keyframes).

пример 3D анимации - шагающий RoBoo

Ключевые кадры - это положения задаваемые для модели аниматором, а все промежуточные между ними кадры программа просчитывает сама используя линейную или другой вид интерполяции.

Итак, любая анимация 3D модели - это трансформация (смещение, вращение, масштабирование - Translate, Rotate, Scale) суб-объектов модели (вершин, граней, примитивов). Условно можно выделить следующие виды анимации -

- вершинная (или морфинг) - анимируются трансформации отдельных вершин.

- объектная - модель создается как набор простых примитивов любой формы и конфигурации, но таких чтобы каждый из них можно было анимировать простой трансформацией - смещением, вращением, масштабированием. Таким образом вершины модели разбиваются на логические группы - в виде отдельных составных ее частей.

- скелетная (Skinned Mesh) - относительно новый вид анимации (по крайней мере для новичков в 3D-программировании) включает в себя концепцию использования скелета. Суть ее заключается в том, что вся модель снова представляется как единый меш (Mesh). Внутрь меша внедрена другая - более примитивная модель называемая скелетом. Скелет состоит из отдельных примитивов называемых костями (Bones). Каждая вершина привязана к определенной кости (костям). Степень влияния отдельных костей на вершину называется весовым коэффициентом (Weights), представляется числом с плавающей точкой (тип Single) и лежит в диапазоне от 0 до 1. Сумма всех весов костей влияющих на данную вершину должна составлять 1. Кости совершенно не влияющие на данную вершину имеют весовой коэффициент для нее 0, влияющие >0. В Direct3D8 на вершину не должно влиять более 4 костей, а на практике часто встречается влияние только лишь одной кости. Анимируя скелет мы тем самым анимируем и связанные с данными костями вершины.

Все эти виды анимаций применяются в 3D-играх и имеют свои достоинства и недостатки. Морфинг - этой самый простой вид анимации с точки зрения объема необходимых вычислений. Но объем получаемых выходных файлов для анимации морфингом слишком большой. Поэтому для сокращения объема применяют ряд оптимизаций - уменьшение FPS (Frames Per Second) - частоты кадров, уменьшение количества вершин модели и различные способы упаковки информации об анимации, применение межкадровой интерполяции. Объектная анимация более удобна за счет сокращения объема выходных данных, но требует большей работы с моделями и больше вычислений. Скелетная анимация в свою очередь требует еще больше предварительной работы над моделью и еще большего количества вычислений, но объем анимированной модели значительно сокращается. Кроме того, скелетную анимацию можно использовать не только для одной, но и для многих других подобных моделей, что еще больше сокращает объем необходимых медиа-файлов игры.

Примеры анимаций

Анимация методом морфинга показана в DirectX SDK в примере приложения Dolphin. Адаптированное для Delphi приложение представлено в базовых уроках Delphi DirectX.

Примеры объектной и скелетной анимации мы с Вами создадим на протяжении данной статьи.

Создаем анимированные модели

Сначала поговорим о том, в какой формат будем экспортировать анимированную модель из 3Ds Max.

Для экспорта анимаций в произвольный формат можно воспользоваться возможностями MAXScript языка встроенного в 3Ds Max или даже написать собственный плагин. Но для этого Вам понадобится MAX SDK.

Если будем экспортировать в формат X с использованием плагина из DirectX SDK 9.0 - DXExtensionsMax.gup то столкнемся с проблемой того, что объектная анимация экспортируется без проблем (для Direct3D9), а вот скелетная - увы почему-то не поддерживается (даже для Direct3D9!). Для анимации вершин нужно выводить каждый кадр в отдельный файл, а затем все это оптимизировать и упаковывать в один файл с анимированной цепочкой кадров.

Поэтому для экспорта скелетной анимации придется писать свой плагин или экспортер. Можно на первых порах воспользоваться и сторонними экспортерами, например, Я нашел в Интернете экспортер PandaDXExport. Этот экспортер устанавливается точно также как и DXExtensionsMax.gup Но он требует очень аккуратного обращения. К сожалению отсутствует исходник экспортера. Но это уже личное дело его автора, потому что экспортер распространяется бесплатно! Подготовка моделей для экспорта должна вестись очень аккуратно, иначе это приведет к нарушениям в полученной экспортированной модели. Ниже Мы попытаемся разобраться в проблемах экспорта с помощью PandaDXExport и обойти возможные ошибки и сложности.

Для экспериментов с экспортом Вам понадобится следующая модель - roboo (60 Кб). шагающий двуног

Это просто "Шагающий двуног" - бокс с вычлененными при помощи Bevel и Extrude двумя конечностями, с внедренным скелетом из двух конечностей и базовой кости. Также содержатся объекты Dummy как захваты для управления анимированием. О моделировании персонажей будет рассказано в отдельных статьях посвященных урокам по 3Ds Max.

 
Итак, предположим, что Вы уже скачали архив roboo и распаковали например, в папку SkinnedMeshExperim, установили плагин PandaDXExport.
 
Откройте файл roboo_anim_go.max из 3DS Max 7 (или выше) и попробуйте экспортировать его командой File > Export > Panda DirectX (название этого пункта будет зависеть от того, что вы пропишете в конфигурационном файле plugin.ini в папке установленного 3Ds Max).
 
Экспорт скелетной анимации Пандой
 
Когда Вы введете подходящее имя и нажмете кнопку Save (Сохранить) перед Вами появится окно параметров экспорта Панды. Задайте следующие параметры экспорта -
 
 
 
 
 
И нажмите ОК. При этом модель должна благополучно экспортироваться в файл X с именем, которое Вы указали.
 
Для проверки результата экспорта можно воспользоваться утилитой MeshView из DirectX SDK 8.1 или DirectX Viewer из DirectX SDK 9.
 
Кроме того, поскольку целью нашего экспорта является использование анимаций в Delphi DirectX 3D-игре, мы проверим проигрывание экспортированной анимации в приложении SkinnedMesh. (1,6 Mb).
 
Для компиляции и исполнения Вам понадобятся файлы из архива с ОБЩИМ КОДОМ (772 Кб). Замечания по компиляции и исполнению читайте в readme.txt вложенный внутри данного архива!
 

В папке архива SkinnedMesh после распаковки вы найдете папку Media. В ней содержатся три примера анимации - nx4.x, tiny.x и robooPDX.x.

nx4 - подлодка из проекта Тайны Морских Глубин: Операция Тайфун, показана анимация объектов - вращающихся винтов;

tiny.x - оригинал из DirectX SDK 8.1, 9;

robooPDX.x - то, что вы должны получить в процессе экспорта модели из файла roboo_anim_go.max

 

Для проверки данных анимированных моделей откройте файл проекта SkinnedMesh.dpr из среды Delphi, откройте unit SkinnedMeshUnit.pas, в классе CMyD3DApplication найдите реализацию функции InitDeviceObjects найдите строчку кода m_szPath := 'Media\tiny.x';

И задайте другую модель из имеющихся - nx4.x или robooPDX.x

Перекомпилируйте приложение и запустите полученный исполнимый файл. Если получаете ошибку об отсутствии файла D3DX81ab.dll скопируйте этот файл из папки с ОБЩИМ КОДОМ в папку с исполнимым файлом SkinnedMesh.exe и снова запустите приложение SkinnedMesh.exe.

 
пример работающего приложения
 
Roboo экспортировался в Х без проблем. Остановимся теперь на экспорте более сложных, но близких к реальным игровым приложениям примерах моделей.
 
Модели должны быть очень аккуратно подготовлены к экспорту. Что это значит? Это значит что любые огрехи в анимации или моделировании непременно скажутся на качестве выходной модели если вообще не приведут к ее порче. Чтобы продемонстрировать Вам неверный экспорт и ошибки скачайте архив с некорректной моделью - uncorrect_model (115 Кб).
 
Распакуйте архив в какую-нибудь папку и откройте файл human_skeleton_animate_go.max из 3Ds Max. Попробуйте экспортировать в формат X экспортером PandaDXExport.
 
Полученную модель проверьте в приложении SkinnedMesh или утилитами MeshView из DirectX SDK 8.1 или DirectX Viewer из DirectX SDK 9.
 
пример некорректной модели
 
Налицо сразу 3 ошибки - часть головы оторвана и движется вместе с рукой; периодически мелькает нулевая позиция меша - с разведенными в стороны руками; отсутствует текстура.
 
Корни данной некорректной модели лежат в основе ее создания. Чтобы избежать создания таких ошибок рассмотрим процесс подготовки модели и ее скелета более подробно.
 
[далее]
 
     
  [Все уроки 3ds max] [Галерея моделей] [далее]  
     
подробнее

Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 3

Предлагаем вашему вниманию онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as).

А Костик, привет ! Решил позаниматься ?

Костя Коробкин - В гостях у тёти Светы (- интерактивный комикс (kk as) - онлайн комикс - страница 3

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1][страница 2] [страница 3] [страница 4] [страница 5] 

подробнее

Creating game on fle game engine - Simple game / Создание игры на fle game engine - Simple game

15. Мульти анимация



read paper in english

В данном уроке мы проведем своего рода быстрый старт - это введение в создание игр в среде fle game engine.





Содержание

страница 1 - Спрайты

страница 2 - Объекты

страница 3 - Наложение объектов

страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении

страница 5 - Отображаем прыгающий шарик

страница 6 - Загрузка игровой сцены

страница 7 - Перемещения игровой сцены

страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены

страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика

страница 10 - Проверка столкновений

страница 11 - Игровой счёт, звуки, музыка

урок #2 страница 1 - Создание новых сцен для игры simple game, расширенная версия simple game extended

13. Скроллинг больших локаций

14. использование переменных в игре на c++ directx 9c

15. Мульти анимация







Прошло совсем немного времени с момента написания урока про Спрайты.

Тема данного урока - изучить как можно использовать в игре не один, а несколько спрайтов. У одного персонажа анимаций может быть несколько: прыжки, хотьба, какие-то иные действия и т. п.

Это есть не что иное как МНОЖЕСТВЕННЫЕ АНИМАЦИИ, поэтому я и назвал урок Мульти анимация.

Мы будем рассматривать как использовать несколько анимаций относящихся к одному и тому же персонажу - в нашем случае - к Зеленому Шарику.



Вы можете заметить: что нового в мультианимации по сравнению с обычной ? Ведь что одна, что много - работа с ними ведется по-сути одинаково.

Да, вы это справедливо заметили, но не все так просто.

Хорошо, когда все анимации у вас циклические и неважно когда остановить анимацию. Например наш шарик - он прыгает постоянно и для нас совершенно неважно на каком текущем кадре он сейчас. Все эти кадры просто воспроизводятся циклически и бесконечно.

Но как быть когда анимацию нужно показать лишь однократно ? Причем важно чтобы она остановилась именно на нужном кадре, а не любом ?

Вот эти особенности я и хотел бы рассмотреть в статье, т. е. увязку множества анимаций как количественно, так и качественно в плане программной их части.

Помимо этого, можно коснуться немного реализации логики воспроизведения анимаций. Одни анимации нужно показывать при одних условиях, другие - при иных и все это реализуется функционалом программной части.

Художник может лишь показать на спрайте, что с ним происходит, а задача программиста не только показать созданный спрайт, но и реализовать условия по которым этот спрайт будет отображен в игре. Помимо этого нужно еще и запрограммировать особенности воспроизведения самой анимации: будет ли она (опять же) цикличной или однократной. Может быть она будет реверсивной - воспроизводимой в обратном порядке от конца к началу. И т. п.



Анимация Дразнящего Шарика - на последнем кадре задержка для демонстрации показа как бы однократной анимации



Вот методы, которые нужно объявить в классе CGameSprite, для того, чтобы использовать однократно воспроизводимую анимацию Дразнящего Шарика.

//анимация Дразнящего Шарика (показывает язык)
void Draw_Showing_Tongue();
void Anim_Showing_Tongue();
float m_fShowing_Tongue_Sprite_Frame;

bool m_bAnim_Showing_Tongue_Stopped; //завершилась ли анимация Дразнящего Шарика
void Start_Showing_Tongue_Anim();
void Restart_Showing_Tongue_Anim();


Суть реализации заключается в следующем: при определенном условии - например если в течение 15 секунд подряд шарик ни разу не был пойман в ямку должна быть показана данная анимация - однократно - т. е. показана с начала и с остановкой на последнем кадре.

Метод Draw_Showing_Tongue() отрисовывает текущий кадр анимации шарика.

Anim_Showing_Tongue() - выполняет анимирование, т. е. переключение кадров при изменении счетчика времени.

Поле - m_fShowing_Tongue_Sprite_Frame запоминает текущий кадр анимации и нужно для того, чтобы один и тот же спрайт мог использоваться независимо разными игровыми объектами. Для этого просто каждый игровой объект должен иметь у себя такое поле.

Тогда, перед выполнением анимации игровой объект запоминает текущий кадр спрайта, передает ему свой текущий кадр, выполняет анимацию, затем запоминает на каком кадре он остановился и возвращает спрайту его текущий кадр.

Поле - m_bAnim_Showing_Tongue_Stopped служит для фиксации момента завершения анимационной цепочки. Если цепочка закончилась - то поле получит значение true. Таким образом приложение будет знать, что анимация спрайта закончилась и можно переходить к другим действиям. В моем примере - снова будет отображаться анимация обычного прыгающего шарика.

Ну и наконец метод Start_Showing_Tongue_Anim() используется приложением для запуска анимации. В моем примере - если в течение 15 секунд шарик ни разу не был пойман в ямку, то будет вызван данный метод и запущен процесс показа этой анимации.

Когда анимация закончилась нужно, чтобы при следующем вызове Start_Showing_Tongue_Anim() она снова началась с 0 кадра. Для этого и служит метод Restart_Showing_Tongue_Anim().

Вот собственно и все.

Теперь вы наверное, хотели бы увидеть реализацию все описанных методов.

Пожалуйста, ознакомтесь.


//анимация Дразнящего Шарика (показывает язык)
void CGameSprite::Draw_Showing_Tongue()
{
LPD3D9SPRITE usedSprite = NULL;

int ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == SpriteTexIndex )
ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == ball_jump_red_SpriteTexIndex )
ball_sprite = ball_showing_tongue_red; //для красного шарика используется свой спрайт

usedSprite = GetGameSprite(ball_sprite, g_AI_Ball_Sprite.m_pTextures);

float OldFrame;
if ( usedSprite != NULL )
{
OldFrame = usedSprite->Frame;
usedSprite->Frame = m_fShowing_Tongue_Sprite_Frame;

Vector2Screen(&m_v2VectorPos, &m_v2Pos); //переводим векторные координаты //в пиксельные
usedSprite->m_v2Vector2ScreenPos = m_v2Pos;

//выполняем отрисовку спрайта по указанным координатам и с указанным масштабом usedSprite->Draw2(
m_v2Pos.x,
m_v2Pos.y,
m_vBallZ,
usedSprite->m_Scale.x,
usedSprite->m_Scale.y,
255);

usedSprite->Frame = OldFrame;
}
}

void CGameSprite::Anim_Showing_Tongue()
{
LPD3D9SPRITE usedSprite = NULL;

int ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == SpriteTexIndex )
ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == ball_jump_red_SpriteTexIndex )
ball_sprite = ball_showing_tongue_red; //здесь аналогично - для красного шарика свой спрайт

usedSprite = GetGameSprite(ball_sprite, g_AI_Ball_Sprite.m_pTextures);

float OldFrame;

if ( usedSprite != NULL )
{
OldFrame = usedSprite->Frame;
usedSprite->Frame = m_fShowing_Tongue_Sprite_Frame;

usedSprite->FrameMove_StopOnEndFrame(g_fElapsedTime, &m_bAnim_Showing_Tongue_Stopped);

m_fShowing_Tongue_Sprite_Frame = usedSprite->Frame;
usedSprite->Frame = OldFrame;
}
}



void CGameSprite::Start_Showing_Tongue_Anim()
{
m_bAnim_Showing_Tongue_Stopped = false;
m_dwAnimState = BAS_SHOWING_TONGUE; //когда была запущена данная анимация выставляем у объекта //такое состояние
//чтобы знать какой метод использовать для его отрисовки и анимирования }

void CGameSprite::Restart_Showing_Tongue_Anim()
{
m_fShowing_Tongue_Sprite_Frame = 0.0f;
}
На этом все.

[назад] [далее]

подробнее

2.02.2019

fle game generator - эффекты под музыку и без на движке fle game engine



Вам наверняка хотелось бы помимо базовых возможностей, которые есть
в приложении fle game generator (fgg) иметь и возможность добавить что-то новое,
непохожее на то, что уже есть.

В этом уроке попробуем разобраться как же этого достичь.

Для начала нам понадобится:

fle game engine - набор исходных файлов которые можно скачать
на сайте со страницы -

megainformatic.ru/?page=503
кнопка Скачать.

Если Вы авторизованы, то ввод email для скачивания не потребуется.
Размер дистрибутива 482 Mb.

Также Вам понадобится для работы

Microsoft Visual Studio 2005 (MSVS 2005).

DirectX SDK Aug 2008.

megainformatic.ru/?page=525 - на данной странице найдете ссылку
для скачивания DirectX SDK Aug 2008.



Их также нужно скачать и установить в вашей системе.

Сначала MSVS 2005, затем DirectX SDK Aug 2008.

После того как все это сделано, а
fle game engine также скачан и распакован, можно приступать к дальнейшей
работе.

В первую очередь вам потребуется изучить некоторые основы.
Пройти курс уроков -
megainformatic.ru/?page=516



Ну и самое главное, что нам понадобится - это конечно исходный
код приложения fgg.



После того, как исходный код скачан с сайта, нужно распаковать архив,
и расположить его в одной из папок, куда вы установили fle game engine.
Потому что нам понадобится часть исходных файлов, которые есть
внутри папки fle game engine.

О настройке проекта я уже писал здесь -
megainformatic.ru/?page=525

и здесь
megainformatic.ru/?page=586



Ссылка для скачивания исходных файлов fgg.



Размер архива 111 Mb.

Представляет самораспаковывающийся архив.

Включает полный исходный код, все необходимые файлы и информационные
материалы, инструкции.

контрольные суммы для проверки целостности скачанного архива.

Можно проверить программой HashTab.

CRC32: 56F472B6
MD5: 09434B7CA42B1F0E57CAC8DDAEDA9F95
SHA-1: 92793C62EE88474C3A87DB68A4AD64609608B25F

О том, как проверить контрольные суммы при помощи
HashTab рассказано тут -
megainformatic.ru/?page=568



Если все установлено и настроено, откроем проект в MSVS 2005 из папки
куда Вы распаковали исходные файлы fgg.

Найдем файл start.h

и в нем изменим строки -
#define MyGameAppName L"fly snow 3d 02.02.2019"
#define MyGameAppName2 "fly snow 3d 02.02.2019"

На текущую дату, которая у вас сейчас
или можно написать любой текст какой вам нравится.

Например так,

#define MyGameAppName L"my fgg"
#define MyGameAppName2 "my fgg"

Выполним сборку приложения -

Build > Clean Solution
Build > Rebuild Solution.

Если в папке

путь_к_папке_исходных_файлов_fgg\fgg\fgg\

например у меня он такой -

C:\fle_game_engine\private\source\bol_l2\fgg\fgg\

нормально создался файл
start.exe

Вы его запустили и приложение нормально работает.

Значит первый шаг сделан.

Можно пробовать применять различные модификации в коде, чтобы создать
такие эффекты, которые нужны именно Вам.

Начнем с самого простого.

В приложении Вы наверное уже видели как летят 3d кубики.

Попробуем вместо кубиков выводить 3d шарики.

Для этого Вам понадобится:

установленная программа 3ds max 2009 или другой версии (которая у вас есть),
а также установленный в ней плагин kwXPort, который позволяет экспортировать
модели из формата 3ds max, в формат .x

В программе 3ds max нужно создать модель 3d шарика,
экспортировать её в формат .x

а затем, в папке

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d

например у меня путь такой -
C:\fle_game_engine\private\source\bol_l2\fgg\fgg\Media\models\snow3d

Вместо уже имеющихся там файлов моделей кубиков, вставить файлы моделей шариков.

Также вам надо учесть масштаб вашего шарика.

Для этого откройте из 3ds max пример модели кубика -

путь_к_папке_исходных_файлов_fgg\fgg\concept\graphics\box\model

у меня путь такой -
C:\fle_game_engine\private\source\bol_l2\fgg\concept\graphics\box\model

И соответственно сделайте ваш шарик по масштабу примерно таких же размеров, как кубик.

Для чего это нужно ? Чтобы размер ваших шариков в игровой сцене
в приложении fgg был примерно таким
же как кубиков. Иначе их визуальное отображение может быть не таким,
как Вы ожидаете или вообще может
получиться так, что Вы их совсем не увидите (если масштаб будет намного
меньше масштабов самой игровой
сцены или наоборот намного больше).

В первом случае шарики могут оказаться слишком малыми, чтобы их увидеть в сцене,
а во втором - камера
как бы будет находиться внутри больших шариков (если они слишком большие) и
опять же - мы ничего не увидим
в сцене.

Так что учитывать масштаб - это очень важно.

Второй момент, который нужно учесть - это правильно разместить шарик в
файле модели, а также
нанести на его поверность текстуру.



Для примера я уже приложил в папке

путь_к_папке_исходных_файлов_fgg\fgg\concept\graphics\box\model\

пример готового шарика -

ball_sample.max

Можете попробовать открыть из 3ds max и посмотреть, что там.

Вы увидите шарик, расположенный в центре осей координат, и там же есть кубик.

Кубик можно теперь удалить из сцены, а модель сначала пересохранить как ball_1.max

А затем конвертируем её в формат .x

File > Export > kW X-Port (*.X)

О том, как экспортировать файлы моделей в формат .X я уже описывал тут -

megainformatic.ru/?page=420

Для просмотра данной статьи на сайте Вам потребуется авторизоваться.

Итак, если модель ball_1.x создана копируем её и файл её текстуры
в папку -

обычно 3ds max создает файлы моделей в такой папке -
C:\Users\имя_пользователя\Documents\3dsmax\export



Значит вам остается взять оттуда файл

ball_1.x

и скопировать в папку -

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d

также чтобы модель нормально отобразилась в игровой сцене приложения fgg Вам нужно сделать следующее:



Открыть модель в любом текстовом редакторе (например Блокнот)
найти строку -

TextureFilename Diffuse

и абсолютный путь к файлу текстуры изменить на относительный например как было у меня:

было -

TextureFilename Diffuse {
 "C:\\fle_game_engine\\private\\source\\bol_l2\\fly_snow_3d\\concept\\graphics\\box\\tex\\box.jpg";
}


надо изменить на


TextureFilename Diffuse {
     "\\Media\\textures\\box.jpg";
    }



Пока для шарика будет использоваться та же текстура, что использовалась для кубика box.X

Да, следует иметь в виду, что файл модели ball_1.x у вас должен быть экспортирован в текстовом формате.
Если же у вас стояли галочки binary или compress, то при экспорте их надо было убрать.

Для этого вернитесь к шагу
О том, как экспортировать файлы моделей в формат .X



Далее -

В приложении fgg у нас сейчас используются кубики.

Нам нужно сделать вместо них шарики.

В текстовом редакторе откроем файл

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\model_list.txt

было

box.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box2.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box3.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box4.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;

изменим так -

ball_1.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box2.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box3.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box4.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;

Сохраняем файл и пробуем запустить приложение fgg.

Из папки
путь_к_папке_исходных_файлов_fgg\fgg\fgg\

запускаем файл start.exe который Вы скомпилировали из MSVS 2005
на предыдущих шагах. Если еще нет - то вернитесь на этот шаг
и выполните сборку проекта fgg в среде MSVS 2005.

Таким образом, у нас теперь в приложении должно выводиться:

1 вид шариков и 3 вида кубиков, поскольку мы поменяли 1 строку
в файле
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\model_list.txt



Если у вас все получилось, то поздравляю !

У меня получилось так -

fle game generator - 1 вид 3d шариков и 3 вида 3d кубиков

По-аналогии теперь можете поменять в 3ds max у шарика текстуры на желтую, зеленую и синюю,
как у кубиков, экспортировать эти шарики как ball_2.x, ball_3.x, ball_4.x и
скопировать в папку -

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\

Файл

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\model_list.txt

изменить так -

ball_1.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
ball_2.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
ball_3.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
ball_4.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;

Сохраняем изменения.

Запускаем приложение fgg.

путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

Теперь у нас уже будет 4 вида разноцветных 3d шариков в приложении, а кубиков уже не будет.

Вот что получилось у меня -

fle game generator - 4 вида 3d шариков

На самом деле Вы можете это проделать еще проще, и вам уже даже не понадобится 3ds max.

Просто копируем файл
ball_1.X

внутри папки
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\

давая ему имена

ball_2.X
ball_3.X
ball_4.X

И в каждом из указанных файлов меняем строчку -

ball_2.X

TextureFilename Diffuse {
"\\Media\\textures\\box.jpg";
}

на
TextureFilename Diffuse {
"\\Media\\textures\\box2.jpg";
}

ball_3.X

TextureFilename Diffuse {
"\\Media\\textures\\box.jpg";
}

на

TextureFilename Diffuse {
"\\Media\\textures\\box3.jpg";
}

ball_4.X

TextureFilename Diffuse {
"\\Media\\textures\\box.jpg";
}

на

TextureFilename Diffuse {
"\\Media\\textures\\box4.jpg";
}



То есть мы просто сделали 3 файла моделей шариков с другими именами,
и прописали в них, чтобы они использовали другой вид текстуры -

box2.jpg
box3.jpg
box4.jpg

Ну что ж, это были самые азы. Но как видите даже для их воплощения
нужно достаточно много знать и иметь некоторые установленные
программы и навыки работы с ними.

Далее - в нашем следующем уроке Мы рассмотрим как реализовать
некоторые чуть-чуть более сложные вещи.

Как всегда мы будем начинать с самого простого, и постепенно
усложнять задачу.

Так Вы вполне легко сможете усвоить принципы создания визуальных
эффектов практически любой сложности.

Весь секрет состоит в умении раскладывать их на простые составляющие.

Итак, давайте начнем.

[далее]

     
  [к содержанию] [уроки 3ds max] [далее]  
     
     
     
  [Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi]  
     
  [Разработка компьютерной игры] [Пример игры Donuts3D] Рисуем волка из мультфильма [Delphi 2006 DirectX 9]  
     
 

Моделируем девушку в 3d используя 3ds max

Выполняем моделирование ноги

 
     
  Для лучшего понимания некоторых терминов и технологий, особенно если Вы еще не так хорошо знакомы с 3ds max - обратитесь к другим урокам по 3ds max, описывающим основы работы в этой программе.  
     
 

В данном уроке Мы с Вами займёмся моделированием части тела. Это будет нога.

Прелестная женская ножка, о которых писал стихи еще Пушкин.

 
     
  в предыдущем уроке мы подготовили так называемую ШИРМУ - модель из 3х взаимно перпендикулярных плоскостей, с нанесением изображений 3х проекций  
     
  готовая ширма с нанесенной текстурой проекций ноги  
     
  Теперь мы займёмся собственно созданием объёмной модели ноги  
     
  По окончании данного урока у Вас может получиться примерно следующая модель -  
     
  3d модель женской ножки  
     
  Итак, первым делом создаем примитив box вот таких размеров -  
     
  box - основа будущей ноги  
     
  На рисунке Вы видите, что модель box'а у меня полупрозрачна. Это свойство можно задать щёлкнув правой кнопкой мыши на модели бокса, выбрав пункт Object properties. Обратите внимание, что обязательно должен быть выбран текущим данный примитив, иначе данный пункт меню для него недоступен.  
     
  свойства объекта  
     
  А в появившемся окне установив галочку напротив пункта See-Through и нажав ОК  
     
  установка свойства объекта - See Through  
     
  Полупрозрачность позволит нам лучше позиционировать вершины модели ноги, ориентируясь на проекции представленные на ширме.  
     
  Теперь нужно увеличить количество сегментов у нашего примитива, таким образом, чтобы можно было создать нужное количество вершин, и в дальнейшем располагать их так, чтобы они повторяли контуры проекций ноги на ширме.  
     
  Для начала можно задать следующую сегментацию - 8 сегментов по высоте - Height Segments = 8  
     
  8 сегментов по высоте 
      - Height Segments = 8  
     
  3 сегмента по длине - Length Segments = 3 и 3 сегмента по ширине - Width Segments = 3  
     
  3 сегмента по длине - Length Segments = 3 и 3 сегмента по ширине - Width 
      Segments = 3  
     
  Далее Вам нужно преобразовать box в объект Editable poly аналогично тому, как Вы это делали в предыдущем уроке, когда создавали ширму  
     
  А затем вооружившись инструментами Select And Move и Select And Uniform Scale выполнять позиционирование и масштабирование вершин в соответствии с проекциями на ширме.  
     
  На нижеследующих рисунках показано как это должно происходить поэтапно  
     
  размещаем вершины модели в соответствии с проекциями - вид сбоку  
     
  размещаем вершины модели в соответствии с проекциями - фронтальный вид  
     
  размещаем вершины модели в соответствии с проекциями - изометрический вид  
     
  размещаем вершины модели в соответствии с проекциями - изометрический вид  
     
  Ну и наконец, если мы применим к полученной геометрии модификатор Mesh Smooth то можно получить вполне то, что нам в конечном счёте и нужно - достаточно правдоподобную модель женской ноги  
     
  если мы применим к полученной геометрии модификатор Mesh 
      Smooth то можно получить вполне то, что нам в конечном счёте и нужно - достаточно 
      правдоподобную модель женской ноги  
     
  окончательная модель женской ножки  
     
  Данная модель хороша, но она как Вы можете легко заметить еще имеет ряд существенных недостатков, которые сразу же бросаются в глаза: форма ноги не совсем еще совершенна, например на ней недостаточно хорошо выражены все изгибы, нет коленной чашечки. Эти и некоторые другие замеченные недостатки Мы попытаемся с Вами исправить в нашем следующем уроке.  
     
  Вы можете скачать полученную модель и все необходимые файлы одним архивом -  
     
 

Скачиваний : 0
 
     
     
     
     
  [к содержанию] [уроки 3ds max] [далее]  
     
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,2330