Как приаттачить камеру к определенной кости модели?
В общем, возникла у меня такая идея: как известно в SoHL 1.8 , если не ошибаюсь, можно к определенным костям (или что там было) прикреплять спрайты (Например можно было создать монстра с огнем в руке). Так вот, вопрос: реально ли такой трюк провернуть с камерой?
То есть, присоединяем камеру к голове какого-нибудь NPC, и проигрываем анимацию, и чтоб при этом камера в точности повторяла движения головы, поворачивалась в месте с ней и т.д.
[)r0n в спирите 1.7. если не раньшы я это уже сделал.
Если нацелить камеру на монстра, то она приаттачится точно на позицию его глаз и будет вид от глаз монстра.
[)r0n на клиенте есть viewflags в классе CHud. В view.cpp посмотри каменты // monster view или что-то подобное. Там всё есть. Только камера в этом случае не интерполируется(когда монстр бежит, она дёргается). Хотя можно использовать энтити calc_position и calc_angle(или как она там называется), чтобы "прикрепить" камеру к определённой точке на монстре.
Объясните мне КАК с помощью именно Calc_ ентитей прикрепить камеру именно к определенной точке на монстре. Не надо рассуждений на тему о смысле жизни, просто прошу по человечески, скажите, КАК это сделать и фсе больше мне ниче не надо, и мне не нужна всякая информация в стиле «…можно как-то, я делал когда-то…» и т.д.
Терь объясню, зачем мне это понадобилось:
Например, я создаю модель невидимого персонажа, с определенной анимацией (например, персонаж встает с пола и оглядывается по сторонам). Так вот, я хочу прикрепить камеру именно к кости, которая отвечает за голову. И что бы камера двигалась именно с ней. То есть, проигрывается анимация как персонаж встает с земли, камера прикреплена к бОшке и движется вместе с ней. То есть создается еффект пробуждения игрока, и как этот самый игрок встает с пола. Вот…
P.S. Я уже реально начинаю уставать от форумов, пока дождешься вразумительного ответа на свой вопрос, потратишь неделю как минимум на пустую болтовню. Извиняюсь за оффтоп, накипело.
[)r0n с какого перепуга ты решил, что это вообще возможно при помощи calc-энтить?
Еще раз объясняю - для этого нужен кодинг, причем достаточно продвинутый кодинг. И не так-то это просто - приаттачить камеру к кости.
Разумнее это сделать с аттачментом.
Слушай, не парь мне мозг. Аттачменты, так аттачменты. Ты скажи как. Ты русский язык понимаешь? КАК, ключевое слово в моем вопросе. Не хочешь помочь, то лучше ничего не пиши, не засоряй тему.
сорри за грубость, но иначе никак.
За это сообщение [)r0n получил предупреждение за флейм
[)r0n еще раз - камера не работает с локусами.
Поробуй приаттачить при помощи calc_position env_sprite (в качестве спрайта возьми null.spr). В поле m_iszViewEntity укажы targetname этого env_sprite. В calc_position укажы того самого монстра, и выбери тип позиции - аттачмент.
Но я еще раз повторю - получится говно. Тут надо кодить.
Ku2zoff да ровным счетом ничего особенного - надо как-то вычислить значение lerpfraction для камеры, и хранить предидущие углы\положение, смешивая его с настоящими на величину lerpfraction.
подсмотреть код можно в функции CL_LerpPoint в первокваке.
Так же смотрите код интерполяции студиомоделей.
Вместо mtime[0], mtime[1] можно использовать m_clTime и m_OldClTime.
Хотя конечно, это слегка разные вещи.