HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Как можно создать систему Parent? (https://hlfx.ru/forum/showthread.php?threadid=3880)
Отправлено ONeiLL 14-04-2013 в 09:08:
Я вот думал, в чём сложность мовевитча? Вот представим: Есть два тела, одно присобачено к другому. И чтобы они не отсоединились, надо просто смещать одно тело на столько, на сколько сместилось второе. С поворотом та же фигня... В чём сложность? Это ж легко
Отправлено XaeroX 14-04-2013 в 09:11:
Цитата:
nemyax писал:
Матриц и преобразований не дают
Их дают в институте на первом курсе, есличё.
А школьникам незачем писать код, им надо в ВоВ играть, ну или там я не знаю, ретрибушен делать (как я в своё время) 
Добавлено 14-04-2013 в 16:11:
Цитата:
ONeiLL писал:
В чём сложность?
Основная сложность - понять, куда вставлять код.
Но опять же, это зависит от того, как именно будет решаться задача.__________________
Отправлено ONeiLL 14-04-2013 в 09:19:
Цитата:
XaeroX писал:
Основная сложность - понять, куда вставлять код.
Но опять же, это зависит от того, как именно будет решаться задача
В ХЛ в какой нить тчинк? Считаем изменение поворота и положения, и применяем это ко всем присобаченным ентитям...
Отправлено XaeroX 14-04-2013 в 09:22:
Цитата:
ONeiLL писал:
Считаем изменение поворота и положения, и применяем это ко всем присобаченным ентитям...
Наивный. А как тогда приаттаченная дверь будет блокироваться другими энтитями? Нет, там надо со скоростями работать. а не тупо изменять положение. 
Добавлено 14-04-2013 в 16:22:
Да вы попробуйте, попробуйте. Тут надо не просто фантазировать, а сразу код писать и смотреть, что к чему.__________________
Отправлено ONeiLL 14-04-2013 в 09:23:
Но у себя в движке вообще очень легко делать. Я вот просто брал и объединял все тела в одно целое, и дальше физику считал уже для одного целого тела, а не для 100 приатаченых
Отправлено nemyax 14-04-2013 в 09:30:
Цитата:
XaeroX писал:
Их дают в институте на первом курсе, есличё.
Так то ж на технических факультетах, а не на гомо... как их там.
Парент-система разве не заключается в перемножении матриц согласно заданной иерархии?
Отправлено ONeiLL 14-04-2013 в 09:36:
Цитата:
XaeroX писал:
А как тогда приаттаченная дверь будет блокироваться другими энтитями? Нет, там надо со скоростями работать. а не тупо изменять положение.
Кстати есть идея запустить рекурсивно всё это дело. Создать фанк
Vector Move( Vector ololo );
Она принимает вектор, на который надо переместить тело, а возвращает значение, на которое получилось тело переместить...
C++ Source Code:
1 | Vector Move( Vector ololo ) |
4 | // тут надо опредилить на сколько мы можем сдвинуть тело, но я не знаю как |
5 | for( int i = 1; i <= количество приатаченых ентитей, i++ ) |
6 | MIN = min( MIN, приатаченные[ i ]->Move() ); |
Отправлено XaeroX 14-04-2013 в 09:43:
Цитата:
nemyax писал:
Парент-система разве не заключается в перемножении матриц согласно заданной иерархии?
Не совсем, т.к. надо взаимно учитывать колоизацию.
Цитата:
ONeiLL писал:
Она принимает вектор, на который надо переместить тело, а возвращает значение, на которое получилось тело переместить...
Молодец, а теперь реализуй это в рамках движка хл1.
Добавлено 14-04-2013 в 16:43:
Цитата:
nemyax писал:
Так то ж на технических факультетах, а не на гомо... как их там.
На естественных тоже. На гомонитарных - нет, ну так гомонитариям вообще нечего в программирование лезть, пусть там свою историю исследуют, или языкознание, или что там у них. 
__________________
Отправлено ONeiLL 14-04-2013 в 10:50:
Цитата:
XaeroX писал:
Молодец, а теперь реализуй это в рамках движка хл1.
Появилась одна идея...
// тут надо опредилить на сколько мы можем сдвинуть тело, но я не знаю как
вот тут перемещать тело вдоль вектора ololo на очень малую величину, пока это тело ни к чему не прикоснется.
Отправлено Jarkoe 14-04-2013 в 10:54:
Цитата:
-=DrTressi=- писал:
Jarkoe Навряд-ли в этих древних модах были парент-системы. Там либо всё грамотно в оригинале сделано, либо Спирит. На спирите там либо Мовевитч, либо Моушн_менеджер.
http://www.youtube.com/watch?v=hmUQ...eature=youtu.be
А это что?
Отправлено XaeroX 14-04-2013 в 10:59:
Jarkoe
Вероятно, это таки уже спирит.
__________________
Отправлено Ku2zoff 14-04-2013 в 11:51:
Цитата:
-=DrTressi=- писал:
Там либо всё грамотно в оригинале сделано, либо Спирит.
Выдержка из readme этого мода, прошу прощения за проблемы с кодировкой:
Цитата:
Efekty ohnщ a kouшщ(Vytvoшeno pro SIC, Zaloћeno na engine spirit of Half-life 1.2)
Вот тут как бы гадания и заканчиваются.
Jarkoe если уж так охота собственную парент-систему, то поищи старый-старый Дядь Мишин тутор по Xash MoveWith System. Там описано что куда вставлять, так сказать принцип поймёшь. ИМХО, у тебя слишком много времени уйдёт на написание этой системы. Лучше возьми готовый тулкит (спирит 1.2, спирит 1.9 или ксашмод) и делай мод в своё удовольствие. Если всё-таки хочешь что-то действительно хорошее в этом плане (для самообразования), то лучше делать свой собственный движок или модифицировать чужой (у нас тут на форуме есть один, очень похож на халфовский
).
Отправлено XaeroX 14-04-2013 в 12:06:
Если хочешь что-то освоить - напиши код сам, тут без вариантов.
__________________
Отправлено ONeiLL 14-04-2013 в 12:07:
http://hlfx.ru/forum/showthread.php...MoveWith+System
Я так понял что этот мовевитч такой как я писал(тоесть без учёта колоизации)?
Отправлено pRoxxx 14-04-2013 в 12:19:
Цитата:
ONeiLL писал:
Я вот думал, в чём сложность мовевитча? Вот представим: Есть два тела, одно присобачено к другому. И чтобы они не отсоединились, надо просто смещать одно тело на столько, на сколько сместилось второе. С поворотом та же фигня... В чём сложность? Это ж легко
Это конечно всё хорошо, но допустим кто то присабачил функ_валл. Сместить его оригин не составит труда, а вот повернешь ты из под халфы как? pev->angles будет его крутить вокруг его оригина который находиться в точке 0,0,0.