Вистріл кулі з пістолета замість камери, але зберігаючи його в точності щодо сітки


14

Я працюю над грою від першої особи, і я зіткнувся з проблемою. У моїй грі є пістолет гравця, який видається, а також сітка в центрі екрана - ось так:

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

По-перше, давайте уявимо, що не було надано моделі пістолета. Тоді вистрілити кулю легко - ви просто нерестуєте кулю саме там, де «очі» гравця, а потім використовуєте триг, щоб обчислити швидкість, залежно від того, в якому напрямку гравець дивиться.

Але тепер, коли ми додамо модель пістолета ... ми не можемо просто нерестувати кулю там, де є очі гравців, ми повинні нереститися на кінчику пістолета (правда?). Так ви робите це, але потім ... як ви рухаєте кулю таким чином, щоб вона потрапила туди, куди вказувала сітка?

Майте на увазі, що куля в моїй грі (це фактично ракета, в даному випадку) буде рухатися досить повільно, щоб було видно її рух, тому деякий спосіб вирішення, який, як правило, спрацює, якщо куля занадто швидка для спостереження, не буде працювати. . Наприклад, якби ви не зробили його з нересту, це виглядає так, що він виходить з кінця пістолета, гравець напевно це помітить.


1
Відповідь на ваше запитання: Raycasting =)
Сірий

Це все дим і дзеркала; будь-які видані кулі не мають нічого спільного з фактичним шляхом чи променем кулі.
congusbongus

@congusbongus Я маю на увазі, OFC винесена куля не повинна точно узгоджуватися з математикою самої кулі, але якщо ви цього не зробите певною мірою, вона починає виглядати погано, і саме там я застряг .
Аарон

Відповіді:


20

Зніміть промінь з камери через центр / сітку в світ. Дізнайтеся, куди у світі він потрапляє. Стріляйте кулею з морди гармати в той момент, а не прямо з гармати.

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

Якщо ви робите анімацію, ви можете завжди просто вистрілити кулю прямо з морди. Просто робіть усе можливе, щоб пістолет вказував на точку, куди спрямована сітка в розумних межах. Також корисно мати дві сітки таким чином, що, природно, обидва показують центр екрана, на який гравець намагається націлитись, і точку, на яку насправді націлений пістолет.

Або ви можете показати одну сітку, туди, куди буде спрямована пістолет після закінчення анімації та вистрілити кулю в тому напрямку, а не на місце, куди в цей час анімація спрямована. Таким чином, сітка завжди показує, що гравця насправді вдарить, але не зробить вигляд, що ви можете, наприклад, стріляти по стіні лише тому, що камера бачить щось, чого пістолет не може зробити.

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


багато ігор навіть не використовують моделі для кульок, а просто відстрілюють промінь, як згадувалося, щоб перевірити зіткнення. Що можна зробити, це показати іншу модель пістолета іншим гравцям, ніж те, що відображається в поточному перегляді гравців, і вирівняти це з тим, де куля
знімається

Джерело Counter-Strike використовує цей метод (має моделі перегляду, гравців та світу)
Matthew Pigram

-1

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


Хоча велика кількість ігор робить щось подібне, це дуже широке дизайнерське рішення, що впливає на весь темп гри та боротьбу.
Katana314

Для мене це скоріше уникнення проблеми, а не її фактичне вирішення.
Аарон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.