Разделение модели на части
В общем, есть модель с костями, то есть при желании всю модель можно найти как группу Child'ов. Вопрос, можно ли как-нибудь "разбить" эту модель на эти чайлды, чтобы они стали самостоятельными объектами (чтобы над ними можно было проводить все операции как с обычным entity)? То есть, по сути, мне нужно чтобы модель разбивалась на полигональные группы (но не разлеталась пополигонно, этот трюк я знаю).
Если кто знает как реализовать подобное, отпишитесь плиз. Я конечно всегда могу сделать все части заранее моделями и держать из в памяти, в нужный момент подменяя цельный исходник, но сначала хотелось бы узнать, нельзя ли реализовать попроще? Заранее спасибо! |
Ответ: Разделение модели на части
Ну, есть идея. Могу предложить череззадничный метод.
Если определенные части можно найти чилдами, то можно написать фунукцию, которая будет копировать геомтерию из сюрфейса в другой. ? Ну и естественно на месте старого чилда можно создать новый меш с сюрфейсом и вставить в него. Но я думаю этот способ не подойдет если использовать прямо в реалтайме... Правда потом, как подтереть копируемый кусок геометрии в разделяемом меше я пока не знаю... ClearSurface ? |
Ответ: Разделение модели на части
Да, я тоже думал об этом. Но в этом случае мне придется переделывать много моделей, так как разделение на сурфейсы предполагает наличие у моделей разных частей и текстур.
Сделал несколько кусков одной модели, загружаю их, добавляю им в физиксе физическую модель типа hull - проваливаются под землю. Типа слишком мелкие модели. А если я каждому куску каждой модели буду вручную колижнбокс прописывать... В общем даже не знаю как реализовать - предмет должен "разбиваться" и исчезать. |
Ответ: Разделение модели на части
ПАРЕНТ 0
|
Ответ: Разделение модели на части
Цитата:
|
Ответ: Разделение модели на части
>ПАРЕНТ 0
Разве чилд можно открутить от аним меша? ЗЫ. EntityParent ent,0 откручивает ентити от родителя. |
Ответ: Разделение модели на части
Рекурсия по чилдам, записываешь их все в тип
потом цикл по типу и отпаренчиваешь в первом цикле нельзя отпаренчивать - вылетит |
Ответ: Разделение модели на части
Спасибо за инфу, реально полезная штука, если получится реализовать. В данном случае уже отказался от разрушаемости по причине вышеописанных проблем с коллизией "тонких" тел в физиксе, но вообще пригодится =)
|
Ответ: Разделение модели на части
Хм... отделил все чайлды от меша, но смысла в этом пока не увидел :) Отдельными entity после этого они не стали, многие команды по работе с ними так же продолжают ругаться, что мол "Entity is not a model", а команды по вращению/перемещению чайлдов работали и раньше. Даже кулбокс продолжает рассчитываться для каждого чайлда относительно оригинала.
|
Ответ: Разделение модели на части
Странно! На счёт EntityParent 0 было правильно сказано.
После этого чилд больше не имеет никакой связи с родителем. И становится полноправным entity. PHP код:
|
Ответ: Разделение модели на части
Да, я так и делал. Хм... а как находить нужные чайлд - до разделения или каким-то образом после? Сделал так:
mesh=LoadAnimMesh(<...>) child=FindChild(mesh,"child") DeparentAllChilds(mesh) EntityColor child,0,0,0 Результат такой же как я писал вышел - ругается ошибкой на EntityColor. А если переместить эти чайлды, так же кулбокс определяется относительно бывшего главного родителя...:dontknow: |
Ответ: Разделение модели на части
если я не ошибаюсь, то ошибка вполне понятна. ты ведь открутил уже все чайлды от меша, вот он и показывает на EntityColor. Попробуй так:
mesh=LoadAnimMesh(<...>) child=FindChild(mesh,"child") EntityColor child,0,0,0 DeparentAllChilds(mesh) Конечно, 100 процентов не даю, но вроде бы должно работать |
Ответ: Разделение модели на части
Тоже самое :dontknow: Но вообще не парьтесь, я уже все равно делаю разбивание модели на полигоны аки партиклы ) Способ конечно устаревший, но все еще работает )
|
Часовой пояс GMT +4, время: 03:00. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot