Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.02.2012, 22:12
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
Вопрос Анимация объекта

И вновь я, и все в той же плоскости: 3d + openGL.
Всем наверно известен распространенный пример экспорта 3d анимированного объекта из 3ds max.
Вопрос мой заключается в анимации.
Не могу разобраться как проигрывать анимацию один раз либо до определенного момента может кто-нибудь подскажет.
Гугл конечно вещь, но что то мы с ним не ладим
Ответить с цитированием
  #2  
Старый 10.02.2012, 22:14
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Пример с GameDev'а чтоли?
Тут уже зависит от того, какая анимация. Самое простое (решение "в лоб")- взять вектора перемещения точек, разбить их на промежутки (в зависимости от длинны кадра) и двигать в каждом кадре на нужное расстояние.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 10.02.2012, 22:21
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Ну да. Да он много где был.
Ну а если, скажем, это подобие человека, которой бежит и одновременно, по команде пользователя, совершает какое-либо движение рукой?
Как в этой ситуации поступить...
Ответить с цитированием
  #4  
Старый 10.02.2012, 22:25
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Отдельно анимацию ног, отдельно рук. Для ног продолжать, а для рук запустить новую.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 10.02.2012, 22:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

На вскидку сразу не скажу, но там используются "рычаги". Это когда "рычаг" = костям скелета и двигаются не отдельные точки, а весь комплекс точек привязанных к определённому "рычагу". Хорошо это показано на Blender-е, но там совместимость выходного формата хуже некуда.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 10.02.2012, 22:30
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Это костная анимация. Она труднее будет, надо юзать для каждой точки степени влияния на нее разных костей. Но эффект для анимации живых объектов, конечно, в разы лучше.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #7  
Старый 10.02.2012, 22:37
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Ммм...вы меня чуть не так поняли. То как реализовать анимацию в максе это я знаю. Слава богу с ним на ты.
Вопрос то как проиграть ее в моей программе?
Проблема решаема когда анимация происходит отдельно друг от друга.
А вот когда вместе, еще и у одного объекта
Есть конечно вариант руки, ноги ну и все что будет анимироваться нарисовать отдельно, а в программе собрать в кучу. Тогда вопрос отпадает...но почему-то мне это показалось не правильным подходом
Вообще как реализуются такие вещи в норм играх?
Ответить с цитированием
  #8  
Старый 10.02.2012, 22:49
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Ну не обязательно делать отдельно руки там и ноги. Достаточно сделать им разные анимации и продумать формат так, чтоб можно было одновремено запускать анимации разных частей тела. Можно попробовать хранить анимацию отдельных подобъектов (групп?).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #9  
Старый 10.02.2012, 23:10
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Ну не обязательно делать отдельно руки там и ноги. Достаточно сделать им разные анимации и продумать формат так, чтоб можно было одновремено запускать анимации разных частей тела. Можно попробовать хранить анимацию отдельных подобъектов (групп?).
Тогда возникает новая проблема - Max Script.
Ведь свое "начало" 3D объект берет оттуда...
Ответить с цитированием
  #10  
Старый 10.02.2012, 23:14
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от It-s-me
...Ведь свое "начало" 3D объект берет оттуда...
Слишком громко сказано, 3Д объект появился гораздо раньше чем "Макс", но это уже не имеет отношение к теме.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 10.02.2012, 23:22
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Слишком громко сказано, 3Д объект появился гораздо раньше чем "Макс", но это уже не имеет отношение к теме.

ну я имел ввиду мой проект а не в глобальном смысле
Ответить с цитированием
  #12  
Старый 10.02.2012, 23:34
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Круто бы было загонять сетку объекта и кости в прогу, уже в ней делать нужную анимацию, а двиг пусть это все считает и визуализирует
Хотя это здорово скажется на производительности наверно...
Ответить с цитированием
  #13  
Старый 11.02.2012, 16:04
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Неужели никто не сталкивался с данной задачей...
Ответить с цитированием
  #14  
Старый 13.02.2012, 14:03
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Я сталкивался, но в DirectX. Можно взять несколько перемещений костей скелета и применять их в любой комбинации. Примеры в книге Джима Адамса "DirectX. Продвинутая анимация".
Ответить с цитированием
  #15  
Старый 14.02.2012, 17:37
It-s-me It-s-me вне форума
Прохожий
 
Регистрация: 25.01.2012
Сообщения: 23
Репутация: 10
По умолчанию

Спасибо. что-т даже и не подумал в этой области посмотреть. Я конечно решил проблему, но решение мне не нравится....
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025