|
25.04.2010, 21:00
|
#1
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Разделение модели на части
В общем, есть модель с костями, то есть при желании всю модель можно найти как группу Child'ов. Вопрос, можно ли как-нибудь "разбить" эту модель на эти чайлды, чтобы они стали самостоятельными объектами (чтобы над ними можно было проводить все операции как с обычным entity)? То есть, по сути, мне нужно чтобы модель разбивалась на полигональные группы (но не разлеталась пополигонно, этот трюк я знаю).
Если кто знает как реализовать подобное, отпишитесь плиз. Я конечно всегда могу сделать все части заранее моделями и держать из в памяти, в нужный момент подменяя цельный исходник, но сначала хотелось бы узнать, нельзя ли реализовать попроще?
Заранее спасибо!
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Amatsu за это полезное сообщение:
|
|
25.04.2010, 21:31
|
#2
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Разделение модели на части
Ну, есть идея. Могу предложить череззадничный метод.
Если определенные части можно найти чилдами, то можно написать фунукцию, которая будет копировать геомтерию из сюрфейса в другой. ? Ну и естественно на месте старого чилда можно создать новый меш с сюрфейсом и вставить в него. Но я думаю этот способ не подойдет если использовать прямо в реалтайме...
Правда потом, как подтереть копируемый кусок геометрии в разделяемом меше я пока не знаю...
ClearSurface ?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.04.2010, 22:51
|
#3
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Разделение модели на части
Да, я тоже думал об этом. Но в этом случае мне придется переделывать много моделей, так как разделение на сурфейсы предполагает наличие у моделей разных частей и текстур.
Сделал несколько кусков одной модели, загружаю их, добавляю им в физиксе физическую модель типа hull - проваливаются под землю. Типа слишком мелкие модели. А если я каждому куску каждой модели буду вручную колижнбокс прописывать... В общем даже не знаю как реализовать - предмет должен "разбиваться" и исчезать.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.04.2010, 23:13
|
#4
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Разделение модели на части
ПАРЕНТ 0
__________________
|
(Offline)
|
|
25.04.2010, 23:20
|
#5
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Разделение модели на части
Сообщение от tormoz
ПАРЕНТ 0
|
Пожалуйста, можно поподробнее? У меня никакой системы парентов на этих загружаемых моделях не используется... И потом у меня уже проблема из "как разбить модель на части" постепенно переросла в проблему "как сделать эти мелкие части физическими объектами". Дело в том что они достаточно тонкие, но длинные, чтобы я мог для них сделать точечную проверку для малых объектов/высоких скоростей.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.04.2010, 23:34
|
#6
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Разделение модели на части
>ПАРЕНТ 0
Разве чилд можно открутить от аним меша?
ЗЫ. EntityParent ent,0 откручивает ентити от родителя.
|
(Offline)
|
|
26.04.2010, 01:02
|
#7
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Разделение модели на части
Рекурсия по чилдам, записываешь их все в тип
потом цикл по типу и отпаренчиваешь
в первом цикле нельзя отпаренчивать - вылетит
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
|
|
26.04.2010, 01:13
|
#8
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Разделение модели на части
Спасибо за инфу, реально полезная штука, если получится реализовать. В данном случае уже отказался от разрушаемости по причине вышеописанных проблем с коллизией "тонких" тел в физиксе, но вообще пригодится =)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2010, 11:59
|
#9
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Разделение модели на части
Хм... отделил все чайлды от меша, но смысла в этом пока не увидел Отдельными entity после этого они не стали, многие команды по работе с ними так же продолжают ругаться, что мол "Entity is not a model", а команды по вращению/перемещению чайлдов работали и раньше. Даже кулбокс продолжает рассчитываться для каждого чайлда относительно оригинала.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2010, 12:41
|
#10
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,360
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Разделение модели на части
Странно! На счёт EntityParent 0 было правильно сказано.
После этого чилд больше не имеет никакой связи с родителем.
И становится полноправным entity.
Function DeparentAllChilds(mesh) Repeat If CountChildren(mesh) = 0 Then Exit DeparentAllChilds(GetChild(mesh,1)) Forever EntityParent mesh,0 End Function
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2010, 12:58
|
#11
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Разделение модели на части
Да, я так и делал. Хм... а как находить нужные чайлд - до разделения или каким-то образом после? Сделал так:
mesh=LoadAnimMesh(<...>)
child=FindChild(mesh,"child")
DeparentAllChilds(mesh)
EntityColor child,0,0,0
Результат такой же как я писал вышел - ругается ошибкой на EntityColor. А если переместить эти чайлды, так же кулбокс определяется относительно бывшего главного родителя...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2010, 19:34
|
#12
|
Мастер
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений (для 2,207 пользователей)
|
Ответ: Разделение модели на части
если я не ошибаюсь, то ошибка вполне понятна. ты ведь открутил уже все чайлды от меша, вот он и показывает на EntityColor. Попробуй так:
mesh=LoadAnimMesh(<...>)
child=FindChild(mesh,"child")
EntityColor child,0,0,0
DeparentAllChilds(mesh)
Конечно, 100 процентов не даю, но вроде бы должно работать
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.04.2010, 19:51
|
#13
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Разделение модели на части
Тоже самое Но вообще не парьтесь, я уже все равно делаю разбивание модели на полигоны аки партиклы ) Способ конечно устаревший, но все еще работает )
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:22.
|