![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как делать прицел в 3D играх не
Кен © (2003-05-21 04:47:00)
и оружие в разных точках, то получается, что мы целимся по одной линии, а стреляем по другой. Вопрос, где же должен быть прицел в таком случае, чтобы обеспечить точность прицеливания ? Либо как должна лететь пуля, чтобы попасть туда, куда целимся ?
NailMan (2003-05-26 14:16:00) [1]
To -> Кен ©
Так камера то находится над игроком. И если сквозь это перекрестие мы будем видеть врага, то если бы мы смотрели из дула пистолета, то мы бы видели небо. И стреляли над его головой.
Нет. Мы видим на игрока сверху, но линия взгляда камеры никоим боком не является линией стрельбы. Вектор-отрезок жестко прикручен к игроку и является линией стрельбы, а дальний конец его проецируется на экран, который отмечается а нем неким маркером. Таким образом будет видимость 2Д-прицела в 3Д. Соответственно если ты будешь делать orbit вокруг игрока, то все равно он будет стрелять по этому вектору. В Хитмана поиграй - поймешь.
Кстати, наверно поэтому в Томб-рэйдере прицеливание автоматическое.
Aim дело неблагодарное. Фактически линия прицеливания попадает на предмет и игроку остается нажать спуск. А если отрезок будет конечен, то игроку нужно именно целиться. К тому же можно прикрутить параболичность траектории, что есть физический факт.
Да. И ещё. Как лучше сделать снайперский прицел ? Надо ведь большую часть экрана прикрыть чем-то и оставить только маленькое отверстие со снайперской разметкой прицела.
А кякже. Именно так и делается - покрываешь непрозрачным спрайтом и рисуешь(лучше именно так) 3Д-линии перекрестия в спроецированных на плоскости камеры координатах. Таким образом от разрешения толщина перекрестия не зависит.
Как в GLScene вставить прозрачную картинку, чтобы через её части можно было смотреть ?
Х.З. Я по директу больше.
И где эту самую картинку взять ? В смысле с прицелом.
Ответ очевиден - либо сам сделай, либо стыбзи у кого-нить.
Кен (2003-05-23 01:12:00) [2]
Arch-vile ©
> Надо прицел делать как в Max Payne: Там этот вектор заканчивается
> на ближашем объекте, а не в 2-3 метрах от героя. То есть
> прицел рисуется не возле игрока, а на стенке, враге, трубе,
> столике, etc.
То есть делать BuildOctree для каждой! FreeForm в игре.
Это не игра, а один большой тормоз будет.
Arch-vile (2003-05-22 22:26:00) [3]
Надо прицел делать как в Max Payne: Там этот вектор заканчивается на ближашем объекте, а не в 2-3 метрах от героя. То есть прицел рисуется не возле игрока, а на стенке, враге, трубе, столике, etc.
Кен (2003-05-22 07:04:00) [4]
Да. И ещё. Как лучше сделать снайперский прицел ? Надо ведь большую часть экрана прикрыть чем-то и оставить только маленькое отверстие со снайперской разметкой прицела.
Как в GLScene вставить прозрачную картинку, чтобы через её части можно было смотреть ? И где эту самую картинку взять ? В смысле с прицелом.
Кен (2003-05-22 03:12:00) [5]
> Создай мнимый(не рендерящийся) вектор-отрезок, который основанием
> "закреплен" на игроке в том районе где у него оружие, а
> второй конец поворачивается вместе с игроком так чтобы вектор-отрезок
> был всегда по линии взгдяда игрока. Пули будут улетать от
> игрока не по линии взляда камеры, а по этому вектору-отрезку.
Так камера то находится над игроком. И если сквозь это перекрестие мы будем видеть врага, то если бы мы смотрели из дула пистолета, то мы бы видели небо. И стреляли над его головой.
Кстати, наверно поэтому в Томб-рэйдере прицеливание автоматическое.
Может быть сделать не перекрестие прицела, а нечто вроде кружочка ? Типа пули попадают примерно в эту область. Сами же пули пускать случайный образом чуть ниже чем линия выстрела. Заодно автоматически добавится кучность стрельбы.
NailMan (2003-05-21 09:55:00) [6]
Создай мнимый(не рендерящийся) вектор-отрезок, который основанием "закреплен" на игроке в том районе где у него оружие, а второй конец поворачивается вместе с игроком так чтобы вектор-отрезок был всегда по линии взгдяда игрока. Пули будут улетать от игрока не по линии взляда камеры, а по этому вектору-отрезку.
Расстояние от игрока до второго конца делай 3-4 игровых метра, проецируй его на плоскость экрана и рисуй там экранный спрайтик-перкрестие.
Такой подход позволит тебе по разному выставлять начальну точку полета пуль(с правой руки, левой, с обеих), и таким образом менять характер стрельбы.