![]() |
Камера от MMORPG
Вложений: 1
Помогите, пожалуйста разобраться с камерой на объект. В общем опишу ситуацию.
Есть проект я его приаттачил на пост Существует камера и объект. Камера привязана к объекту т.е. Вид от 3 лица. Поворот камеры осуществляется при помощи мыши: ![]() Но проблема не в этом когда начинаешь движение то объект перемещается сам по себе независимо от расположение камеры т.е. если мы повернем камеру смотря спереди на объект то для движения вперед нужно будет нажать назад: ![]() Кто знает как рассчитать угол поворота камеры относительно объекта, так, чтобы объект поворачивался на столько, на сколько был повернут бы Пивот, стоящий внутри объекта который прикреплен к объекту, а к пивоту прикреплена камера, вот так: ![]() |
Ответ: Камера от MMORPG
Очень много пэрэнтов. Я бы всё заново переписал лучше.
|
Ответ: Камера от MMORPG
Имхо в ММОГ играх камера подтягивается за движущимся игроков а не наоборот.
|
Ответ: Камера от MMORPG
Кстати ,да. Вы что то путаете goodwin74
|
Ответ: Камера от MMORPG
Алсо, классные гифки!
|
Ответ: Камера от MMORPG
Ща чтонить ляпну:
Можно выщщетать на какой угол повёрнута камера в данный момент(например на 30 градусов) и повернуть игрока на 30 градусов, а камеру на -30(в противоположную сторону) :-) |
Ответ: Камера от MMORPG
Ты не можешь узнать на какой угол повернуто что либо связанное с камерой.
|
Ответ: Камера от MMORPG
Хм. а что, блиц уже углы не возврашаетъ?
|
Ответ: Камера от MMORPG
Припэрнченный объект не возвращает координаты и угол насколько я знаю.
|
Ответ: Камера от MMORPG
не тестил, но вроде так должно работать.
;переводим кнопки->направление и заранее начинаем двигать перса (что не совсем правильно, но... наверное прокатит) if keydown(200) movex#=0:movey#=0:movez#=1:moveentity char,0,0,1 if keydown(208) movex#=0:movey#=0:movez#=-1:moveentity char,0,0,1 if keydown(203) movex#=-1:movey#=0:movez#=0:moveentity char,0,0,1 if keydown(205) movex#=1:movey#=0:movez#=0:moveentity char,0,0,1 positionEntity characterShouldFollowIt, entityx#(char),entityy#(char),entityz#(char),1 ; здесь char это перс, а characterShouldFollowIt это пивот, который мы в каждом кадре ставим в его позицию TFormNormal movex,movey,movez, Camera, characterShouldFollowIt ;переводим направление движения от камеры к пивоту AlignToVector TFormedX#(),TFormedY#(),TFormedZ#(),3 ;ставим пивот так, чтобы он смотрел в направлении движения относительно камеры ; берём угол вращения по Y этого пивота roty# = EntityYaw#(characterShouldFollowIt) ; интерполируем текущий поворот чела на пивотовский супер-функцией от Моки roty# = MergeAngles#(EntityYaw#(char),roty#,.1) ; применяем RotateEntity(char,EntityPitch(char),roty#,EntityRo ll#(char)) Function MergeAngles#(Angle1#,Angle2#,Morph#=.5) If Abs(Angle1-Angle2)>180 If Angle1<Angle2 Return Angle1-((360-Angle2)+Angle1)*(.5-(Morph-.5)) Else Return Angle2-((360-Angle1)+Angle2)*(.5+(Morph-.5)) EndIf Else Return Angle1*(Morph)+Angle2*(1.0-Morph) EndIf End Function |
Ответ: Камера от MMORPG
Цитата:
|
Ответ: Камера от MMORPG
Цитата:
Цитата:
Цитата:
Цитата:
|
Ответ: Камера от MMORPG
Цитата:
Ну все верно entity handle не указан :) Mr_F_, набрал код в общем получается что при движение мыши по Y камера вертится вокруг объекта, а во время движения по Х объект начинается поворачиваться сам, а камера остается на месте. ![]() |
Ответ: Камера от MMORPG
вы чё гоните Blitz возвращает иглы притаченых объектов-EntityRoll(меш,1) и так далее,глобальный угол.
|
Ответ: Камера от MMORPG
Вопрос в лёт: как камеру от 3лица, заставить не проваливаться в стены,а убегать от них,оставляя направление просмотра без EntityPoint().А?(тупак ставишь-назад не вворачиваться)
|
Часовой пояс GMT +4, время: 07:20. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot