Выстрел из пули из пистолета вместо камеры, сохраняя при этом точность прицела

14

Я работаю над игрой от первого лица и столкнулся с проблемой. В моей игре есть рендеринг оружия игрока, а также сетка в центре экрана - вот так:

введите описание изображения здесь

Во-первых, давайте представим, что не было никакой модели пистолета. Тогда стрелять из пули легко - вы просто создаете пулю точно там, где находятся «глаза» игрока, и затем используете триггер, чтобы вычислить скорость, основываясь на том направлении, в котором смотрит игрок.

Но теперь, когда мы добавляем модель оружия ... мы не можем просто создать пулю там, где находятся глаза игроков, мы должны создать ее на кончике пистолета (верно?). Итак, вы делаете это, но потом ... как вы перемещаете пулю так, чтобы она ударила туда, куда указывал прицел?

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

Аарон
источник
1
Ответ на ваш вопрос: Raycasting =)
Grey
Это все дым и зеркала; любые полученные пули не имеют никакого отношения к фактическому пути или лучу пули.
congusbongus
@congusbongus Я имею в виду, что OFC отрисованная пуля не обязательно должна быть точно согласована с математикой самой пули, но если вы не сделаете этого в какой-то степени, она начнет выглядеть плохо, и я застряла там. ,
Аарон

Ответы:

20

Снимите луч из камеры через центр / сетку в мир. Узнайте, где в мире это бьет. Стреляйте из пули в ствол пистолета в этой точке, а не прямо из пистолета.

Бонусные баллы за анимацию рук и пистолета, чтобы указывать в этом направлении, прицеливаясь вокруг так, чтобы пуля все еще выглядела так, как будто она стреляет прямо из морды, а не выходит под углом.

Если вы делаете анимацию, вы можете просто выстрелить прямо из морды. Просто приложите все усилия, чтобы пистолет направил точку, на которую направлена ​​прицельная сетка, в разумных пределах. Также полезно иметь две прицельные сетки таким образом, чтобы они, естественно, отображали центр экрана, на который пытается нацелиться игрок, и точку, на которую фактически нацелено оружие.

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

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

Шон Миддледич
источник
многие игры даже не используют модели для пуль, но просто запускают луч, как упомянуто, чтобы проверить столкновение, что вы можете сделать, это показать другую модель оружия другим игрокам, чем то, что отображается в текущем представлении игроков, и выровнять это с тем, где пуля уволен с персонажем, который, кажется, целится в прицел
Мэтью Пиграм
Counter-Strike Source использует этот метод (он имеет вид, игрока и модели мира)
Мэтью Пиграм
-1

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

Джейсон Рид
источник
Хотя многие игры делают что-то подобное, это очень широкое дизайнерское решение, затрагивающее весь темп игры и борьбы.
Katana314
Для меня это скорее предотвращение проблемы, чем ее решение.
Аарон