Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Оружие и 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.028 c
4-1129899892
Семен Сорокин
2005-10-21 17:04
2005.12.18
Взять правильную версию переименованого EXE-файла?


2-1133137721
Дева
2005-11-28 03:28
2005.12.18
Экспорт данныч из Excel`я


4-1129578335
Rianon
2005-10-17 23:45
2005.12.18
Dll и использование немодальных форм в них


2-1132482425
Officeman
2005-11-20 13:27
2005.12.18
listview.Items.Item[t].Selected:=true; как scrollbar подвинуть ?


6-1117730133
Дмитрий_05
2005-06-02 20:35
2005.12.18
Свой браузер-чат