การยิงกระสุนออกจากปืนแทนที่จะเป็นกล้อง แต่ให้ความแม่นยำกับเรติเคิล


14

ฉันทำงานเกมคนแรกและฉันพบปัญหา ในเกมของฉันมีปืนของผู้เล่นถูกเรนเดอร์รวมถึงมีเส้นเล็งอยู่ตรงกลางของหน้าจอ - ดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ก่อนอื่นลองนึกภาพว่าไม่มีการสร้างโมเดลปืน จากนั้นการยิงกระสุนเป็นเรื่องง่าย - คุณเพียงวางไข่กระสุนที่ตำแหน่ง "ตา" ของผู้เล่นแล้วใช้ตรีโกณฯ เพื่อคำนวณความเร็วตามทิศทางที่ผู้เล่นมอง

แต่ตอนนี้เมื่อเราเพิ่มโมเดลปืน ... เราไม่สามารถวางลูกกระสุนที่ดวงตาของผู้เล่นได้เราจะต้องวางไข่ที่ปลายปืน (ใช่ไหม) ดังนั้นคุณทำเช่นนั้น แต่แล้ว ... คุณจะย้ายกระสุนในวิธีที่มันจะกระทบทุกที่เส้นเล็งถูกชี้ไปได้อย่างไร

โปรดทราบว่าสัญลักษณ์แสดงหัวข้อย่อยในเกมของฉัน (จริง ๆ แล้วเป็นจรวดในกรณีนี้) จะเคลื่อนที่ช้าพอที่จะเห็นการเคลื่อนไหวดังนั้นการแก้ปัญหาบางอย่างที่มักจะทำงานหากกระสุนเร็วเกินไปที่จะสังเกตเห็นจะไม่ทำงาน . ตัวอย่างเช่นหากคุณไม่ได้วางไข่ดังนั้นดูเหมือนว่ามันจะออกมาจากปลายปืนผู้เล่นจะสังเกตเห็นได้อย่างแน่นอน


1
คำตอบสำหรับคำถามของคุณคือ Raycasting =)
Grey

มันคือควันและกระจก กระสุนใด ๆ ที่แสดงนั้นไม่มีส่วนเกี่ยวข้องกับเส้นทางหรือรังสีของกระสุนจริง
congusbongus

@congusbongus ฉันหมายถึง OFC bullet ที่เรนเดอร์ไม่จำเป็นต้องตรงกับคณิตศาสตร์ของ bullet เอง แต่ถ้าคุณไม่ทำแบบนี้ในระดับหนึ่งมันจะเริ่มแย่และนั่นคือสิ่งที่ฉันติดอยู่ .
แอรอน

คำตอบ:


20

ยิงแสงจากกล้องผ่านจุดศูนย์กลาง / เส้นเล็งไปยังโลก ค้นหาว่ามันฮิตที่ไหนในโลก ยิงกระสุนปืนออกจากปากกระบอกปืน ณ จุดนั้นแทนที่จะพุ่งออกจากปืน

คะแนนโบนัสสำหรับการเคลื่อนไหวมือและปืนให้ชี้ไปในทิศทางนั้นในขณะที่เล็งไปรอบ ๆ เพื่อให้กระสุนยังคงดูเหมือนว่ามันยิงตรงออกจากปากกระบอกปืนแทนที่จะออกมาเป็นมุม

หากคุณทำแอนิเมชั่นคุณสามารถยิงกระสุนออกจากปากกระบอกปืนได้เสมอ แค่ทำอย่างดีที่สุดเพื่อให้ปืนเล็งไปที่จุดเล็งเล็งไว้ที่ขีด จำกัด ที่สมเหตุสมผล นอกจากนี้ยังมีประโยชน์ในการมีเรติเคิลสองตัวในลักษณะที่ทั้งสองแสดงศูนย์กลางของหน้าจอที่ผู้เล่นพยายามเล็งและจุดที่ปืนเล็งไปที่จริง

หรือคุณสามารถแสดงเส้นเล็งเดียวซึ่งเป็นที่ที่ปืนจะเล็งหลังจากที่ทำอนิเมชั่นเสร็จแล้วและยิงกระสุนไปที่ทิศทางนั้นแทนที่จะเป็นที่ที่ปืนเล็งไปที่ภาพเคลื่อนไหว ด้วยวิธีนี้เรติเคิลจะแสดงสิ่งที่ผู้เล่นจะตี แต่จะไม่แกล้งทำเป็นว่าคุณสามารถยิงรอบกำแพงเพียงเพราะกล้องมองเห็นสิ่งที่ปืนไม่สามารถทำได้

สิ่งเหล่านี้ถูกใช้ในเกมจริง สิ่งที่คุณต้องการจะขึ้นอยู่กับสไตล์ของเกมที่คุณทำสิ่งที่แลกเปลี่ยนระหว่างการจำลองและเกมที่คุณตั้งเป้าหมายไม่ว่าจะเป็นแบบผู้เล่นหลายคนหรือไม่เป็นต้น


เกมหลายเกมไม่ได้ใช้โมเดลสำหรับกระสุน แต่เพียงแค่ยิงรังสีตามที่กล่าวไว้เพื่อตรวจสอบการชนสิ่งที่คุณสามารถทำได้คือแสดงรูปแบบปืนที่แตกต่างให้ผู้เล่นคนอื่น ๆ นอกเหนือจากที่ปรากฏในมุมมองของผู้เล่นปัจจุบัน ถูกไล่ออกจากตัวละครที่ดูเหมือนจะเล็งไปที่สถานที่ท่องเที่ยว
Matthew Pigram

แหล่ง Counter-Strike ใช้วิธีนี้ (มีมุมมองผู้เล่นและแบบจำลองโลก)
Matthew Pigram

-1

แล้วการกำจัดเส้นเล็ง? จากนั้นกระสุนอาจเป็นเส้นตรงจากปืนเหมือนกับในความเป็นจริง การเล็งไปที่ทิวทัศน์นั้นจะมีความหมายมากขึ้นเมื่อคุณจัดตำแหน่งเป้าหมายและกระบอกปืน (ลบไม่กี่นิ้วที่โมเดลผู้เล่น)


ในขณะที่เกมจำนวนมากทำอะไรเช่นนี้นี่เป็นการตัดสินใจที่กว้างมากโดยมีนัยยะต่อการเดินและการต่อสู้ของเกม
Katana314

สำหรับฉันนี่เป็นการหลีกเลี่ยงปัญหามากกว่าแล้วค่อยแก้ไขมัน
Aaron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.