Bắn viên đạn ra khỏi súng thay vì máy ảnh, nhưng vẫn giữ nó chính xác đối với mặt kẻ ô


14

Tôi đang làm việc trên một trò chơi người đầu tiên, và tôi đã gặp phải một vấn đề. Trong trò chơi của tôi, có súng của người chơi được kết xuất, cũng như một ô ngắm ở giữa màn hình - như thế này:

nhập mô tả hình ảnh ở đây

Đầu tiên, hãy tưởng tượng không có mô hình súng nào được đưa ra. Sau đó, bắn viên đạn thật dễ dàng - bạn chỉ cần sinh ra viên đạn chính xác nơi "đôi mắt" của người chơi, và sau đó sử dụng trig để tính vận tốc dựa trên bất kỳ hướng nào mà người chơi đang nhìn.

Nhưng bây giờ, khi chúng ta thêm mô hình súng ... chúng ta không thể tạo ra viên đạn nơi mắt người chơi, chúng ta phải sinh ra nó ở đầu súng (phải không?). Vì vậy, bạn làm điều đó, nhưng sau đó ... làm thế nào để bạn di chuyển viên đạn theo cách nó sẽ bắn trúng bất cứ nơi nào kẻ ô đang chỉ?

Hãy nhớ rằng viên đạn trong trò chơi của tôi (thực ra là tên lửa, trong trường hợp này) sẽ di chuyển đủ chậm để có thể nhìn thấy chuyển động của nó, vì vậy một số cách giải quyết thường sẽ hoạt động nếu viên đạn quá nhanh không thể quan sát được sẽ không hoạt động . Ví dụ, nếu bạn không sinh ra nó để có vẻ như nó phát ra từ đầu súng, người chơi chắc chắn sẽ nhận thấy điều đó.


1
Câu trả lời cho câu hỏi của bạn là, Raycasting =)
Gray

Đó là tất cả khói và gương; bất kỳ viên đạn nào được kết xuất đều không liên quan gì đến đường đi hoặc tia thực tế của viên đạn.
congusbongus

@congusbongus Ý tôi là, OFC viên đạn được tạo ra không nhất thiết phải được xếp chính xác với toán học của viên đạn, nhưng nếu bạn không làm điều này ở một mức độ nào đó thì nó bắt đầu trông tệ và đó là nơi tôi bị mắc kẹt .
Aaron

Câu trả lời:


20

Bắn một tia từ máy ảnh qua trung tâm / tâm ngắm vào thế giới. Tìm nơi mà nó trên thế giới. Bắn viên đạn từ mõm súng vào thời điểm đó thay vì ra khỏi súng.

Điểm thưởng cho hoạt hình của tay và súng để chỉ theo hướng đó trong khi nhắm xung quanh để viên đạn vẫn trông giống như nó bắn thẳng ra khỏi mõm thay vì bắn ra một góc.

Nếu bạn làm hoạt hình, bạn có thể bắn viên đạn ra khỏi mõm luôn. Chỉ cần làm hết sức mình để có khẩu súng chĩa vào điểm mà kẻ ô đang nhắm đến trong giới hạn hợp lý. Cũng rất hữu ích khi có hai ô ngắm theo cách tự nhiên cả hai hiển thị trung tâm của màn hình mà người chơi đang cố nhắm và điểm mà khẩu súng thực sự nhắm tới.

Hoặc bạn có thể hiển thị một ô ngắm duy nhất là nơi khẩu súng sẽ nhắm sau khi hoàn thành hoạt hình và bắn viên đạn theo hướng đó chứ không phải là nơi mà khẩu súng hiện đang nhắm vào hoạt hình của nó. Bằng cách này, mặt kẻ ô luôn hiển thị những gì người chơi sẽ thực sự bắn nhưng sẽ không giả vờ rằng bạn có thể bắn vào tường chỉ vì máy ảnh nhìn thấy thứ gì đó mà súng không thể làm được.

Tất cả những thứ này đã được sử dụng trong các trò chơi thực sự. Việc bạn thích sẽ phụ thuộc vào phong cách chơi mà bạn đang thực hiện, sự đánh đổi giữa mô phỏng và trò chơi mà bạn đang hướng tới, liệu đây có phải là nhiều người chơi hay không, v.v.


nhiều trò chơi thậm chí không sử dụng mô hình cho đạn mà chỉ bắn một tia như đã đề cập để kiểm tra va chạm, điều bạn có thể làm là hiển thị một mô hình súng khác cho người chơi khác so với những gì người chơi hiện tại xem và sắp xếp theo vị trí của viên đạn bị đuổi việc với nhân vật dường như đang nhắm vào tầm ngắm
Matthew Pigram

Counter-Strike Source sử dụng phương pháp này (nó có chế độ xem, mô hình người chơi và thế giới)
Matthew Pigram

-1

Điều gì về việc thoát khỏi mặt kẻ ô? Sau đó, những viên đạn có thể đi theo đường thẳng từ khẩu súng, giống như trong thực tế. Nhắm xuống các điểm tham quan sau đó sẽ có ý nghĩa hơn khi bạn căn chỉnh mục tiêu và nòng súng (trừ một vài inch cho mô hình người chơi).


Mặc dù nhiều trò chơi làm một cái gì đó như thế này, đây là một quyết định thiết kế rất rộng với ý nghĩa về toàn bộ nhịp độ và chiến đấu của trò chơi.
Katana314

Đối với tôi điều này là nhiều hơn để tránh vấn đề sau đó thực sự giải quyết nó.
Aaron
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.