forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Камера от MMORPG (http://forum.boolean.name/showthread.php?t=13755)

goodwin74 21.11.2010 12:12

Камера от MMORPG
 
Вложений: 1
Помогите, пожалуйста разобраться с камерой на объект. В общем опишу ситуацию.
Есть проект я его приаттачил на пост
Существует камера и объект. Камера привязана к объекту т.е. Вид от 3 лица. Поворот камеры осуществляется при помощи мыши:


Но проблема не в этом когда начинаешь движение то объект перемещается сам по себе независимо от расположение камеры т.е. если мы повернем камеру смотря спереди на объект то для движения вперед нужно будет нажать назад:


Кто знает как рассчитать угол поворота камеры относительно объекта, так, чтобы объект поворачивался на столько, на сколько был повернут бы Пивот, стоящий внутри объекта который прикреплен к объекту, а к пивоту прикреплена камера, вот так:

is.SarCasm 21.11.2010 12:34

Ответ: Камера от MMORPG
 
Очень много пэрэнтов. Я бы всё заново переписал лучше.

SBJoker 21.11.2010 13:19

Ответ: Камера от MMORPG
 
Имхо в ММОГ играх камера подтягивается за движущимся игроков а не наоборот.

is.SarCasm 21.11.2010 13:42

Ответ: Камера от MMORPG
 
Кстати ,да. Вы что то путаете goodwin74

Reks888 21.11.2010 15:00

Ответ: Камера от MMORPG
 
Алсо, классные гифки!

ARA 21.11.2010 17:46

Ответ: Камера от MMORPG
 
Ща чтонить ляпну:
Можно выщщетать на какой угол повёрнута камера в данный момент(например на 30 градусов) и повернуть игрока на 30 градусов, а камеру на -30(в противоположную сторону) :-)

is.SarCasm 21.11.2010 17:49

Ответ: Камера от MMORPG
 
Ты не можешь узнать на какой угол повернуто что либо связанное с камерой.

ARA 21.11.2010 17:50

Ответ: Камера от MMORPG
 
Хм. а что, блиц уже углы не возврашаетъ?

is.SarCasm 21.11.2010 18:13

Ответ: Камера от MMORPG
 
Припэрнченный объект не возвращает координаты и угол насколько я знаю.

Mr_F_ 21.11.2010 18:19

Ответ: Камера от 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

ABTOMAT 21.11.2010 18:29

Ответ: Камера от MMORPG
 
Цитата:

Сообщение от is.SarCasm (Сообщение 169503)
Припэрнченный объект не возвращает координаты и угол насколько я знаю.

Флаг Global спасёт отца русской демократии.

goodwin74 21.11.2010 23:49

Ответ: Камера от MMORPG
 
Цитата:

Очень много пэрэнтов. Я бы всё заново переписал лучше.
Я не давно изучаю Blitz3D и просто узнаю азы. Там много мусора например пробовал естественный свет ставить ну и т.п. Мне главное понять как делается поворот в связи с тем как повернута камера.

Цитата:

Имхо в ММОГ играх камера подтягивается за движущимся игроков а не наоборот.
Абсолютно не согласен. Пример многих ММОРПГ: Во время указания пути мышкой, не затрагивая клавиши отвечающие за ходьбу, пользователь может повернуть камеру вокруг персонажа с любой стороны и он не сменит свое направление. Но если пользователь идет при помощи клавиш то уже поворот камеры определяет вектор направления ходьбы персонажа и тем самым поворачивая камеру персонаж поворачивает туда же, а клавиши влево и вправо ведут действие отклонение(WoW,LineAge II, Aion)

Цитата:

Кстати ,да. Вы что то путаете goodwin74
Я сам в них играл :)

Цитата:

не тестил, но вроде так должно работать.
Будем разбираться может что то новое для себя узнаю

goodwin74 22.11.2010 00:24

Ответ: Камера от MMORPG
 
Цитата:

AlignToVector TFormedX#(),TFormedY#(),TFormedZ#(),3
Что-то здесь выдает что не хватает параметров.

Ну все верно entity handle не указан :)

Mr_F_, набрал код в общем получается что при движение мыши по Y камера вертится вокруг объекта, а во время движения по Х объект начинается поворачиваться сам, а камера остается на месте.

RegIon 27.12.2010 14:25

Ответ: Камера от MMORPG
 
вы чё гоните Blitz возвращает иглы притаченых объектов-EntityRoll(меш,1) и так далее,глобальный угол.

RegIon 27.12.2010 14:28

Ответ: Камера от MMORPG
 
Вопрос в лёт: как камеру от 3лица, заставить не проваливаться в стены,а убегать от них,оставляя направление просмотра без EntityPoint().А?(тупак ставишь-назад не вворачиваться)


Часовой пояс GMT +4, время: 07:20.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot