ความสับสนเกี่ยวกับ Sprite Size ใน World Space (Unity)


11

ฉันมี Sprite ที่มีความละเอียด 1080x1920 และฉันได้ตั้งค่า Game View Resolution เป็น 1080x1920 ด้วย สิ่งที่ฉันคิดคือสไปรต์ (1080x1920) ควรพอดีอย่างถูกต้องภายในมุมมองกล้อง

ความละเอียดของภาพคือ 1080x1920

แต่เมื่อฉันลากเทพดาสไปรต์นั้นจะขยายและออกไปจากมุมมองของกล้อง

มุมมองหน้าจอเทพดาออกจากกล้อง

ฉันต้องทำการปรับอะไรบ้างเพื่อให้แน่ใจว่าสไปรต์นี้พอดี 100% ภายในมุมมองกล้อง ฉันสามารถเปลี่ยน Sprite Transform Scale ได้ แต่นั่นจะทำให้เกิดปัญหาเพราะฉันมีสไปรต์อื่น ๆ มากมายที่จะจัดการกับพวกเขาและควรมีสัดส่วน


คุณกำลังพูดถึงเทพดา 3 มิติ? หรือ UI 2D Sprite?
TomTsagk

2D Sprite .....
Faizan Khan

คำตอบ:


19

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

เช่นเดียวกับทุกสิ่งทุกอย่างในโลกการเล่นเกมนั้นส่วนที่ลงท้ายด้วยการจับคู่กับหน้าจอจะถูกกำหนดโดยวิธีที่คุณกำหนดค่าวัตถุกล้องของคุณ

ดังนั้นจึงมีสี่ส่วนที่จะตัดสินว่าสไปรต์ของคุณจะแสดงขนาดเท่าใด:

  1. ความละเอียดแหล่งที่มาของผีสาง

  2. การตั้งค่าพิกเซลต่อหน่วยที่เลือกในตัวตรวจสอบการตั้งค่าการนำเข้า

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

    ความสูงในหน่วยโลก = ความสูงของแหล่งที่มาเป็นพิกเซล / พิกเซลต่อหน่วย

    โดยทั่วไปคุณควรเลือกหมายเลขนี้เพื่อให้สอดคล้องกับตัวชี้วัดการเล่นเกมที่เกี่ยวข้องในเกมของคุณ เช่น. หากคุณมีไทล์กริดที่มีระยะห่าง 135 พิกเซลการเลือกพิกเซลต่อหน่วย = 135 จะทำให้แต่ละเซลล์ของกริดของคุณกว้าง 1 หน่วยในระบบพิกัดของเกมทำให้การคำนวณของคุณสะดวกยิ่งขึ้น

  3. ขนาด orthographicของกล้องของคุณ

    (หรือหากใช้กล้องเปอร์สเปคทีฟการรวมกันของมุมมองของกล้องและความลึกจากกล้องไปจนถึงสไปรต์ของคุณ)

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

    สัดส่วนของความสูงของกล้องที่ได้ครอบครอง = ความสูงในหน่วยของโลก / (2 * ขนาดกล้อง Ortho.)

    ดังนั้นถ้าเรารันด้วยค่า 135 PPU, สไปรต์สูง 1920 พิกเซลจะสูง 14.222222 หน่วยในโลกซึ่งหมายความว่าเราจะต้องใช้กล้องที่มีความสูง 7.111111 เพื่อจับภาพทั้งหมดจากบนลงล่าง (เนื่องจากความสูงของกล้องวัดจาก ตรงกลาง)

  4. ขนาดของพิกเซลความละเอียดหน้าจอหน้าต่าง / ส่งออกของคุณ

    ตามค่าเริ่มต้นมุมมองของกล้องจะเต็มหน้าจอในแนวตั้งดังนั้นหากหน้าจอ / หน้าต่างของคุณเปลี่ยนความสูงการครอบตัดแนวฉากของคุณจะไม่เปลี่ยน (วัตถุที่ขอบด้านบนหรือขอบด้านล่างของหน้าจอจะไม่เคลื่อนที่หรือ ถูกครอบตัดทั้งฉากจะใหญ่ขึ้นหรือเล็กลงเพื่อเติมเต็มความสูงที่มีอยู่)

    ดังนั้นจำนวนหน่วยของโลกที่กล้องของคุณสามารถดูได้จากแผนที่จากบนลงล่างถึงจำนวนของพิกเซลในหน้าต่าง / หน้าจอของคุณจากบนลงล่าง

    ขนาดพิกเซลเอาต์พุต = ส่วนของความสูงของกล้องที่ใช้ * ความสูงของหน้าต่างเป็นพิกเซล

    ดังนั้นหากหน้าจอของเรามีความสูง 1920 พิกเซลและแหล่งที่มาของเราสเปรย์เติมเต็มมุมมองของกล้องแล้วมันจะถูกส่งออกไปทั่วทั้งหน้าจอ 1920 พิกเซลพิกเซลในการจัดตำแหน่ง 1: 1


ฉันขอบคุณคุณจริงๆสำหรับคำตอบโดยละเอียด !!!!
Faizan Khan

3
ฉันดีใจที่คุณพบว่ามีประโยชน์! ผมเคยเขียนไม่กี่อื่น ๆ Q & As เกี่ยวกับการทำงานที่มีขนาดเทพดาในความสามัคคีที่อาจยังความช่วยเหลือเกี่ยวกับการเลือกขนาดเทพดา , จับคู่ลักษณะของสไปรต์ที่แตกต่างกันขนาด , เกี่ยวกับศิลปะการปรับพิกเซล
DMGregory

1
ขอบคุณ .... ฉันยังตามคุณบนทวิตเตอร์ ... ฉันรู้สึกดีจริงๆที่จะมีปฎิสัมพันธ์กับบุคคลบางคนทำงานที่ซอฟท์ :)
Faizan ข่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.