HLFX.Ru Forum
Показать все 11 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Как приаттачить камеру к определенной кости модели? (https://hlfx.ru/forum/showthread.php?threadid=1739)


Отправлено [)r0n 03-03-2009 в 11:43:

Как приаттачить камеру к определенной кости модели?

В общем, возникла у меня такая идея: как известно в SoHL 1.8 , если не ошибаюсь, можно к определенным костям (или что там было) прикреплять спрайты (Например можно было создать монстра с огнем в руке). Так вот, вопрос: реально ли такой трюк провернуть с камерой?

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


Отправлено Дядя Миша 03-03-2009 в 13:33:

[)r0n в спирите 1.7. если не раньшы я это уже сделал.
Если нацелить камеру на монстра, то она приаттачится точно на позицию его глаз и будет вид от глаз монстра.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено [)r0n 04-03-2009 в 02:12:

Теперь другой вопрос - как ты это сделал? Тока поподробнее плиз, я записываю ) . Какие энтити ставить, куда что прописывать ну и т.д.


Отправлено Ku2zoff 04-03-2009 в 05:02:

[)r0n на клиенте есть viewflags в классе CHud. В view.cpp посмотри каменты // monster view или что-то подобное. Там всё есть. Только камера в этом случае не интерполируется(когда монстр бежит, она дёргается). Хотя можно использовать энтити calc_position и calc_angle(или как она там называется), чтобы "прикрепить" камеру к определённой точке на монстре.


Отправлено Дядя Миша 04-03-2009 в 09:26:

Цитата:
Только камера в этом случае не интерполируется

Я тогда еще не знал как делать интерполяцию, а сейчас лень возиться

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено [)r0n 05-03-2009 в 02:30:

Объясните мне КАК с помощью именно Calc_ ентитей прикрепить камеру именно к определенной точке на монстре. Не надо рассуждений на тему о смысле жизни, просто прошу по человечески, скажите, КАК это сделать и фсе больше мне ниче не надо, и мне не нужна всякая информация в стиле «…можно как-то, я делал когда-то…» и т.д.

Терь объясню, зачем мне это понадобилось:
Например, я создаю модель невидимого персонажа, с определенной анимацией (например, персонаж встает с пола и оглядывается по сторонам). Так вот, я хочу прикрепить камеру именно к кости, которая отвечает за голову. И что бы камера двигалась именно с ней. То есть, проигрывается анимация как персонаж встает с земли, камера прикреплена к бОшке и движется вместе с ней. То есть создается еффект пробуждения игрока, и как этот самый игрок встает с пола. Вот…

P.S. Я уже реально начинаю уставать от форумов, пока дождешься вразумительного ответа на свой вопрос, потратишь неделю как минимум на пустую болтовню. Извиняюсь за оффтоп, накипело.


Отправлено Дядя Миша 05-03-2009 в 09:00:

[)r0n с какого перепуга ты решил, что это вообще возможно при помощи calc-энтить?
Еще раз объясняю - для этого нужен кодинг, причем достаточно продвинутый кодинг. И не так-то это просто - приаттачить камеру к кости.
Разумнее это сделать с аттачментом.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено [)r0n 05-03-2009 в 12:25:

Слушай, не парь мне мозг. Аттачменты, так аттачменты. Ты скажи как. Ты русский язык понимаешь? КАК, ключевое слово в моем вопросе. Не хочешь помочь, то лучше ничего не пиши, не засоряй тему.

сорри за грубость, но иначе никак.


Отправлено Дядя Миша 05-03-2009 в 13:39:

[)r0n еще раз - камера не работает с локусами.
Поробуй приаттачить при помощи calc_position env_sprite (в качестве спрайта возьми null.spr). В поле m_iszViewEntity укажы targetname этого env_sprite. В calc_position укажы того самого монстра, и выбери тип позиции - аттачмент.
Но я еще раз повторю - получится говно. Тут надо кодить.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 06-03-2009 в 03:56:

Цитата:
Дядя Миша писал:
Цитата:
Только камера в этом случае не интерполируется

Я тогда еще не знал как делать интерполяцию, а сейчас лень возиться

А что для этого надо делать? Интерполяция такой камеры в спирите RB2 была бы очень кстати, а то мне не очень нравятся дёргания.


Отправлено Дядя Миша 06-03-2009 в 07:44:

Ku2zoff да ровным счетом ничего особенного - надо как-то вычислить значение lerpfraction для камеры, и хранить предидущие углы\положение, смешивая его с настоящими на величину lerpfraction.
подсмотреть код можно в функции CL_LerpPoint в первокваке.
Так же смотрите код интерполяции студиомоделей.
Вместо mtime[0], mtime[1] можно использовать m_clTime и m_OldClTime.
Хотя конечно, это слегка разные вещи.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 21:05.
Показать все 11 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024