Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Оружие и smd в glscene   Найти похожие ветки 

 
Trof ©   (2005-07-20 17:51) [0]

Возможно ли в глсцене, скажем к кости руки smd модели привязать оружие (фриформ 3ds). И как это вообще делается?


 
4ECHOK ©   (2005-07-20 18:36) [1]

Можно.

...GLScene\Demos\meshes\actortwocam\

Там показано то, что ты хочешь.


 
XProger ©   (2005-07-20 19:34) [2]

Новоуральск, это уже не смешно!


 
DeadMeat ©   (2005-07-20 21:24) [3]

Ты кажись перепутал чуток ветку...

---
...Death Is Only The Begining...


 
XProger ©   (2005-07-20 21:33) [4]

Извиняюсь :)


 
Trof ©   (2005-07-21 08:05) [5]


> Можно.
>
> ...GLScene\Demos\meshes\actortwocam\
>
> Там показано то, что ты хочешь.

Но неужели это так и делалось, например, в такой игре как Morrowind, я вообще-то думал, что можно как-нибудьпросто привязать к руке меч, и он уже в последствии так и будет сам двигаться вслед за ней. Так сделать реально?


 
4ECHOK ©   (2005-07-21 08:12) [6]

Дык, в той демке так и сделано. Все основано на принципе скелетной анимации. Оружие - продолжение кости одной из рук.
Все ясно и понятно.

P.S. Morrowind - не играл, не знаю.


 
Trof ©   (2005-07-21 11:50) [7]

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


 
Conferno   (2005-07-21 20:22) [8]

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


 
4ECHOK ©   (2005-07-21 21:04) [9]


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

Дык в ЖЛСцене так и реализовано. Смотрим на код демки Demos\meshes\actortwocam\:

Подгрузили модельку человека и его анимацию:

Actor1.LoadFromFile("..\..\media\waste.md2");
Actor1.Animations.LoadFromFile("..\..\media\Quake2Animations.aaf");

Подгрузили модельку пулемета:

Actor2.LoadFromFile("..\..\media\WeaponWaste.md2");

Согласуем анимацию пушки с движением мэна:

Actor2.Animations.Assign(Actor1.Animations);
...
Actor2.Synchronize(Actor1);

Все, пушка мертво привязана к руке. Trof, не об этом ли ты спаршивал ?:

> Возможно ли в глсцене, скажем к кости руки smd модели привязать
> оружие (фриформ 3ds). И как это вообще делается?


 
Trof ©   (2005-07-22 13:10) [10]

И всё-таки, по-моему там просто оинхронизируются анимации оружия и персонажа. Для оружия делается такой же скелет как и для чела, и в максе или где там, прикрепляется к руке, далее в этом положении экспортируется вместе со скелетом в smd. Потом стоит сделать
Actor2.Animations.Assign(Actor1.Animations);
Actor2.Synchronize(Actor1);

И ко второму актёру применяется анимация первого и всё это дело синхронизуется. Мне кажется так.


 
DeadMeat ©   (2005-07-22 13:52) [11]

ИМХО лучше делать как сказал Conferno.. Надежней и универсальней.. Просто надо модели к этому подготовить..
К примеру чтобы оружие находилось в начале системы координат в самой модели.. т.е. чтобы не было смещения.


 
Trof ©   (2005-07-22 17:40) [12]

>DeadMeat
Вот, собственно что я и хотел узнать.
Но если уж Conferno не помнит как это делается, то я-то вообще не знаю. Мне бы объяснил кто, или примерчик какой...


 
4ECHOK ©   (2005-07-22 18:41) [13]

То, о чем говорит Conferno в реализации не так просто, так что браться за это не стоит. Или садись за математику и геометрию, изучай матрицы, кватернионы и прочую гадость =)))


 
DeadMeat ©   (2005-07-22 19:32) [14]

dummycube.matrix:=MatrixMultiply(mesh.Skeleton.BoneByID(5).GlobalMatrix,mesh.AbsoluteMatrix);

Ы..?

---
...Death Is Only The Begining...


 
4ECHOK ©   (2005-07-22 20:58) [15]

DeadMeat, я не то имел ввиду. В GLScene это просто сделать. А вот если с нуля это все расчитывать ... вот тут и навернуться можно.


 
Conferno   (2005-07-22 22:05) [16]


> DeadMeat ©   (22.07.05 19:32) [14]
> dummycube.matrix:=MatrixMultiply(mesh.Skeleton.BoneByID(5).GlobalMatrix,mesh.AbsoluteMatrix);
>
> Ы..?


Да, кажется так... :)


 
Trof ©   (2005-07-23 08:49) [17]

А для матриц какой файл в uses нужно добавить?


 
Trof ©   (2005-07-23 09:07) [18]

Всё нашёл vectorgeometry.


 
Trof ©   (2005-07-23 09:20) [19]

Блин, спасибо чуваки, если в каденсер всё это дело запихать, то всё прекрасно работает. Только почему-то если я, например прикрепляю к кисти руки, то даммикуб ложится немного не точно, чуть-чуть в сторону от руки, это приидётся самому корректировать?


 
4ECHOK ©   (2005-07-23 10:01) [20]

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


 
Trof ©   (2005-07-25 18:24) [21]

Нет, этого не возникает, только почему-то меняется scale самого оружия, оно уменьшается.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1133521765
-=SPIDER=-
2005-12-02 14:09
2005.12.18
Проблема при удалении папки


4-1129795229
bva
2005-10-20 12:00
2005.12.18
Считать данные из другого приложения


2-1133422940
xfox
2005-12-01 10:42
2005.12.18
Как создать Слайд шоу с помошью Imagelist, Image


14-1132742976
Digitman
2005-11-23 13:49
2005.12.18
USB <-> MIDI


14-1132335263
lookin
2005-11-18 20:34
2005.12.18
У меня тоже пару вопросов...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский